From 9d65cc5672bfa2ec5f21d93f07bfb050dfca76fc Mon Sep 17 00:00:00 2001 From: Abdullah Tahiri Date: Mon, 26 Dec 2016 23:23:34 +0100 Subject: [PATCH] Sketcher: Copy/Clone and Array support for Arcs of Parabola and Hyperbola --- src/Mod/Sketcher/App/SketchObject.cpp | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/src/Mod/Sketcher/App/SketchObject.cpp b/src/Mod/Sketcher/App/SketchObject.cpp index c0367fa7f4bd..69d00a3abc99 100644 --- a/src/Mod/Sketcher/App/SketchObject.cpp +++ b/src/Mod/Sketcher/App/SketchObject.cpp @@ -2475,6 +2475,26 @@ int SketchObject::addCopy(const std::vector &geoIdList, const Base::Vector3 if(it == geoIdList.begin()) iterfirstpoint = geoaoe->getStartPoint(true); } + else if(geocopy->getTypeId() == Part::GeomArcOfHyperbola::getClassTypeId()){ + Part::GeomArcOfHyperbola *geoaoe = static_cast(geocopy); + Base::Vector3d cp = geoaoe->getCenter(); + Base::Vector3d scp = cp+double(x)*displacement+double(y)*perpendicularDisplacement; + + geoaoe->setCenter(scp); + + if(it == geoIdList.begin()) + iterfirstpoint = geoaoe->getStartPoint(true); + } + else if(geocopy->getTypeId() == Part::GeomArcOfParabola::getClassTypeId()){ + Part::GeomArcOfParabola *geoaoe = static_cast(geocopy); + Base::Vector3d cp = geoaoe->getCenter(); + Base::Vector3d scp = cp+double(x)*displacement+double(y)*perpendicularDisplacement; + + geoaoe->setCenter(scp); + + if(it == geoIdList.begin()) + iterfirstpoint = geoaoe->getStartPoint(true); + } else if(geocopy->getTypeId() == Part::GeomPoint::getClassTypeId()){ Part::GeomPoint *geopoint = static_cast(geocopy); Base::Vector3d cp = geopoint->getPoint(); @@ -2728,7 +2748,7 @@ int SketchObject::addCopy(const std::vector &geoIdList, const Base::Vector3 if( newconstrVals.size() > constrvals.size() ) Constraints.setValues(newconstrVals); - return Geometry.getSize()-1; + return Geometry.getSize()-1; }