1 #ifndef __DIMENSION_H__
2 #define __DIMENSION_H__
4 #include "connection.h"
9 enum DimensionType { DTLinear, DTLinearVert, DTLinearHorz, DTRadial, DTDiametric, DTCircumferential, DTAngular, DTLeader };
11 class Dimension: public Object
14 friend class Geometry;
17 Dimension(Vector, Vector, DimensionType dt = DTLinear, Object * p = 0);
18 // Dimension(Connection, Connection, DimensionType dt = DTLinear, Object * p = 0);
21 virtual void Draw(Painter *);
22 virtual Vector Center(void);
23 virtual bool Collided(Vector);
24 virtual void PointerMoved(Vector);
25 virtual void PointerReleased(void);
26 virtual bool HitTest(Point);
27 virtual void Enumerate(FILE *);
28 virtual Object * Copy(void);
29 virtual Vector GetPointAtParameter(double parameter);
30 virtual void MovePointAtParameter(double parameter, Vector);
31 // virtual void Connect(Object *, double);
32 // virtual void Disconnect(Object *, double);
33 // virtual void DisconnectAll(Object *);
34 virtual QRectF Extents(void);
38 void SaveHitState(void);
39 bool HitStateChanged(void);
42 Vector endpoint; // Starting point is Object::position
43 Vector oldPoint; // Used for dragging
50 bool objectWasDragged;
52 DimensionType dimensionType;
57 bool oldHitPoint1, oldHitPoint2, oldHitLine, oldHitFlipSwitch;
59 double size; // Size of arrows/text in base units
62 // We use these in lieu of the built-in connected[] array; no reason to
63 // do it this way especially
68 #endif // __DIMENSION_H__