6 class Arc: public Object
9 Arc(Vector, double, double, double, Object * p = 0);
12 virtual void Draw(Painter *);
13 virtual Vector Center(void);
14 virtual bool Collided(Vector);
15 virtual bool PointerMoved(Vector);
16 virtual void PointerReleased(void);
17 virtual bool HitTest(Point);
18 virtual void Enumerate(FILE *);
19 virtual Object * Copy(void);
20 virtual QRectF Extents(void);
21 virtual void Rotate(Point, double);
22 virtual void Mirror(Point, Point);
23 virtual void Save(void);
24 virtual void Restore(void);
27 bool AngleInArcSpan(double angle);
30 void SaveHitState(void);
31 bool HitStateChanged(void);
34 double radius; // Center is Object::position
35 double startAngle; // Starting angle in radians
36 double angleSpan; // # of degrees the arc spans in radians
42 // bool hitHandle1; // Moving
43 // bool hitHandle2; // Rotation
44 // bool hitHandle3; // Setting span of the arc
45 // bool hitHandle4; // Resizing
50 bool objectWasDragged;
51 Vector oldPoint; // Used for dragging
52 double oldAngle; // Used for user feedback
53 double oldRadius; // Used for user feedback
54 bool hitCenter, hitArc, hitRotate, hitSpan;
55 bool oldHitCenter, oldHitArc, oldHitRotate, oldHitSpan;