X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fobject.cpp;h=404d30576113a97ad9516b04677d087f81ad4346;hb=89b8b0c60579d8ef0cf9a13521e7bf7c7864883f;hp=925d9b4ceeeae7f6ef816da797d697bbf1327887;hpb=676007c81e292079daaa7188f4fbf2757ae77ef8;p=architektonas diff --git a/src/object.cpp b/src/object.cpp index 925d9b4..404d305 100644 --- a/src/object.cpp +++ b/src/object.cpp @@ -26,16 +26,23 @@ int Object::viewportHeight = 0; bool Object::deleteActive = false; bool Object::dimensionActive = false; bool Object::snapToGrid = true; +//snapToPoints all well here? +bool Object::ignoreClicks = false; +bool Object::dontMove = false; +bool Object::selectionInProgress = false; +QRectF Object::selection; -Object::Object(): position(Vector(0, 0)), parent(0), state(OSInactive), oldState(OSInactive), - needUpdate(false)//, attachedDimension(0) +Object::Object(): position(Vector(0, 0)), parent(0), type(OTObject), + state(OSInactive), oldState(OSInactive), needUpdate(false) + //, attachedDimension(0) { } -Object::Object(Vector v, Object * passedInParent/*= 0*/): position(v), parent(passedInParent), - state(OSInactive), oldState(OSInactive), needUpdate(false)//, attachedDimension(0) +Object::Object(Vector v, Object * passedInParent/*= 0*/): position(v), + parent(passedInParent), state(OSInactive), oldState(OSInactive), + needUpdate(false)//, attachedDimension(0) { } @@ -81,6 +88,12 @@ printf("Object: Destroyed!\n"); } +/*virtual*/ bool Object::HitTest(Point) +{ + return false; +} + + // This is intended to be overridden by the Container class, for object morphing /*virtual*/ void Object::Transmute(Object *, Object *) { @@ -135,6 +148,7 @@ printf("Object: Destroyed!\n"); /*virtual*/ void Object::Disconnect(Object * obj, double parameter) { +#if 0 for(uint i=0; i::iterator i; + + for(i=connected.begin(); i!=connected.end(); i++) + { + if (((*i).object == obj) && ((*i).t == parameter)) + { + connected.erase(i); + return; + } + } +#endif } /*virtual*/ void Object::DisconnectAll(Object * obj) { +#if 0 // According the std::vector docs, only items at position i and beyond are // invalidated, everything before i is still valid. So we use that here. for(uint i=0; i::iterator i; + + for(i=connected.begin(); i!=connected.end(); ) + { + if ((*i).object == obj) + connected.erase(i); + else + i++; + } +#endif +} + + +/*virtual*/ QRectF Object::Extents(void) +{ + // Generic object returns an empty rect... + return QRectF(); +} + + +#if 0 +/*virtual*/ ObjectType Object::Type(void) +{ + return OTObject; +} +#endif + + +/*virtual*/ void Object::Translate(Vector amount) +{ + position += amount; +} + + +/*virtual*/ void Object::Rotate(Vector, double) +{ +} + + +/*virtual*/ void Object::Scale(Vector, double) +{ }