From 6fd45d9e2cfaa8ad305ceeb07132b8a1a9ab0f34 Mon Sep 17 00:00:00 2001 From: Roman Telezhynskyi Date: Fri, 10 Feb 2017 16:47:15 +0200 Subject: [PATCH] Path should also supports elliptical arc. --HG-- branch : develop --- src/libs/vpatterndb/vpiece.cpp | 1 + src/libs/vpatterndb/vpiecepath.cpp | 5 +++++ src/libs/vtools/dialogs/tools/dialogpiecepath.cpp | 3 +++ src/libs/vtools/dialogs/tools/dialogseamallowance.cpp | 3 +++ src/libs/vtools/dialogs/tools/dialogtool.cpp | 1 + src/libs/vtools/tools/vabstracttool.cpp | 3 +++ 6 files changed, 16 insertions(+) diff --git a/src/libs/vpatterndb/vpiece.cpp b/src/libs/vpatterndb/vpiece.cpp index 85200418d..ed0f50b7d 100644 --- a/src/libs/vpatterndb/vpiece.cpp +++ b/src/libs/vpatterndb/vpiece.cpp @@ -156,6 +156,7 @@ QVector VPiece::SeamAllowancePoints(const VContainer *data) const } break; case (Tool::NodeArc): + case (Tool::NodeElArc): case (Tool::NodeSpline): case (Tool::NodeSplinePath): { diff --git a/src/libs/vpatterndb/vpiecepath.cpp b/src/libs/vpatterndb/vpiecepath.cpp index 0f1796edb..6f9bfde66 100644 --- a/src/libs/vpatterndb/vpiecepath.cpp +++ b/src/libs/vpatterndb/vpiecepath.cpp @@ -252,6 +252,7 @@ QVector VPiecePath::PathPoints(const VContainer *data) const } break; case (Tool::NodeArc): + case (Tool::NodeElArc): case (Tool::NodeSpline): case (Tool::NodeSplinePath): { @@ -287,6 +288,7 @@ QVector VPiecePath::PathNodePoints(const VContainer *data) const } break; case Tool::NodeArc: + case Tool::NodeElArc: case Tool::NodeSpline: case Tool::NodeSplinePath: default: @@ -314,6 +316,7 @@ QVector VPiecePath::SeamAllowancePoints(const VContainer *data, qreal } break; case (Tool::NodeArc): + case (Tool::NodeElArc): case (Tool::NodeSpline): case (Tool::NodeSplinePath): { @@ -674,6 +677,7 @@ QPointF VPiecePath::NodePreviousPoint(const VContainer *data, int i) const case (Tool::NodePoint): return *data->GeometricObject(node.GetId()); case (Tool::NodeArc): + case (Tool::NodeElArc): case (Tool::NodeSpline): case (Tool::NodeSplinePath): { @@ -725,6 +729,7 @@ QPointF VPiecePath::NodeNextPoint(const VContainer *data, int i) const case (Tool::NodePoint): return *data->GeometricObject(node.GetId()); case (Tool::NodeArc): + case (Tool::NodeElArc): case (Tool::NodeSpline): case (Tool::NodeSplinePath): { diff --git a/src/libs/vtools/dialogs/tools/dialogpiecepath.cpp b/src/libs/vtools/dialogs/tools/dialogpiecepath.cpp index 7cdce8e17..d564d75dd 100644 --- a/src/libs/vtools/dialogs/tools/dialogpiecepath.cpp +++ b/src/libs/vtools/dialogs/tools/dialogpiecepath.cpp @@ -96,6 +96,9 @@ void DialogPiecePath::ChosenObject(quint32 id, const SceneObject &type) case SceneObject::Arc: NewItem(VPieceNode(id, Tool::NodeArc, reverse)); break; + case SceneObject::ElArc: + NewItem(VPieceNode(id, Tool::NodeElArc, reverse)); + break; case SceneObject::Point: NewItem(VPieceNode(id, Tool::NodePoint)); break; diff --git a/src/libs/vtools/dialogs/tools/dialogseamallowance.cpp b/src/libs/vtools/dialogs/tools/dialogseamallowance.cpp index 2a9361844..919473e92 100644 --- a/src/libs/vtools/dialogs/tools/dialogseamallowance.cpp +++ b/src/libs/vtools/dialogs/tools/dialogseamallowance.cpp @@ -208,6 +208,9 @@ void DialogSeamAllowance::ChosenObject(quint32 id, const SceneObject &type) case SceneObject::Arc: NewMainPathItem(VPieceNode(id, Tool::NodeArc, reverse)); break; + case SceneObject::ElArc: + NewMainPathItem(VPieceNode(id, Tool::NodeElArc, reverse)); + break; case SceneObject::Point: NewMainPathItem(VPieceNode(id, Tool::NodePoint)); break; diff --git a/src/libs/vtools/dialogs/tools/dialogtool.cpp b/src/libs/vtools/dialogs/tools/dialogtool.cpp index 9eb92ce49..64463a4c7 100644 --- a/src/libs/vtools/dialogs/tools/dialogtool.cpp +++ b/src/libs/vtools/dialogs/tools/dialogtool.cpp @@ -470,6 +470,7 @@ void DialogTool::NewNodeItem(QListWidget *listWidget, const VPieceNode &node) { case (Tool::NodePoint): case (Tool::NodeArc): + case (Tool::NodeElArc): case (Tool::NodeSpline): case (Tool::NodeSplinePath): { diff --git a/src/libs/vtools/tools/vabstracttool.cpp b/src/libs/vtools/tools/vabstracttool.cpp index 7cd873b5f..27e059746 100644 --- a/src/libs/vtools/tools/vabstracttool.cpp +++ b/src/libs/vtools/tools/vabstracttool.cpp @@ -647,6 +647,9 @@ QDomElement VAbstractTool::AddSANode(VAbstractPattern *doc, const QString &tagNa case (Tool::NodeArc): doc->SetAttribute(nod, AttrType, VAbstractPattern::NodeArc); break; + case (Tool::NodeElArc): + doc->SetAttribute(nod, AttrType, VAbstractPattern::NodeElArc); + break; case (Tool::NodePoint): doc->SetAttribute(nod, AttrType, VAbstractPattern::NodePoint); break;