#ifndef __OBJECT_H__
#define __OBJECT_H__
-#include "vector.h"
+#include <vector> // This is a container
+#include "vector.h" // This is the mathematical construct
-class QPainter;
+class Painter;
class QFont;
class Dimension;
Object(Vector, Object * passedInParent = 0);
~Object();
- virtual void Draw(QPainter *);
+ virtual void Draw(Painter *);
virtual Vector Center(void);
virtual bool Collided(Vector);
virtual void PointerMoved(Vector);
virtual void PointerReleased(void);
virtual bool NeedsUpdate(void);
virtual void Transmute(Object *, Object *);
+ virtual Object * GetParent(void);
+ virtual void Add(Object *);
ObjectState GetState(void);
+ void Reparent(Object *);
+//Hm. Object * Connect(Object *);
// Class methods
static void SetFixedAngle(bool state = true);
static void SetFixedLength(bool state = true);
static void SetFont(QFont *);
static void SetViewportHeight(int);
+ static void SetDeleteActive(bool state = true);
+ static void SetDimensionActive(bool state = true);
protected:
Vector position; // All objects have a position (doubles as reference point)
ObjectState state;
ObjectState oldState;
bool needUpdate;
- Dimension * dimPoint1;
- Dimension * dimPoint2;
+ Dimension * attachedDimension;
+ std::vector<Object *> connected;
// Class variables
static QFont * font;
static bool fixedAngle;
static bool fixedLength;
static int viewportHeight;
+ static bool deleteActive;
+ static bool dimensionActive;
};
#endif // __OBJECT_H__