15 #include <QGridLayout> 16 #include <itkDataObject.h> 24 : QWidget(parent), m_Controls(nullptr), m_DistanceLabels(nullptr)
32 delete m_DistanceLabels;
33 m_DistanceLabels =
nullptr;
42 m_Controls =
new Ui::QmitkToolDistanceWidgetControls;
44 m_Controls->m_StatusLabel->setText(QString(
"No tracking tools connected. Please set up a connection first."));
58 if(outputs.size() > 1)
65 if(m_DistanceLabels ==
nullptr)
70 if(m_DistanceLabels->isEmpty())
78 for (
unsigned int i = 0; i < outputs.size()-1; i++)
81 label =
new QLabel(navData->
GetName(),
this);
82 label->setAlignment(Qt::AlignRight | Qt::AlignVCenter);
83 this->
m_Controls->m_GridLayout->addWidget(label,i+1,0);
86 label =
new QLabel(navData->
GetName(),
this);
87 label->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
88 this->
m_Controls->m_GridLayout->addWidget(label,0,i+1);
92 for(
unsigned int i = 0; i < outputs.size()-1; i++)
94 QVector<QLabel*>* rowDistances =
new QVector<QLabel*>();
96 for(
unsigned int j = i+1; j < outputs.size(); j++)
99 label =
new QLabel(QString(
"---"),
this);
100 label->setFrameStyle(QFrame::Box | QFrame::Sunken);
101 label->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
102 rowDistances->append(label);
105 this->
m_Controls->m_GridLayout->addWidget(label,i+1,j);
107 this->m_DistanceLabels->append(*rowDistances);
113 this->
m_Controls->m_StatusLabel->setText(QString(
"For distance information please connect at least two tools"));
126 for(
int i=0; i < m_DistanceLabels->size(); i++)
130 for(
int k=0;
k < m_DistanceLabels->at(i).size();
k++)
135 if(navData ==
nullptr || nextNavData ==
nullptr)
138 mitk::NavigationData::PositionType::RealType distance = navData->
GetPosition().EuclideanDistanceTo(nextNavData->
GetPosition());
139 distance = floor(distance * 10.) / 10.;
147 distanceStr.setNum(distance);
148 distanceStr +=
" mm";
150 this->m_DistanceLabels->at(i).at(
k)->setText(distanceStr);
160 QWidget* widget =
m_Controls->m_GridLayout->itemAt(0)->widget();
161 m_Controls->m_GridLayout->removeWidget(widget);
164 delete this->m_DistanceLabels;
165 this->m_DistanceLabels =
nullptr;
167 this->
m_Controls->m_StatusLabel->setText(QString(
"For distance information please set up the connection again."));
173 for(
int i = 0; i < m_DistanceLabels->size(); i++)
175 for(
int j= 0; j < m_DistanceLabels->at(i).size(); j++)
177 this->m_DistanceLabels->at(i).at(j)->setText(QString(
"---"));
virtual const char * GetName() const
returns the name of the NavigationData object
virtual PositionType GetPosition() const
returns position of the NavigationData object
virtual bool IsDataValid() const
returns true if the object contains valid data