5 #include <vector> // This is a container
6 #include "vector.h" // This is the mathematical construct
7 #include "connection.h"
14 enum ObjectState { OSInactive, OSSelected };
20 Object(Vector, Object * passedInParent = 0);
23 virtual void Draw(Painter *);
24 virtual Vector Center(void);
25 virtual bool Collided(Vector);
26 virtual void PointerMoved(Vector);
27 virtual void PointerReleased(void);
28 virtual bool NeedsUpdate(void);
29 virtual void Transmute(Object *, Object *);
30 virtual Object * GetParent(void);
31 virtual void Add(Object *);
32 virtual Vector * GetPointAt(Vector);
33 virtual void Enumerate(FILE *);
34 virtual Object * Copy(void);
35 virtual Vector GetPointAtParameter(double parameter);
36 virtual void Connect(Object *, double);
37 virtual void Disconnect(Object *, double);
38 virtual void DisconnectAll(Object *);
39 ObjectState GetState(void);
40 void Reparent(Object *);
41 // Dimension * GetAttachedDimension(void);
42 //Hm. Object * Connect(Object *);
45 static void SetFixedAngle(bool state = true);
46 static void SetFixedLength(bool state = true);
47 static void SetFont(QFont *);
48 static void SetViewportHeight(int);
49 static void SetDeleteActive(bool state = true);
50 static void SetDimensionActive(bool state = true);
51 static void SetSnapMode(bool state = true);
54 Vector position; // All objects have a position (doubles as reference point)
61 // Dimension * attachedDimension;
62 std::vector<Connection> connected;
66 static bool fixedAngle;
67 static bool fixedLength;
68 static int viewportHeight;
69 static bool deleteActive;
70 static bool dimensionActive;
71 static bool snapToGrid;
74 #endif // __OBJECT_H__