23 const QPointF &posScreen) :
24 m_modelGuideline (modelGuideline),
25 m_centipedeXT (nullptr),
26 m_centipedeYR (nullptr),
27 m_posScreenStart (posScreen),
28 m_selectedXTFinal (true),
53 QPointF delta = posScreen - m_posScreenStart;
54 double distanceFromCenter =
magnitude (delta);
56 return (distanceFromCenter > m_modelGuideline.creationCircleRadius ());
61 QPointF delta = posScreen - m_posScreenStart;
62 double distanceFromCenter =
magnitude (delta);
64 if (updateFinalValues (posScreen)) {
65 m_centipedeXT->updateRadius (m_modelGuideline.creationCircleRadius () + distanceFromCenter);
66 m_centipedeYR->updateRadius (m_modelGuideline.creationCircleRadius () - distanceFromCenter);
68 m_centipedeXT->updateRadius (m_modelGuideline.creationCircleRadius () - distanceFromCenter);
69 m_centipedeYR->updateRadius (m_modelGuideline.creationCircleRadius () + distanceFromCenter);
75 return m_selectedXTFinal;
78bool CentipedePairCartesian::updateFinalValues (
const QPointF &posScreen)
83 m_selectedXTFinal = (distXT < distYR);
86 if (m_selectedXTFinal) {
87 m_valueFinal = m_posGraphStart.x();
89 m_valueFinal = m_posGraphStart.y();
92 return m_selectedXTFinal;
void move(const QPointF &posScreen)
Follow cursor move.
bool selectedXTFinal() const
True if XT is final selection, otherwise false if YR is final selection.
virtual ~CentipedePairCartesian()
double valueFinal() const
Final XT or YT (depending on selectedXTFinal) value.
bool done(const QPointF &posScreen)
True if cursor has moved far enough that the CentipedePairCartesian has finished and should be remove...
CentipedePairCartesian(GraphicsScene &scene, const Transformation &transformation, const DocumentModelGuideline &modelGuideline, const DocumentModelCoords &modelCoords, const QPointF &posScreen)
Constructor with individual coordinates.
virtual double distanceToClosestEndpoint(const QPointF &posScreen) const =0
Return distance to closest endpoint.
Centipede for constant XT using QGraphicsLineItem.
Centipede for constant YR using QGraphicsLineItem.
Model for DlgSettingsCoords and CmdSettingsCoords.
Model for managing the coordinate values corresponding Guidelines.
Add point and line handling to generic QGraphicsScene.
double magnitude(const QPointF &vec)
Norm of vector.