Gui: refactor gizmo attachment code
This commit is contained in:
committed by
Kacper Donat
parent
e21f616974
commit
6282b7c08d
@@ -39,6 +39,7 @@
|
||||
#include "Control.h"
|
||||
#include "Document.h"
|
||||
#include "Inventor/Draggers/SoTransformDragger.h"
|
||||
#include "Inventor/Draggers/Gizmo.h"
|
||||
#include "Inventor/SoFCPlacementIndicatorKit.h"
|
||||
#include "SoFCUnifiedSelection.h"
|
||||
#include "TaskTransform.h"
|
||||
@@ -94,6 +95,12 @@ void ViewProviderDragger::resetTransformOrigin()
|
||||
setTransformOrigin({});
|
||||
}
|
||||
|
||||
|
||||
void ViewProviderDragger::setGizmoContainer(Gui::GizmoContainer* gizmoContainer)
|
||||
{
|
||||
this->gizmoContainer = gizmoContainer;
|
||||
}
|
||||
|
||||
void ViewProviderDragger::onChanged(const App::Property* property)
|
||||
{
|
||||
if (property == &TransformOrigin) {
|
||||
@@ -221,7 +228,11 @@ void ViewProviderDragger::setEditViewer(Gui::View3DInventorViewer* viewer, int M
|
||||
{
|
||||
Q_UNUSED(ModNum);
|
||||
|
||||
if (transformDragger && viewer) {
|
||||
if (!viewer) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (transformDragger) {
|
||||
transformDragger->setUpAutoScale(viewer->getSoRenderManager()->getCamera());
|
||||
|
||||
auto originPlacement = App::GeoFeature::getGlobalPlacement(getObject()) * getObjectPlacement().inverse();
|
||||
@@ -230,6 +241,12 @@ void ViewProviderDragger::setEditViewer(Gui::View3DInventorViewer* viewer, int M
|
||||
viewer->getDocument()->setEditingTransform(mat);
|
||||
viewer->setupEditingRoot(transformDragger, &mat);
|
||||
}
|
||||
|
||||
if (gizmoContainer) {
|
||||
auto originPlacement = App::GeoFeature::getGlobalPlacement(getObject())
|
||||
* getObjectPlacement().inverse();
|
||||
gizmoContainer->attachViewer(viewer, originPlacement);
|
||||
}
|
||||
}
|
||||
|
||||
void ViewProviderDragger::unsetEditViewer([[maybe_unused]] Gui::View3DInventorViewer* viewer)
|
||||
|
||||
Reference in New Issue
Block a user