]> Shamusworld >> Repos - architektonas/blobdiff - src/object.h
Added new Spline object and Add Spline tool to GUI.
[architektonas] / src / object.h
index d34e79ae7598df74e85b3d330f63a390a9aeafe4..b83adaf02399fcb9e3f89db4dfaea9ebb3b2809f 100644 (file)
@@ -13,10 +13,12 @@ class Dimension;
 //class FILE;
 
 enum ObjectState { OSInactive, OSSelected };
-enum ObjectType { OTNone, OTObject, OTLine, OTCircle, OTArc, OTDimension, OTEllipse, OTContainer };
+enum ObjectType { OTNone, OTObject, OTLine, OTCircle, OTArc, OTDimension, OTEllipse, OTContainer, OTSpline };
 
 class Object
 {
+       friend class Geometry;
+
        public:
                Object();
                Object(Vector, Object * passedInParent = 0);
@@ -25,7 +27,7 @@ class Object
                virtual void Draw(Painter *);
                virtual Vector Center(void);
                virtual bool Collided(Vector);
-               virtual void PointerMoved(Vector);
+               virtual bool PointerMoved(Vector);
                virtual void PointerReleased(void);
                virtual bool NeedsUpdate(void);
                virtual bool HitTest(Point);
@@ -36,21 +38,19 @@ 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);
-//Hm.          Object * Connect(Object *);
 
                // Class methods
                static void SetFixedAngle(bool state = true);
@@ -62,9 +62,11 @@ class Object
                static void SetSnapMode(bool state = true);
                static Vector SnapPointToGrid(Vector);
 
-       protected:
+       public:
                Vector position;                                        // All objects have a position (doubles as reference point)
+       protected:
                Object * parent;
+//this needs to be added eventually
 //             Pen pen;
 //             Fill fill;
                Point oldPosition;
@@ -75,7 +77,6 @@ class Object
        protected:
                ObjectState oldState;
                bool needUpdate;
-//             Dimension * attachedDimension;
                std::vector<Connection> connected;
 
                // Class variables