MITK-IGT
IGT Extension of MITK
Loading...
Searching...
No Matches
QmitkNPOptitrackWidget.cpp
Go to the documentation of this file.
1/*============================================================================
2
3The Medical Imaging Interaction Toolkit (MITK)
4
5Copyright (c) German Cancer Research Center (DKFZ)
6All rights reserved.
7
8Use of this source code is governed by a 3-clause BSD license that can be
9found in the LICENSE file.
10
11============================================================================*/
12
14
18
19#include <QFileDialog>
20#include <QScrollBar>
21#include <Poco/Path.h>
22
23const std::string QmitkNPOptitrackWidget::VIEW_ID = "org.mitk.views.NPOptitrackWidget";
24
25QmitkNPOptitrackWidget::QmitkNPOptitrackWidget(QWidget* parent, Qt::WindowFlags f)
27 , m_Controls(nullptr)
28{
29}
30
32{
34 CreateQtPartControl(this);
35 CreateConnections();
36}
37
42
43void QmitkNPOptitrackWidget::CreateQtPartControl(QWidget *parent)
44{
45 if (!m_Controls)
46 {
47 // create GUI widgets
48 m_Controls = new Ui::QmitkNPOptitrackWidget;
49 m_Controls->setupUi(parent);
50 }
51}
52
53void QmitkNPOptitrackWidget::CreateConnections()
54{
55 if (m_Controls)
56 {
57 connect((QObject*)(m_Controls->m_testConnectionOptitrack), SIGNAL(clicked()), this, SLOT(TestConnection()));
58 connect((QObject*)(m_Controls->m_SetOptitrackCalibrationFile), SIGNAL(clicked()), this, SLOT(SetOptitrackCalibrationFileClicked()));
59 }
60}
61
63{
64 m_Controls->m_outputTextOptitrack->setHtml("<body style=\" font-family:\'MS Shell Dlg 2\'; font-size:7pt; font-weight:400; font-style:normal;\" bgcolor=black><span style=\"color:#ffffff;\"><u>output:</u>");
65}
66
68{
69 m_Controls->m_outputTextOptitrack->setHtml(QString(s.c_str()));
70 m_Controls->m_outputTextOptitrack->verticalScrollBar()->setValue(m_Controls->m_outputTextOptitrack->verticalScrollBar()->maximum());
71}
72
73mitk::TrackingDevice::Pointer QmitkNPOptitrackWidget::GetTrackingDevice()
74{
75 // Create the Tracking Device
76 mitk::OptitrackTrackingDevice::Pointer tempTrackingDevice = mitk::OptitrackTrackingDevice::New();
77 // Set the calibration File
78 tempTrackingDevice->SetCalibrationPath(m_OptitrackCalibrationFile);
79
80 //Set the camera parameters
81 tempTrackingDevice->SetExp(m_Controls->m_OptitrackExp->value());
82 tempTrackingDevice->SetLed(m_Controls->m_OptitrackLed->value());
83 tempTrackingDevice->SetThr(m_Controls->m_OptitrackThr->value());
84
86 return static_cast<mitk::TrackingDevice::Pointer>(tempTrackingDevice);
87}
88
90{
91 return mitk::OptitrackTrackingDevice::New()->IsDeviceInstalled();
92}
93
95{
96 std::string filename = QFileDialog::getOpenFileName(nullptr, tr("Open Calibration File"), QmitkIGTCommonHelper::GetLastFileLoadPath(), "*.*").toLatin1().data();
97 if (filename == "") { return; }
98 else
99 {
100 QmitkIGTCommonHelper::SetLastFileLoadPathByFileName(QString::fromStdString(filename));
102 Poco::Path myPath = Poco::Path(m_OptitrackCalibrationFile.c_str());
103 m_Controls->m_OptitrackCalibrationFile->setText("Calibration File: " + QString(myPath.getFileName().c_str()));
104 }
105}
106
108{
109 QmitkNPOptitrackWidget* clonedWidget = new QmitkNPOptitrackWidget(parent);
110 clonedWidget->Initialize();
112 clonedWidget->m_Controls->m_OptitrackCalibrationFile->setText(m_Controls->m_OptitrackCalibrationFile->text());
113
114 clonedWidget->m_Controls->m_OptitrackExp->setValue(m_Controls->m_OptitrackExp->value());
115 clonedWidget->m_Controls->m_OptitrackLed->setValue(m_Controls->m_OptitrackLed->value());
116 clonedWidget->m_Controls->m_OptitrackThr->setValue(m_Controls->m_OptitrackThr->value());
117 return clonedWidget;
118}
Abstract class to configure a tracking device. Inherited widgets should be registered in the Microser...
PERSISTENCE_GET_SERVICE_METHOD_MACRO void InitializeSuperclassWidget()
static void SetLastFileLoadPathByFileName(const QString &str)
static const QString GetLastFileLoadPath()
Implementation of a configuration widget for NP Optitrack Tracking Devices.
void AddOutput(std::string s) override
Optional method to add output to a small screen in the trackingToolbox (see QmitkNDIPolarisWidget)
static const std::string VIEW_ID
Ui::QmitkNPOptitrackWidget * m_Controls
bool IsDeviceInstalled() override
Optional method to investigate if drivers etc for your device are installed. The default value is "tr...
QmitkNPOptitrackWidget * Clone(QWidget *parent) const override
Subclass must implement this method to return a pointer to a copy of the object. Please don't forget ...
QmitkNPOptitrackWidget(QWidget *parent=nullptr, Qt::WindowFlags f={})
void Initialize() override
Subclass must implement this method to return a pointer to a copy of the object. Please don't forget ...
mitk::TrackingDevice::Pointer GetTrackingDevice() override
void ResetOutput() override
Optional method to add output to a small screen in the trackingToolbox (see QmitkNDIPolarisWidget)