From 7e3be9eb68caa2cb88c38733410d53e8355d8974 Mon Sep 17 00:00:00 2001 From: wmayer Date: Wed, 5 Sep 2018 21:24:22 +0200 Subject: [PATCH] take care of object's global placement when creating point cloud of it --- src/Mod/Points/Gui/Command.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Mod/Points/Gui/Command.cpp b/src/Mod/Points/Gui/Command.cpp index 0422b4b58f..0233518b34 100644 --- a/src/Mod/Points/Gui/Command.cpp +++ b/src/Mod/Points/Gui/Command.cpp @@ -208,6 +208,9 @@ void CmdPointsConvert::activated(int iMsg) bool addedPoints = false; for (std::vector::iterator it = geoObject.begin(); it != geoObject.end(); ++it) { + Base::Placement globalPlacement = static_cast(*it)->globalPlacement(); + Base::Placement localPlacement = static_cast(*it)->Placement.getValue(); + localPlacement = globalPlacement * localPlacement.inverse(); const App::PropertyComplexGeoData* prop = static_cast(*it)->getPropertyOfGeometry(); if (prop) { const Data::ComplexGeoData* data = prop->getComplexData(); @@ -240,6 +243,7 @@ void CmdPointsConvert::activated(int iMsg) for (std::vector::iterator pt = vertexes.begin(); pt != vertexes.end(); ++pt) kernel.push_back(*pt); fea->Points.setValue(kernel); + fea->Placement.setValue(localPlacement); App::Document* doc = (*it)->getDocument(); doc->addObject(fea, "Points");