X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fcircle.cpp;h=1f350b0341615f7cc2abbde872c0448c13e68b66;hb=11802354d1ddc5bc571d83d8fc9b600618cb4372;hp=0780f6258bc32f67a94e3d097a5a797f3d6094c1;hpb=e11a07565fe5ef3dfafbf9a933d7a1575e058867;p=architektonas diff --git a/src/circle.cpp b/src/circle.cpp index 0780f62..1f350b0 100644 --- a/src/circle.cpp +++ b/src/circle.cpp @@ -22,6 +22,7 @@ Circle::Circle(Vector p1, double r, Object * p/*= NULL*/): Object(p1, p), radius(r), draggingEdge(false), draggingCenter(false), hitCenter(false), hitCircle(false) { + type = OTCircle; } @@ -86,6 +87,17 @@ Circle::~Circle() /*virtual*/ void Circle::PointerMoved(Vector point) { + if (selectionInProgress) + { + // Check for whether or not the rect contains this circle + if (selection.normalized().contains(Extents())) + state = OSSelected; + else + state = OSInactive; + + return; + } + // Hit test tells us what we hit (if anything) through boolean variables. It // also tells us whether or not the state changed. needUpdate = HitTest(point); @@ -114,7 +126,7 @@ Circle::~Circle() } -bool Circle::HitTest(Point point) +/*virtual*/ bool Circle::HitTest(Point point) { SaveState(); hitCenter = hitCircle = false; @@ -147,6 +159,12 @@ pointed at length with our on screen length. } +/*virtual*/ QRectF Circle::Extents(void) +{ + return QRectF(QPointF(position.x - radius, position.y - radius), QPointF(position.x + radius, position.y + radius)); +} + + void Circle::SaveState(void) { oldHitCenter = hitCenter;