16#include "mitkRenderingManager.h"
17#include "mitkBaseRenderer.h"
21#include "vtkMatrix4x4.h"
22#include "vtkLinearTransform.h"
27 : QDialog(parent, f), m_Controls(nullptr), m_Geometry(nullptr)
35 this->setWindowTitle(
"Edit Tool Tip and Tool Orientation");
47 m_Controls =
new Ui::QmitkInteractiveTransformationWidgetControls;
87 mitk::RenderingManager::GetInstance()->GetDataStorage()->Remove(
m_ToolToEdit->GetDataNode());
90 mitk::RenderingManager::GetInstance()->GetDataStorage()->Add(
m_ToolToEdit->GetDataNode());
91 m_ToolToEdit->GetDataNode()->SetName(
"Tool Tip to be edited");
94 m_ToolToEdit->GetDataNode()->SetProperty(
"color", mitk::ColorProperty::New(1, 0, 0));
105 SetValuesToGUI(
m_Geometry->GetIndexToWorldTransform());
111 mitk::NavigationData::Pointer rotationTransform = mitk::NavigationData::New(
m_Geometry->GetIndexToWorldTransform());
112 rotationTransform->SetOrientation(_defaultValues);
113 m_Geometry->SetIndexToWorldTransform(rotationTransform->GetAffineTransform3D());
117 SetValuesToGUI(
m_Geometry->GetIndexToWorldTransform());
120void QmitkInteractiveTransformationWidget::SetValuesToGUI(
const mitk::AffineTransform3D::Pointer _defaultValues)
124 m_Controls->m_XTransSlider->setValue(_defaultValues->GetOffset()[0]);
125 m_Controls->m_YTransSlider->setValue(_defaultValues->GetOffset()[1]);
126 m_Controls->m_ZTransSlider->setValue(_defaultValues->GetOffset()[2]);
129 mitk::NavigationData::Pointer transformConversionHelper = mitk::NavigationData::New(_defaultValues);
130 double eulerAlphaDegrees = transformConversionHelper->GetOrientation().rotation_euler_angles()[0] / vnl_math::pi * 180;
131 double eulerBetaDegrees = transformConversionHelper->GetOrientation().rotation_euler_angles()[1] / vnl_math::pi * 180;
132 double eulerGammaDegrees = transformConversionHelper->GetOrientation().rotation_euler_angles()[2] / vnl_math::pi * 180;
134 m_Controls->m_XRotSpinBox->setValue(eulerAlphaDegrees);
135 m_Controls->m_YRotSpinBox->setValue(eulerBetaDegrees);
136 m_Controls->m_ZRotSpinBox->setValue(eulerGammaDegrees);
139 mitk::RenderingManager::GetInstance()->RequestUpdateAll();
142void QmitkInteractiveTransformationWidget::SetSynchronizedValuesToSliderAndSpinbox(QDoubleSpinBox* _spinbox, QSlider* _slider,
double _value)
145 _spinbox->blockSignals(
true);
146 _slider->blockSignals(
true);
147 _spinbox->setValue(_value);
148 _slider->setValue(_value);
150 _spinbox->blockSignals(
false);
151 _slider->blockSignals(
false);
157 mitk::Point3D translationParams =
m_Geometry->GetOrigin();
158 translationParams[0] = v;
161 SetSynchronizedValuesToSliderAndSpinbox(
m_Controls->m_XTransSpinBox,
m_Controls->m_XTransSlider, v);
164 mitk::RenderingManager::GetInstance()->RequestUpdateAll();
171 mitk::Point3D translationParams =
m_Geometry->GetOrigin();
172 translationParams[1] = v;
175 SetSynchronizedValuesToSliderAndSpinbox(
m_Controls->m_YTransSpinBox,
m_Controls->m_YTransSlider, v);
178 mitk::RenderingManager::GetInstance()->RequestUpdateAll();
184 mitk::Point3D translationParams =
m_Geometry->GetOrigin();
185 translationParams[2] = v;
188 SetSynchronizedValuesToSliderAndSpinbox(
m_Controls->m_ZTransSpinBox,
m_Controls->m_ZTransSlider, v);
191 mitk::RenderingManager::GetInstance()->RequestUpdateAll();
196 mitk::Vector3D rotationParams;
197 rotationParams[0] = v;
198 rotationParams[1] =
m_Controls->m_YRotSpinBox->value();
199 rotationParams[2] =
m_Controls->m_ZRotSpinBox->value();
201 SetSynchronizedValuesToSliderAndSpinbox(
m_Controls->m_XRotSpinBox,
m_Controls->m_XRotSlider, v);
203 this->
Rotate(rotationParams);
208 mitk::Vector3D rotationParams;
209 rotationParams[0] =
m_Controls->m_XRotSpinBox->value();
210 rotationParams[1] = v;
211 rotationParams[2] =
m_Controls->m_ZRotSpinBox->value();
213 SetSynchronizedValuesToSliderAndSpinbox(
m_Controls->m_YRotSpinBox,
m_Controls->m_YRotSlider, v);
215 this->
Rotate(rotationParams);
220 mitk::Vector3D rotationParams;
221 rotationParams[0] =
m_Controls->m_XRotSpinBox->value();
222 rotationParams[1] =
m_Controls->m_YRotSpinBox->value();
223 rotationParams[2] = v;
225 SetSynchronizedValuesToSliderAndSpinbox(
m_Controls->m_ZRotSpinBox,
m_Controls->m_ZRotSlider, v);
227 this->
Rotate(rotationParams);
233 double radianX = rotateVector[0] * vnl_math::pi / 180;
234 double radianY = rotateVector[1] * vnl_math::pi / 180;
235 double radianZ = rotateVector[2] * vnl_math::pi / 180;
238 mitk::Quaternion rotation(radianX, radianY, radianZ);
241 mitk::NavigationData::Pointer rotationTransform = mitk::NavigationData::New(
m_Geometry->GetIndexToWorldTransform());
242 rotationTransform->SetOrientation(rotation);
244 m_Geometry->SetIndexToWorldTransform(rotationTransform->GetAffineTransform3D());
246 mitk::RenderingManager::GetInstance()->RequestUpdateAll();
255 this->SetValuesToGUI(
m_Geometry->GetIndexToWorldTransform());
257 mitk::RenderingManager::GetInstance()->RequestUpdateAll();
266 this->SetValuesToGUI(
m_Geometry->GetIndexToWorldTransform());
268 mitk::RenderingManager::GetInstance()->RequestUpdateAll();
273 mitk::RenderingManager::GetInstance()->GetDataStorage()->Remove(
m_ToolToEdit->GetDataNode());
275 mitk::AffineTransform3D::Pointer toolTip =
m_Geometry->GetIndexToWorldTransform();
289 mitk::RenderingManager::GetInstance()->GetDataStorage()->Remove(
m_ToolToEdit->GetDataNode());
int close(int)
Closes the file descriptor fd.