]> Shamusworld >> Repos - architektonas/blobdiff - src/circle.cpp
Initial stab at text object. Nonfunctional ATM.
[architektonas] / src / circle.cpp
index 5750b1f0ecabb66ac2929f68cb4b6543ea035bbf..af8f91f3be2c152bf4c906d4ed3dd767f2e0054c 100644 (file)
@@ -24,10 +24,12 @@ Circle::Circle(Vector p1, double r, Object * p/*= NULL*/): Object(p1, p), radius
 {
 }
 
+
 Circle::~Circle()
 {
 }
 
+
 /*virtual*/ void Circle::Draw(Painter * painter)
 {
        if (state == OSSelected || hitCircle || hitCenter)
@@ -35,6 +37,12 @@ Circle::~Circle()
        else
                painter->SetPen(QPen(Qt::black, 1.0, Qt::SolidLine));
 
+       // Hatch/Fill...
+//     QBrush brush(Qt::DiagCrossPattern);
+//     brush.setColor(QColor(255, 255, 0));
+//     painter->SetBrush(brush);
+       painter->SetBrush(QBrush(Qt::NoBrush));
+
        // Draw the object...
        painter->DrawEllipse(position, radius, radius);
 
@@ -46,11 +54,13 @@ Circle::~Circle()
                painter->DrawHandle(dragPoint);
 }
 
+
 /*virtual*/ Vector Circle::Center(void)
 {
        return position;
 }
 
+
 /*virtual*/ bool Circle::Collided(Vector point)
 {
        // We can assume this, since this is a mouse down event here.
@@ -73,6 +83,7 @@ Circle::~Circle()
        return false;
 }
 
+
 /*virtual*/ void Circle::PointerMoved(Vector point)
 {
        // Hit test tells us what we hit (if anything) through boolean variables. It
@@ -89,6 +100,7 @@ Circle::~Circle()
        dragPoint = point;
 }
 
+
 /*virtual*/ void Circle::PointerReleased(void)
 {
        // Mouse went up, so our dragging is done (if any *was* done, that is)
@@ -101,6 +113,7 @@ Circle::~Circle()
                state = oldState;
 }
 
+
 bool Circle::HitTest(Point point)
 {
        SaveState();
@@ -123,12 +136,14 @@ since we generally *don't* want those to scale with the zoom level. ;-)
        return StateChanged();
 }
 
+
 void Circle::SaveState(void)
 {
        oldHitCenter = hitCenter;
        oldHitCircle = hitCircle;
 }
 
+
 bool Circle::StateChanged(void)
 {
        if ((hitCenter != oldHitCenter) || (hitCircle != oldHitCircle))
@@ -136,3 +151,10 @@ bool Circle::StateChanged(void)
 
        return false;
 }
+
+
+/*virtual*/ void Circle::Enumerate(FILE * file)
+{
+       fprintf(file, "CIRCLE (%lf,%lf) %lf\n", position.x, position.y, radius);
+}
+