42 if (simpleControlPoints.size() == 2)
45 path.moveTo(simpleControlPoints.first());
46 path.lineTo(simpleControlPoints.last());
48 else if (simpleControlPoints.size() == 3)
51 path.moveTo(simpleControlPoints.first());
52 path.quadTo(simpleControlPoints.at(1), simpleControlPoints.last());
57 path = complexPath(simpleControlPoints);
107 assert((fullControlPoints.size() % 3 == 1) && (fullControlPoints.size() > 3));
109 QPainterPath path{fullControlPoints.at(0)};
111 for (
int i = 1; i < fullControlPoints.size(); i += 3)
113 assert(i + 2 < fullControlPoints.size());
116 fullControlPoints.at(i), fullControlPoints.at(i + 1), fullControlPoints.at(i + 2));
133 armarx::SplinePath::line(QPointF start, QPointF end)
135 QPointF direction = end - start;
136 QPointF middle = start + 0.5 * direction;
143 armarx::SplinePath::smoothTransition(QPointF start, QPointF middle, QPointF end)
145 QPointF parallelLine = end - start;
148 QPointF new1 = middle - relativeDistance * parallelLine;
149 QPointF new2 = middle + relativeDistance * parallelLine;
156 armarx::SplinePath::pathToString(QPainterPath path)
159 for (
size_t i = 0; i < static_cast<size_t>(path.elementCount()); i++)
161 QPainterPath::Element elem = path.elementAt(i);
167 case QPainterPath::MoveToElement:
173 case QPainterPath::LineToElement:
179 case QPainterPath::CurveToElement:
189 if (elem.type != QPainterPath::CurveToDataElement)