15 #include <QFileDialog> 17 #include <QMessageBox> 19 #include <itksys/SystemTools.hxx> 20 #include <Poco/Path.h> 25 #include "vtkRenderer.h" 26 #include "vtkCamera.h" 38 CreateQtPartControl(
this);
40 SetAdvancedSettingsEnabled(
false);
49 void QmitkPolhemusTrackerWidget::CreateQtPartControl(QWidget *parent)
54 m_Controls =
new Ui::QmitkPolhemusTrackerWidget;
62 MITK_DEBUG<<
"Resetting Polhemus Tracking Device, because tool storage changed.";
65 void QmitkPolhemusTrackerWidget::CreateConnections()
107 MITK_INFO <<
"Toggle Hemisphere for tool " <<
m_Controls->m_ToolSelection->currentText().toStdString();
118 if (_hemisphere.GetNorm() != 0)
119 m_Controls->m_hemisphereTracking->setChecked(
false);
121 MITK_INFO <<
"Hemisphere set for tool " <<
m_Controls->m_ToolSelection->currentText().toStdString();
127 m_Controls->m_Hemisphere_X->setValue(_hemisphere[0]);
128 m_Controls->m_Hemisphere_Y->setValue(_hemisphere[1]);
129 m_Controls->m_Hemisphere_Z->setValue(_hemisphere[2]);
135 label =
"HemisphereTracking is ON for tool ";
136 label.append(
m_Controls->m_ToolSelection->currentText());
138 else if (GetSelectedToolIndex() == -1)
140 label =
"HemisphereTracking is OFF for at least one tool.";
144 label =
"HemisphereTracking is OFF for tool ";
145 label.append(
m_Controls->m_ToolSelection->currentText());
148 m_Controls->m_StatusLabelHemisphereTracking->setText(label);
150 MITK_INFO <<
"Updated SpinBox for Hemisphere of tool " <<
m_Controls->m_ToolSelection->currentText().toStdString();
155 int _tool = GetSelectedToolIndex();
160 _text.append(
"Adjusting hemisphere for all tools.");
161 msgBox.setText(_text);
163 _text = tr(
"Please make sure, that the entire tools (including tool tip AND sensor) are placed in the positive x hemisphere. Press 'Adjust hemisphere' if you are ready.");
164 msgBox.setInformativeText(_text);
168 _text.append(
"Adjusting hemisphere for tool '");
169 _text.append(
m_Controls->m_ToolSelection->currentText());
170 _text.append(tr(
"' at port %2.").arg(_tool));
171 msgBox.setText(_text);
173 _text = tr(
"Please make sure, that the entire tool (including tool tip AND sensor) is placed in the positive x hemisphere. Press 'Adjust hemisphere' if you are ready.");
174 msgBox.setInformativeText(_text);
177 QPushButton *adjustButton = msgBox.addButton(tr(
"Adjust hemisphere"), QMessageBox::ActionRole);
178 QPushButton *cancelButton = msgBox.addButton(QMessageBox::Cancel);
180 if (msgBox.clickedButton() == adjustButton) {
183 MITK_INFO <<
"Adjusting Hemisphere for tool " <<
m_Controls->m_ToolSelection->currentText().toStdString();
185 else if (msgBox.clickedButton() == cancelButton) {
187 MITK_INFO <<
"Cancel 'Adjust hemisphere'. No harm done...";
193 if (
m_Controls->m_ToolSelection->currentIndex() != 0)
220 SetAdvancedSettingsEnabled(
true);
226 m_Controls->m_ToolSelection->addItem(
"All Tools");
249 SetAdvancedSettingsEnabled(
false);
252 void QmitkPolhemusTrackerWidget::SetAdvancedSettingsEnabled(
bool _enable)
254 m_Controls->m_ToolSelection->setEnabled(_enable);
255 m_Controls->label_toolsToChange->setEnabled(_enable);
256 m_Controls->label_UpdateOnRequest->setEnabled(_enable);
257 m_Controls->m_GetHemisphere->setEnabled(_enable);
258 m_Controls->m_Hemisphere_X->setEnabled(_enable);
259 m_Controls->m_Hemisphere_Y->setEnabled(_enable);
260 m_Controls->m_Hemisphere_Z->setEnabled(_enable);
261 m_Controls->m_SetHemisphere->setEnabled(_enable);
262 m_Controls->m_ToggleHemisphere->setEnabled(_enable);
263 m_Controls->m_AdjustHemisphere->setEnabled(_enable);
264 m_Controls->m_ToggleToolTipCalibration->setEnabled(_enable);
269 bool _enable =
m_Controls->m_AdvancedSettings->isChecked();
270 m_Controls->m_ToolSelection->setVisible(_enable);
271 m_Controls->label_toolsToChange->setVisible(_enable);
272 m_Controls->label_UpdateOnRequest->setVisible(_enable);
273 m_Controls->m_GetHemisphere->setVisible(_enable);
274 m_Controls->m_Hemisphere_X->setVisible(_enable);
275 m_Controls->m_Hemisphere_Y->setVisible(_enable);
276 m_Controls->m_Hemisphere_Z->setVisible(_enable);
277 m_Controls->m_SetHemisphere->setVisible(_enable);
278 m_Controls->m_ToggleHemisphere->setVisible(_enable);
279 m_Controls->m_AdjustHemisphere->setVisible(_enable);
280 m_Controls->m_ToggleToolTipCalibration->setVisible(_enable);
281 m_Controls->m_StatusLabelHemisphereTracking->setVisible(_enable);
284 int QmitkPolhemusTrackerWidget::GetSelectedToolIndex()
287 int _index =
m_Controls->m_ToolSelection->currentIndex() - 1;
static BaseRenderer * GetInstance(vtkRenderWindow *renWin)
static vtkRenderWindow * GetRenderWindowByName(const std::string &name)
vtkRenderer * GetVtkRenderer() const
virtual void SetViewToPosterior()
void FillVector3D(Tout &out, mitk::ScalarType x, mitk::ScalarType y, mitk::ScalarType z)
virtual CameraController * GetCameraController()
vnl_quaternion< ScalarType > Quaternion