Gui: Fix dragger update when moving to target object and make flip independent of selected components.
This commit is contained in:
committed by
Kacper Donat
parent
a95d782ab0
commit
9d1360fc8d
@@ -515,7 +515,7 @@ void TaskTransform::onSelectionChanged(const SelectionChanges& msg)
|
||||
vp->setDraggerPlacement(vp->getObjectPlacement() * selectedObjectPlacement);
|
||||
|
||||
if (msg.Type == SelectionChanges::AddSelection) {
|
||||
moveObjectToDragger();
|
||||
moveObjectToDragger(getRelevantComponents());
|
||||
|
||||
setSelectionMode(SelectionMode::None);
|
||||
}
|
||||
@@ -545,10 +545,11 @@ void TaskTransform::onAlignToOtherObject()
|
||||
setSelectionMode(SelectionMode::SelectAlignTarget);
|
||||
}
|
||||
|
||||
void TaskTransform::moveObjectToDragger()
|
||||
ViewProviderDragger::DraggerComponents TaskTransform::getRelevantComponents()
|
||||
{
|
||||
// Check which dragger components should be considered
|
||||
ViewProviderDragger::DraggerComponents components;
|
||||
|
||||
if (ui->matchXcheckbox->isChecked()) {
|
||||
components |= ViewProviderDragger::DraggerComponent::XPos;
|
||||
}
|
||||
@@ -578,6 +579,11 @@ void TaskTransform::moveObjectToDragger()
|
||||
components &= ~ViewProviderDragger::DraggerComponent::ZRot;
|
||||
}
|
||||
|
||||
return components;
|
||||
}
|
||||
|
||||
void TaskTransform::moveObjectToDragger(ViewProviderDragger::DraggerComponents components)
|
||||
{
|
||||
vp->updateTransformFromDragger();
|
||||
vp->updatePlacementFromDragger(components);
|
||||
|
||||
|
||||
@@ -125,7 +125,8 @@ private:
|
||||
void resetReferencePlacement();
|
||||
void resetReferenceRotation();
|
||||
|
||||
void moveObjectToDragger();
|
||||
ViewProviderDragger::DraggerComponents getRelevantComponents();
|
||||
void moveObjectToDragger(ViewProviderDragger::DraggerComponents components = ViewProviderDragger::DraggerComponent::All);
|
||||
|
||||
bool isDraggerAlignedToCoordinateSystem() const;
|
||||
|
||||
|
||||
@@ -313,6 +313,7 @@ void ViewProviderDragger::updatePlacementFromDragger(DraggerComponents component
|
||||
}
|
||||
|
||||
placement->setValue((finalDraggerPlacement * getTransformOrigin().inverse()));
|
||||
updateDraggerPosition();
|
||||
}
|
||||
|
||||
Base::Rotation Gui::ViewProviderDragger::orthonormalize(Base::Vector3d x,
|
||||
|
||||
Reference in New Issue
Block a user