QmitkToolDistanceWidget. More...
#include <QmitkToolDistanceWidget.h>

Public Types | |
| typedef QVector< QVector < QLabel * > > | DistanceLabelType |
Public Slots | |
| void | SetDistanceLabelValuesInvalid () |
| This method set's all distance entries in the matrix to "---". Can be used e.g. if tracking is stopped. | |
Public Member Functions | |
| QmitkToolDistanceWidget (QWidget *parent) | |
| default constructor | |
| virtual | ~QmitkToolDistanceWidget () |
| default destructor | |
| void | ShowDistanceValues (itk::ProcessObject::DataObjectPointerArray &outputs) |
| This method displays the matrix with the distances between the tracking source's outputs in a QGridLayout. | |
| void | CreateToolDistanceMatrix (itk::ProcessObject::DataObjectPointerArray &outputs) |
| This method creates the initial distances matrix and labels it with the connected tool names. | |
| void | ClearDistanceMatrix () |
| This method clears the whole tool distances matrix. | |
Protected Member Functions | |
| void | CreateConnections () |
| void | CreateQtPartControl (QWidget *parent) |
Protected Attributes | |
| Ui::QmitkToolDistanceWidgetControls * | m_Controls |
| gui widgets | |
Widget for setting up and controlling an update timer in an IGT-Pipeline.
Definition at line 38 of file QmitkToolDistanceWidget.h.
| typedef QVector<QVector<QLabel*> > QmitkToolDistanceWidget::DistanceLabelType |
Definition at line 43 of file QmitkToolDistanceWidget.h.
| QmitkToolDistanceWidget::QmitkToolDistanceWidget | ( | QWidget * | parent ) |
default constructor
Definition at line 28 of file QmitkToolDistanceWidget.cpp.
References CreateQtPartControl().
: QWidget(parent), m_Controls(NULL), m_DistanceLabels(NULL) { this->CreateQtPartControl( this ); }
| QmitkToolDistanceWidget::~QmitkToolDistanceWidget | ( | ) | [virtual] |
default destructor
Definition at line 34 of file QmitkToolDistanceWidget.cpp.
References ClearDistanceMatrix(), and m_Controls.
{
ClearDistanceMatrix();
delete m_DistanceLabels;
m_DistanceLabels = NULL;
m_Controls = NULL;
}
| void QmitkToolDistanceWidget::ClearDistanceMatrix | ( | ) |
This method clears the whole tool distances matrix.
Definition at line 160 of file QmitkToolDistanceWidget.cpp.
References m_Controls, Ui_QmitkToolDistanceWidgetControls::m_GridLayout, and Ui_QmitkToolDistanceWidgetControls::m_StatusLabel.
Referenced by QmitkToolPairNavigationView::Disconnected(), and ~QmitkToolDistanceWidget().
{
while(m_Controls->m_GridLayout->count() > 0)
{
QWidget* widget = m_Controls->m_GridLayout->itemAt(0)->widget();
m_Controls->m_GridLayout->removeWidget(widget);
delete widget;
}
delete this->m_DistanceLabels;
this->m_DistanceLabels = NULL;
this->m_Controls->m_StatusLabel->setText(QString("For distance information please set up the connection again."));
}
| void QmitkToolDistanceWidget::CreateConnections | ( | ) | [protected] |
| void QmitkToolDistanceWidget::CreateQtPartControl | ( | QWidget * | parent ) | [protected] |
Definition at line 42 of file QmitkToolDistanceWidget.cpp.
References CreateConnections(), m_Controls, Ui_QmitkToolDistanceWidgetControls::m_StatusLabel, and Ui_QmitkToolDistanceWidgetControls::setupUi().
Referenced by QmitkToolDistanceWidget().
{
if (!m_Controls)
{
// create GUI widgets
m_Controls = new Ui::QmitkToolDistanceWidgetControls;
m_Controls->setupUi(parent);
m_Controls->m_StatusLabel->setText(QString("No tracking tools connected. Please set up a connection first."));
this->CreateConnections();
}
}
| void QmitkToolDistanceWidget::CreateToolDistanceMatrix | ( | itk::ProcessObject::DataObjectPointerArray & | outputs ) |
This method creates the initial distances matrix and labels it with the connected tool names.
Definition at line 60 of file QmitkToolDistanceWidget.cpp.
References mitk::NavigationData::GetName(), m_Controls, Ui_QmitkToolDistanceWidgetControls::m_GridLayout, and Ui_QmitkToolDistanceWidgetControls::m_StatusLabel.
Referenced by QmitkToolPairNavigationView::StartNavigation().
{
if(outputs.size() > 1)
{
this->show();
mitk::NavigationData* navData;
if(m_DistanceLabels == NULL)
{
m_DistanceLabels = new DistanceLabelType;
}
if(m_DistanceLabels->isEmpty())
{
this->m_Controls->m_StatusLabel->setText("");
QLabel* label;
// labeling of matrix
for (unsigned int i = 0; i < outputs.size()-1; i++)
{
navData = dynamic_cast<mitk::NavigationData*>(outputs.at(i).GetPointer());
label = new QLabel(navData->GetName(),this);
label->setAlignment(Qt::AlignRight | Qt::AlignVCenter);
this->m_Controls->m_GridLayout->addWidget(label,i+1,0);
navData = dynamic_cast<mitk::NavigationData*>(outputs.at(i+1).GetPointer());
label = new QLabel(navData->GetName(),this);
label->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
this->m_Controls->m_GridLayout->addWidget(label,0,i+1);
}
for(unsigned int i = 0; i < outputs.size()-1; i++)
{
QVector<QLabel*>* rowDistances = new QVector<QLabel*>();
for(unsigned int j = i+1; j < outputs.size(); j++)
{
// distance labels initializing
label = new QLabel(QString("---"), this);
label->setFrameStyle(QFrame::Box | QFrame::Sunken);
label->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
rowDistances->append(label);
//initial distance label adding to the QGridLayout
this->m_Controls->m_GridLayout->addWidget(label,i+1,j);
}
this->m_DistanceLabels->append(*rowDistances);
}
}
}
else
{
this->m_Controls->m_StatusLabel->setText(QString("For distance information please connect at least two tools"));
}
}
| void QmitkToolDistanceWidget::SetDistanceLabelValuesInvalid | ( | ) | [slot] |
This method set's all distance entries in the matrix to "---". Can be used e.g. if tracking is stopped.
Definition at line 176 of file QmitkToolDistanceWidget.cpp.
{
for(int i = 0; i < m_DistanceLabels->size(); i++)
{
for(int j= 0; j < m_DistanceLabels->at(i).size(); j++)
{
this->m_DistanceLabels->at(i).at(j)->setText(QString("---"));
}
}
}
| void QmitkToolDistanceWidget::ShowDistanceValues | ( | itk::ProcessObject::DataObjectPointerArray & | outputs ) |
This method displays the matrix with the distances between the tracking source's outputs in a QGridLayout.
Definition at line 125 of file QmitkToolDistanceWidget.cpp.
References QuadProgPP::distance(), mitk::NavigationData::GetPosition(), and mitk::NavigationData::IsDataValid().
Referenced by QmitkToolPairNavigationView::RenderScene().
{
mitk::NavigationData* navData;
mitk::NavigationData* nextNavData;
for(int i=0; i < m_DistanceLabels->size(); i++)
{
int j = i+1;
for(int k=0; k < m_DistanceLabels->at(i).size(); k++)
{
navData = dynamic_cast<mitk::NavigationData*>(outputs.at(i).GetPointer());
nextNavData = dynamic_cast<mitk::NavigationData*>(outputs.at(j++).GetPointer());
if(navData == NULL || nextNavData == NULL)
return;
mitk::NavigationData::PositionType::RealType distance = navData->GetPosition().EuclideanDistanceTo(nextNavData->GetPosition());
distance = floor(distance * 10.) / 10.;
QString distanceStr;
if(!navData->IsDataValid() || !nextNavData->IsDataValid())
{
distanceStr = "---";
}
else
{
distanceStr.setNum(distance);
distanceStr += " mm";
}
this->m_DistanceLabels->at(i).at(k)->setText(distanceStr);
}
}
}
gui widgets
Definition at line 79 of file QmitkToolDistanceWidget.h.
Referenced by ClearDistanceMatrix(), CreateQtPartControl(), CreateToolDistanceMatrix(), and ~QmitkToolDistanceWidget().
1.7.2