14 m_transformation (transformation)
22 m_segmentOperations.resize (numSegments);
27 for (
int segment = 0; segment < numSegments; segment++) {
29 bool itsAKeeper =
true;
41 m_segmentOperations [segment] = (itsAKeeper ?
54 if (segment < numSegments - 1) {
57 double tI = double (segment);
58 double tIp1 = double (segment + 1);
64 int deltaX = qFloor (posScreenEnd.
x() - posScreenStart.
x());
65 int deltaY = qFloor (posScreenEnd.
y() - posScreenStart.
y());
66 double pixelDistance = qSqrt (deltaX * deltaX + deltaY * deltaY);
67 double numSteps = pixelDistance;
70 double tIDelta = 1.0 / numSteps;
71 for (
int itI = 1; itI < numSteps - 1; itI++) {
73 double tIm1 = segment + (itI - 1) * tIDelta;
74 double tI = segment + (itI ) * tIDelta;
75 double tIp1 = segment + (itI + 1) * tIDelta;
81 QPointF posScreenBefore (spBefore.x(), spBefore.y());
82 QPointF posScreenCurrent (spCurrent.
x(), spCurrent.
y());
83 QPointF posScreenAfter (spAfter.
x(), spAfter.
y());
85 QPointF posGraphBefore, posGraphCurrent, posGraphAfter;
95 double deltaXBefore = posGraphCurrent.x() - posGraphBefore.x();
96 double deltaXAfter = posGraphAfter.x() - posGraphCurrent.x();
98 if ((deltaXBefore > 0 && deltaXAfter < 0) ||
99 (deltaXBefore < 0 && deltaXAfter > 0)) {
112 if (segment < m_segmentOperations.count()) {
113 return m_segmentOperations.at (segment);
@ CONNECT_AS_FUNCTION_SMOOTH
#define ENGAUGE_ASSERT(cond)
Drop in replacement for Q_ASSERT if defined(QT_NO_DEBUG) && !defined(QT_FORCE_ASSERTS) define ENGAUGE...
@ SPLINE_DRAWER_ENUM_INVISIBLE_MOVE
@ SPLINE_DRAWER_ENUM_VISIBLE_DRAW
Details for a specific Line.
CurveConnectAs curveConnectAs() const
Get method for connect type.
void bindToSpline(const LineStyle &lineStyle, int numSegments, const Spline &spline)
Analyze each segment in the Spline.
SplineDrawer(const Transformation &transformation)
Single constructor.
SplineDrawerOperation segmentOperation(int segment) const
Indicate if, and how, segment is to be drawn.
bool segmentIsMultiValued(const Spline &spline, int numSegments, int segment) const
Return true if specified segment is multi-valued, else false.
Single X/Y pair for cubic spline interpolation initialization and calculations.
double y() const
Get method for y.
double x() const
Get method for x.
Cubic interpolation given independent and dependent value vectors.
SplinePair interpolateCoeff(double t) const
Return interpolated y for specified x.