X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdimension.h;h=dfbfd1d95dc3fa978cf0781bfe4c4ccc8faa34f8;hb=8a5bf49d09b5a00ebea3ffc449519ad05b0326cc;hp=ca146bb4a48abd184e9343b52c58c8d3aa0e6592;hpb=565c33c91ea355528145ba94b31b2e44309d0834;p=architektonas diff --git a/src/dimension.h b/src/dimension.h index ca146bb..dfbfd1d 100644 --- a/src/dimension.h +++ b/src/dimension.h @@ -1,7 +1,6 @@ #ifndef __DIMENSION_H__ #define __DIMENSION_H__ -#include "connection.h" #include "object.h" class Line; @@ -11,25 +10,22 @@ enum DimensionType { DTLinear, DTLinearVert, DTLinearHorz, DTRadial, DTDiametric class Dimension: public Object { friend class Line; + friend class Geometry; public: Dimension(Vector, Vector, DimensionType dt = DTLinear, Object * p = 0); - Dimension(Connection, Connection, DimensionType dt = DTLinear, Object * p = 0); ~Dimension(); 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 HitTest(Point); virtual void Enumerate(FILE *); virtual Object * Copy(void); virtual Vector GetPointAtParameter(double parameter); virtual void MovePointAtParameter(double parameter, Vector); - virtual void Connect(Object *, double); - virtual void Disconnect(Object *, double); - virtual void DisconnectAll(Object *); virtual QRectF Extents(void); void FlipSides(void); @@ -41,6 +37,7 @@ class Dimension: public Object Vector endpoint; // Starting point is Object::position Vector oldPoint; // Used for dragging Point oldEndpoint; + Point linePt1, linePt2; // Used for testing dimension line hits private: bool dragging; @@ -51,15 +48,11 @@ class Dimension: public Object DimensionType dimensionType; bool hitPoint1; bool hitPoint2; - bool oldHitPoint1, oldHitPoint2; + bool hitLine; + bool hitFlipSwitch; + bool oldHitPoint1, oldHitPoint2, oldHitLine, oldHitFlipSwitch; public: double size; // Size of arrows/text in base units - - private: - // We use these in lieu of the built-in connected[] array; no reason to - // do it this way especially - Connection point1; - Connection point2; }; #endif // __DIMENSION_H__