]> Shamusworld >> Repos - architektonas/blobdiff - src/object.cpp
Fixed loading code, added "Base Unit" dialog.
[architektonas] / src / object.cpp
index 925d9b4ceeeae7f6ef816da797d697bbf1327887..404d30576113a97ad9516b04677d087f81ad4346 100644 (file)
@@ -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<connected.size(); i++)
        {
                if (connected[i].object == obj && connected[i].t == parameter)
@@ -143,11 +157,24 @@ printf("Object: Destroyed!\n");
                        return;
                }
        }
+#else
+       std::vector<Connection>::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<connected.size();)
@@ -159,6 +186,48 @@ printf("Object: Destroyed!\n");
                else
                        i++;
        }
+#else
+       std::vector<Connection>::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)
+{
 }