1 #ifndef __DIMENSION_H__
2 #define __DIMENSION_H__
4 #include "connection.h"
7 enum DimensionType { DTLinear, DTLinearVert, DTLinearHorz, DTRadial, DTDiametric, DTCircumferential, DTAngular, DTLeader };
9 class Dimension: public Object
12 Dimension(Vector, Vector, DimensionType dt = DTLinear, Object * p = 0);
13 Dimension(Connection, Connection, DimensionType dt = DTLinear, Object * p = 0);
16 virtual void Draw(Painter *);
17 virtual Vector Center(void);
18 virtual bool Collided(Vector);
19 virtual void PointerMoved(Vector);
20 virtual void PointerReleased(void);
21 virtual bool HitTest(Point);
22 virtual void Enumerate(FILE *);
23 virtual Object * Copy(void);
24 virtual Vector GetPointAtParameter(double parameter);
25 virtual void Connect(Object *, double);
26 virtual void Disconnect(Object *, double);
27 virtual void DisconnectAll(Object *);
28 virtual QRectF Extents(void);
32 Vector endpoint; // Starting point is Object::position
33 Vector oldPoint; // Used for dragging
39 bool objectWasDragged;
41 DimensionType dimensionType;
45 double size; // Size of arrows/text in base units
48 // We use these in lieu of the built-in connected[] array; no reason to
49 // do it this way especially
54 #endif // __DIMENSION_H__