diff --git a/src/libs/vlayout/vabstractdetail.h b/src/libs/vlayout/vabstractdetail.h index 00cf72ad6..0f8d00180 100644 --- a/src/libs/vlayout/vabstractdetail.h +++ b/src/libs/vlayout/vabstractdetail.h @@ -70,12 +70,12 @@ public: protected: static QVector RemoveDublicates(const QVector &points); + static QVector CorrectEquidistantPoints(const QVector &points); + static QVector CheckLoops(const QVector &points); private: QSharedDataPointer d; - static QVector CorrectEquidistantPoints(const QVector &points); - static QVector CheckLoops(const QVector &points); static QVector EkvPoint(const QLineF &line1, const QLineF &line2, const qreal &width); static QPointF UnclosedEkvPoint(const QLineF &line, const QLineF &helpLine, const qreal &width); static QLineF ParallelLine(const QLineF &line, qreal width ); diff --git a/src/libs/vpatterndb/vdetail.cpp b/src/libs/vpatterndb/vdetail.cpp index 732c85593..137b8dff3 100644 --- a/src/libs/vpatterndb/vdetail.cpp +++ b/src/libs/vpatterndb/vdetail.cpp @@ -382,6 +382,8 @@ QVector VDetail::ContourPoints(const VContainer *data) const break; } } + + points = CheckLoops(CorrectEquidistantPoints(points));//A path can contains loops return points; } @@ -426,6 +428,8 @@ QVector VDetail::SeamAllowancePoints(const VContainer *data) const } } + pointsEkv = CheckLoops(CorrectEquidistantPoints(pointsEkv));//A path can contains loops + if (getClosed() == true) { pointsEkv = Equidistant(pointsEkv, EquidistantType::CloseEquidistant, ToPixel(getWidth(),