#include "line.h" Line::Line() :QLine() { m_selected = true; } bool Line::isHit(const QPoint &clickPoint) { QVector3D a(p2() - p1()); QVector3D r1(p1()); QVector3D rq(clickPoint); float dist = rq.distanceToLine(r1, a.normalized()); return dist < 5; } void Line::setSelected(bool selected) { m_selected = selected; } void Line::draw(QPainter *painter) { if(m_selected) { QPen penTemp(Qt::DotLine); penTemp.setColor(Qt::red); painter->setPen(penTemp); painter->drawEllipse(p1(), 5, 5); painter->drawEllipse(p2(), 5, 5); } else { QPen penNormal(Qt::SolidLine); penNormal.setColor(Qt::black); painter->setPen(penNormal); } painter->drawLine(p1(), p2()); }