From b6e54b6586484d4bda908bd4b99e6d558bc8fff4 Mon Sep 17 00:00:00 2001 From: Paddle Date: Wed, 12 Apr 2023 18:23:35 +0200 Subject: [PATCH] TaskImage: finish fixing when imageplane is in transformed part. --- src/Gui/TaskView/TaskImage.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Gui/TaskView/TaskImage.cpp b/src/Gui/TaskView/TaskImage.cpp index 1533fdd092..1a83c3e2fa 100644 --- a/src/Gui/TaskView/TaskImage.cpp +++ b/src/Gui/TaskView/TaskImage.cpp @@ -243,8 +243,7 @@ void TaskImage::onInteractiveScale() View3DInventorViewer* viewer = getViewer(); if (viewer) { auto vp = Application::Instance->getViewProvider(feature.get()); - Base::Placement placement = feature->Placement.getValue(); - scale = new InteractiveScale(viewer, vp, placement); + scale = new InteractiveScale(viewer, vp, feature->globalPlacement()); connect(scale, &InteractiveScale::scaleRequired, this, &TaskImage::acceptScale); connect(scale, &InteractiveScale::scaleCanceled, @@ -687,6 +686,7 @@ SbVec3f InteractiveScale::getCoordsOnImagePlane(const SbVec3f& point) RY = tmp.multVec(RY); Base::Vector3d pos = placement.getPosition(); + //we use pos as the Base because in setPlacement we set transform->translation using placement.getPosition() to fix the Zoffset. But this applies the X & Y translation too. Base::Vector3d S(point[0], point[1], point[2]); S.TransformToCoordinateSystem(pos, RX, RY);