handler toggle 1,2,3 keys
This commit is contained in:
@@ -68,6 +68,9 @@ vtkHandlerWidget::vtkHandlerWidget() {
|
||||
this->m_OverlayRenderer->EraseOff();
|
||||
this->m_OverlayRenderer->InteractiveOff();
|
||||
this->Priority = 50.0; // Higher priority to beat camera style
|
||||
this->m_TranslationEnabled = true;
|
||||
this->m_RotationEnabled = true;
|
||||
this->m_ScalingEnabled = true;
|
||||
this->CreateGizmos();
|
||||
}
|
||||
|
||||
@@ -131,6 +134,8 @@ void vtkHandlerWidget::SetEnabled(int enabling) {
|
||||
this->m_OverlayRenderer->AddActor(m_ScaleY);
|
||||
this->m_OverlayRenderer->AddActor(m_ScaleZ);
|
||||
|
||||
this->UpdateVisibility();
|
||||
|
||||
this->InvokeEvent(::vtkCommand::EnableEvent, nullptr);
|
||||
} else {
|
||||
if (!this->Enabled)
|
||||
@@ -454,6 +459,63 @@ void vtkHandlerWidget::PlaceWidget(double bounds[6]) {
|
||||
this->UpdateGizmoPosition();
|
||||
}
|
||||
|
||||
void vtkHandlerWidget::SetTranslationEnabled(bool enabled) {
|
||||
this->m_TranslationEnabled = enabled;
|
||||
this->UpdateVisibility();
|
||||
if (this->Interactor) this->Interactor->Render();
|
||||
}
|
||||
|
||||
void vtkHandlerWidget::SetRotationEnabled(bool enabled) {
|
||||
this->m_RotationEnabled = enabled;
|
||||
this->UpdateVisibility();
|
||||
if (this->Interactor) this->Interactor->Render();
|
||||
}
|
||||
|
||||
void vtkHandlerWidget::SetScalingEnabled(bool enabled) {
|
||||
this->m_ScalingEnabled = enabled;
|
||||
this->UpdateVisibility();
|
||||
if (this->Interactor) this->Interactor->Render();
|
||||
}
|
||||
|
||||
void vtkHandlerWidget::UpdateVisibility() {
|
||||
if (!m_AxesX) return;
|
||||
|
||||
m_AxesX->SetVisibility(m_TranslationEnabled);
|
||||
m_AxesY->SetVisibility(m_TranslationEnabled);
|
||||
m_AxesZ->SetVisibility(m_TranslationEnabled);
|
||||
|
||||
m_RotX->SetVisibility(m_RotationEnabled);
|
||||
m_RotY->SetVisibility(m_RotationEnabled);
|
||||
m_RotZ->SetVisibility(m_RotationEnabled);
|
||||
m_RotCam->SetVisibility(m_RotationEnabled);
|
||||
|
||||
m_ScaleX->SetVisibility(m_ScalingEnabled);
|
||||
m_ScaleY->SetVisibility(m_ScalingEnabled);
|
||||
m_ScaleZ->SetVisibility(m_ScalingEnabled);
|
||||
|
||||
// Update picker list
|
||||
if (m_Picker) {
|
||||
m_Picker->InitializePickList();
|
||||
if (m_TranslationEnabled) {
|
||||
m_Picker->AddPickList(m_AxesX);
|
||||
m_Picker->AddPickList(m_AxesY);
|
||||
m_Picker->AddPickList(m_AxesZ);
|
||||
}
|
||||
if (m_RotationEnabled) {
|
||||
m_Picker->AddPickList(m_RotX);
|
||||
m_Picker->AddPickList(m_RotY);
|
||||
m_Picker->AddPickList(m_RotZ);
|
||||
m_Picker->AddPickList(m_RotCam);
|
||||
}
|
||||
if (m_ScalingEnabled) {
|
||||
m_Picker->AddPickList(m_ScaleX);
|
||||
m_Picker->AddPickList(m_ScaleY);
|
||||
m_Picker->AddPickList(m_ScaleZ);
|
||||
}
|
||||
m_Picker->PickFromListOn();
|
||||
}
|
||||
}
|
||||
|
||||
void vtkHandlerWidget::PlaceWidget() { this->UpdateGizmoPosition(); }
|
||||
|
||||
void vtkHandlerWidget::SetTransform(::vtkTransform *t) {
|
||||
|
||||
Reference in New Issue
Block a user