Skip to content
Snippets Groups Projects
circle.cpp 979 B
Newer Older
  • Learn to ignore specific revisions
  • Pelotrio's avatar
    Pelotrio committed
    
    #include "circle.h"
    #include "scene.h"
    
    Circle::Circle(Point startIn, Scene *s) : Shape(startIn, s->getDefaultColour()) {
        outline = s->getDefaultOutline();
    }
    
    void Circle::setRad(Point outerIn) {
        rad = distanceBetweenPoints(start, outerIn);
    }
    
    void Circle::display(QPainter *qp) {
        qp->setPen(QPen(colour, 2, Qt::SolidLine));
        if (!outline) {
            qp->setBrush(QBrush(colour, Qt::SolidPattern));
        }
        qp->drawEllipse(start.x - rad, start.y - rad, rad * 2, rad * 2);
        qp->setBrush(QBrush(colour, Qt::NoBrush));
    }
    
    void Circle::displayHighlight(QPainter *qp, QColor colourIn) {
    
        qp->setPen(QPen(colourIn, 2, Qt::DashLine));
    
        qp->drawEllipse(start.x - rad, start.y - rad, rad * 2, rad * 2);
    
    }
    
    void Circle::update(Point in, Scene *parent) {
        setRad(in);
    }
    
    float Circle::innerDistance() {
        return rad;
    }
    
    bool Circle::pointInShape(Point in) {
        if (distanceBetweenPoints(start, in) <= rad) {
            return true;
        }
        return false;
    }