1 #include "CallbackPointOrdinal.h"
2 #include "EngaugeAssert.h"
7 #include "Transformation.h"
11 const QPointF &posScreen) :
12 m_lineStyle (lineStyle),
13 m_transformation (transformation),
14 m_posScreen (posScreen),
15 m_haveMinimumDistanceToLine (false),
16 m_minimumDistanceToLine (0.0),
17 m_minimumProjectedDistanceOutsideLine (0.0),
23 const Point &pointStop)
25 double xProjection, yProjection, projectedDistanceOutsideLine, distanceToLine;
27 projectPointOntoLine(m_posScreen.x(),
35 &projectedDistanceOutsideLine,
39 if (!m_haveMinimumDistanceToLine ||
40 (distanceToLine < m_minimumDistanceToLine) ||
41 (distanceToLine == m_minimumDistanceToLine && projectedDistanceOutsideLine < m_minimumProjectedDistanceOutsideLine)) {
44 if (projectedDistanceOutsideLine == 0) {
52 double distanceProjectionToStart = qSqrt ((xProjection - pointStart.
posScreen().x()) * (xProjection - pointStart.
posScreen().x()) +
53 (yProjection - pointStart.
posScreen().y()) * (yProjection - pointStart.
posScreen().y()));
54 double distanceProjectionToStop = qSqrt ((xProjection - pointStop.
posScreen().x()) * (xProjection - pointStop.
posScreen().x()) +
55 (yProjection - pointStop.
posScreen().y()) * (yProjection - pointStop.
posScreen().y()));
56 if (distanceProjectionToStart < distanceProjectionToStop) {
59 m_ordinal = pointStart.
ordinal() - 0.5;
64 m_ordinal = pointStop.
ordinal() + 0.5;
69 m_haveMinimumDistanceToLine =
true;
70 m_minimumDistanceToLine = distanceToLine;
71 m_minimumProjectedDistanceOutsideLine = projectedDistanceOutsideLine;
double ordinal() const
Computed ordinal.
CallbackSearchReturn callback(const Point &pointStart, const Point &pointStop)
Callback method.
CallbackPointOrdinal(const LineStyle &lineStyle, const Transformation &transformation, const QPointF &posScreen)
Single constructor.
Class that represents one digitized point. The screen-to-graph coordinate transformation is always ex...
QPointF posScreen() const
Accessor for screen position.
CallbackSearchReturn
Return values for search callback methods.
Continue normal execution of the search.
Details for a specific Line.
double ordinal(ApplyHasCheck applyHasCheck=KEEP_HAS_CHECK) const
Get method for ordinal. Skip check if copying one instance to another.