From 5efe63c06a4a845058d8d43141b284003a6ded3f Mon Sep 17 00:00:00 2001 From: wandererfan Date: Wed, 13 Jun 2018 17:39:18 -0400 Subject: [PATCH] Fix X,Y of anchor in Projection Group --- src/Mod/TechDraw/App/DrawProjGroupItem.cpp | 19 ++++++++++++++++++- src/Mod/TechDraw/App/DrawProjGroupItem.h | 1 + 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/Mod/TechDraw/App/DrawProjGroupItem.cpp b/src/Mod/TechDraw/App/DrawProjGroupItem.cpp index 7c35b4db0f..544d62c013 100644 --- a/src/Mod/TechDraw/App/DrawProjGroupItem.cpp +++ b/src/Mod/TechDraw/App/DrawProjGroupItem.cpp @@ -109,7 +109,10 @@ void DrawProjGroupItem::autoPosition() { auto pgroup = getPGroup(); Base::Vector3d newPos; - if ((pgroup != nullptr) && + if (isAnchor()) { + X.setValue(0.0); + Y.setValue(0.0); + } else if ((pgroup != nullptr) && (pgroup->AutoDistribute.getValue()) && (!LockPosition.getValue())) { newPos = pgroup->getXYPosition(Type.getValueAsString()); @@ -138,6 +141,20 @@ DrawProjGroup* DrawProjGroupItem::getPGroup() const } return result; } + +bool DrawProjGroupItem::isAnchor(void) +{ + bool result = false; + auto group = getPGroup(); + if (group != nullptr) { + DrawProjGroupItem* anchor = group->getAnchor(); + if (anchor == this) { + result = true; + } + } + return result; +} + gp_Ax2 DrawProjGroupItem::getViewAxis(const Base::Vector3d& pt, const Base::Vector3d& axis, const bool flip) const diff --git a/src/Mod/TechDraw/App/DrawProjGroupItem.h b/src/Mod/TechDraw/App/DrawProjGroupItem.h index 5102d8696d..c7a19ac8e5 100644 --- a/src/Mod/TechDraw/App/DrawProjGroupItem.h +++ b/src/Mod/TechDraw/App/DrawProjGroupItem.h @@ -78,6 +78,7 @@ public: virtual double getScale(void) const override; void autoPosition(void); + bool isAnchor(void); protected: