From 91c5533d9b23e588cbe30a5a1390933a62b09989 Mon Sep 17 00:00:00 2001 From: wmayer Date: Sun, 12 May 2019 20:25:58 +0200 Subject: [PATCH] make curve-on-mesh working for meshes with placement --- src/Mod/MeshPart/Gui/CurveOnMesh.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/Mod/MeshPart/Gui/CurveOnMesh.cpp b/src/Mod/MeshPart/Gui/CurveOnMesh.cpp index d8fbfdff9e..78565ec17a 100644 --- a/src/Mod/MeshPart/Gui/CurveOnMesh.cpp +++ b/src/Mod/MeshPart/Gui/CurveOnMesh.cpp @@ -244,7 +244,6 @@ public: , curve(new ViewProviderCurveOnMesh) , mesh(0) , grid(0) - , kernel(0) , viewer(0) , editcursor(QPixmap(cursor_curveonmesh), 7, 7) { @@ -268,17 +267,19 @@ public: { Mesh::Feature* mf = static_cast(mesh->getObject()); const Mesh::MeshObject& meshObject = mf->Mesh.getValue(); - MeshCore::MeshAlgorithm alg(meshObject.getKernel()); + kernel = meshObject.getKernel(); + kernel.Transform(meshObject.getTransform()); + + MeshCore::MeshAlgorithm alg(kernel); float fAvgLen = alg.GetAverageEdgeLength(); - grid = new MeshCore::MeshFacetGrid(meshObject.getKernel(), 5.0f * fAvgLen); - kernel = &meshObject; + grid = new MeshCore::MeshFacetGrid(kernel, 5.0f * fAvgLen); } bool projectLineOnMesh(const PickedPoint& pick) { PickedPoint last = pickedPoints.back(); std::vector polyline; - MeshCore::MeshProjection meshProjection(kernel->getKernel()); + MeshCore::MeshProjection meshProjection(kernel); Base::Vector3f v1 = Base::convertTo(last.point); Base::Vector3f v2 = Base::convertTo(pick.point); Base::Vector3f vd = Base::convertTo(viewer->getViewer()->getViewDirection()); @@ -323,7 +324,7 @@ public: ViewProviderCurveOnMesh* curve; Gui::ViewProviderDocumentObject* mesh; MeshCore::MeshFacetGrid* grid; - Base::Reference kernel; + MeshCore::MeshKernel kernel; QPointer viewer; QCursor editcursor; ApproxPar par;