]> Shamusworld >> Repos - architektonas/blobdiff - src/object.h
Fix object selection to work while in snap mode.
[architektonas] / src / object.h
index 5d51f57d79f254ea933b8b58f3c7dc218c6bc877..39dbb9e4137633bf0483e7711ecb6df8fc3d8d81 100644 (file)
@@ -28,6 +28,7 @@ class Object
                virtual void PointerMoved(Vector);
                virtual void PointerReleased(void);
                virtual bool NeedsUpdate(void);
+               virtual bool HitTest(Point);
                virtual void Transmute(Object *, Object *);
                virtual Object * GetParent(void);
                virtual void Add(Object *);
@@ -40,6 +41,9 @@ class Object
                virtual void DisconnectAll(Object *);
                virtual QRectF Extents(void);
 //             virtual ObjectType Type(void);// = 0; // Pure virtual, must be implemented
+               virtual void Translate(Vector);
+               virtual void Rotate(Vector, double);
+               virtual void Scale(Vector, double);
                ObjectState GetState(void);
                void Reparent(Object *);
 //             Dimension * GetAttachedDimension(void);
@@ -53,6 +57,7 @@ class Object
                static void SetDeleteActive(bool state = true);
                static void SetDimensionActive(bool state = true);
                static void SetSnapMode(bool state = true);
+               static Vector SnapPointToGrid(Vector);
 
        protected:
                Vector position;                                        // All objects have a position (doubles as reference point)
@@ -75,12 +80,14 @@ class Object
                static int viewportHeight;
                static bool deleteActive;
                static bool dimensionActive;
+       public:
                static bool snapToGrid;
                static bool ignoreClicks;
                static bool dontMove;
        public:
                static bool selectionInProgress;
                static QRectF selection;
+               static double gridSpacing;                      // Grid spacing in base units
 };
 
 #endif // __OBJECT_H__