]> Shamusworld >> Repos - architektonas/blobdiff - src/object.h
Misc. fixes & additions
[architektonas] / src / object.h
index 39dbb9e4137633bf0483e7711ecb6df8fc3d8d81..4f50821f0dcdae32bf9cf5935d34090839019e58 100644 (file)
@@ -17,6 +17,8 @@ enum ObjectType { OTNone, OTObject, OTLine, OTCircle, OTArc, OTDimension, OTElli
 
 class Object
 {
+       friend class Geometry;
+
        public:
                Object();
                Object(Vector, Object * passedInParent = 0);
@@ -36,14 +38,18 @@ class Object
                virtual void Enumerate(FILE *);
                virtual Object * Copy(void);
                virtual Vector GetPointAtParameter(double parameter);
+//Not yet, soon though         virtual void MovePointAtParameter(double parameter, Vector);
                virtual void Connect(Object *, double);
                virtual void Disconnect(Object *, double);
                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);
+               virtual void Rotate(Point, double);
+               virtual void Scale(Point, double);
+               virtual void Mirror(Point, Point);
+               virtual void Save(void);
+               virtual void Restore(void);
                ObjectState GetState(void);
                void Reparent(Object *);
 //             Dimension * GetAttachedDimension(void);
@@ -64,9 +70,11 @@ class Object
                Object * parent;
 //             Pen pen;
 //             Fill fill;
+               Point oldPosition;
        public:
                ObjectType type;
                ObjectState state;
+               unsigned int layer;
        protected:
                ObjectState oldState;
                bool needUpdate;
@@ -74,7 +82,9 @@ class Object
                std::vector<Connection> connected;
 
                // Class variables
+       public:
                static QFont * font;
+       protected:
                static bool fixedAngle;
                static bool fixedLength;
                static int viewportHeight;
@@ -88,6 +98,7 @@ class Object
                static bool selectionInProgress;
                static QRectF selection;
                static double gridSpacing;                      // Grid spacing in base units
+               static int currentLayer;
 };
 
 #endif // __OBJECT_H__