Advanced options for move to other object in the transform tool.
Allows for masking of individual translation or rotation axes.
This commit is contained in:
committed by
Kacper Donat
parent
2933eaf819
commit
d64efad081
@@ -242,6 +242,21 @@ void TaskTransform::setupGui()
|
||||
&QPushButton::clicked,
|
||||
this,
|
||||
&TaskTransform::onAlignToOtherObject);
|
||||
connect(ui->moveOptionsButton,
|
||||
&QPushButton::toggled,
|
||||
ui->frameMoveOptions,
|
||||
&QWidget::setVisible);
|
||||
connect(ui->translateCheckbox, &QCheckBox::toggled, this, [this](bool translateChecked) {
|
||||
ui->matchXcheckbox->setEnabled(translateChecked);
|
||||
ui->matchYcheckbox->setEnabled(translateChecked);
|
||||
ui->matchZcheckbox->setEnabled(translateChecked);
|
||||
});
|
||||
connect(ui->rotateCheckbox, &QCheckBox::toggled, this, [this](bool rotateChecked) {
|
||||
ui->alignXcheckbox->setEnabled(rotateChecked);
|
||||
ui->alignYcheckbox->setEnabled(rotateChecked);
|
||||
ui->alignZcheckbox->setEnabled(rotateChecked);
|
||||
});
|
||||
|
||||
connect(ui->flipPartButton, &QPushButton::clicked, this, &TaskTransform::onFlip);
|
||||
|
||||
connect(ui->alignRotationCheckBox,
|
||||
@@ -289,6 +304,7 @@ void TaskTransform::loadPreferences()
|
||||
|
||||
ui->translationIncrementSpinBox->setValue(lastTranslationIncrement);
|
||||
ui->rotationIncrementSpinBox->setValue(lastRotationIncrement);
|
||||
ui->moveOptionsButton->setIcon(Gui::BitmapFactory().pixmap("Std_DlgParameter"));
|
||||
}
|
||||
|
||||
void TaskTransform::savePreferences()
|
||||
@@ -531,8 +547,39 @@ void TaskTransform::onAlignToOtherObject()
|
||||
|
||||
void TaskTransform::moveObjectToDragger()
|
||||
{
|
||||
// Check which dragger components should be considered
|
||||
ViewProviderDragger::DraggerComponents components;
|
||||
if (ui->matchXcheckbox->isChecked()) {
|
||||
components |= ViewProviderDragger::DraggerComponent::XPos;
|
||||
}
|
||||
if (ui->matchYcheckbox->isChecked()) {
|
||||
components |= ViewProviderDragger::DraggerComponent::YPos;
|
||||
}
|
||||
if (ui->matchZcheckbox->isChecked()) {
|
||||
components |= ViewProviderDragger::DraggerComponent::ZPos;
|
||||
}
|
||||
if (ui->alignXcheckbox->isChecked()) {
|
||||
components |= ViewProviderDragger::DraggerComponent::XRot;
|
||||
}
|
||||
if (ui->alignYcheckbox->isChecked()) {
|
||||
components |= ViewProviderDragger::DraggerComponent::YRot;
|
||||
}
|
||||
if (ui->alignZcheckbox->isChecked()) {
|
||||
components |= ViewProviderDragger::DraggerComponent::ZRot;
|
||||
}
|
||||
if (!ui->translateCheckbox->isChecked()) {
|
||||
components &= ~ViewProviderDragger::DraggerComponent::XPos;
|
||||
components &= ~ViewProviderDragger::DraggerComponent::YPos;
|
||||
components &= ~ViewProviderDragger::DraggerComponent::ZPos;
|
||||
}
|
||||
if (!ui->rotateCheckbox->isChecked()) {
|
||||
components &= ~ViewProviderDragger::DraggerComponent::XRot;
|
||||
components &= ~ViewProviderDragger::DraggerComponent::YRot;
|
||||
components &= ~ViewProviderDragger::DraggerComponent::ZRot;
|
||||
}
|
||||
|
||||
vp->updateTransformFromDragger();
|
||||
vp->updatePlacementFromDragger();
|
||||
vp->updatePlacementFromDragger(components);
|
||||
|
||||
resetReferenceRotation();
|
||||
resetReferencePlacement();
|
||||
|
||||
Reference in New Issue
Block a user