diff --git a/src/libs/vlayout/vabstractpiece.h b/src/libs/vlayout/vabstractpiece.h index e8014e31f..4c71c69dc 100644 --- a/src/libs/vlayout/vabstractpiece.h +++ b/src/libs/vlayout/vabstractpiece.h @@ -188,8 +188,7 @@ public: template static auto MirrorPath(const QVector &points, const QLineF &mirrorLine) -> QVector; template - static auto FullSeamPath(const QVector &points, const QLineF &mirrorLine, const QString &pieceName) - -> QVector; + static auto FullSeamPath(QVector points, const QLineF &mirrorLine, const QString &pieceName) -> QVector; template static auto FullSeamAllowancePath(const QVector &points, const QLineF &mirrorLine, const QString &pieceName) -> QVector; @@ -867,7 +866,7 @@ inline auto VAbstractPiece::MirrorPath(const QVector //--------------------------------------------------------------------------------------------------------------------- template -inline auto VAbstractPiece::FullSeamPath(const QVector &points, const QLineF &mirrorLine, const QString &pieceName) +inline auto VAbstractPiece::FullSeamPath(QVector points, const QLineF &mirrorLine, const QString &pieceName) -> QVector { // DumpVector(points, QStringLiteral("input.json.XXXXXX")); // Uncomment for dumping test data @@ -882,6 +881,12 @@ inline auto VAbstractPiece::FullSeamPath(const QVector &points, const QLineF return points; } + // Function expects not closed path + if (points.constFirst() == points.constLast()) + { + points.removeLast(); + } + QVector base; base.reserve(points.size());