00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include "QmitkEditPointDialog.h"
00019
00020 #include <QLineEdit>
00021 #include <QLabel>
00022 #include <QPushButton>
00023 #include <QGridLayout>
00024
00025 struct QmitkEditPointDialogData
00026 {
00027 mitk::PointSet* m_PointSet;
00028 mitk::PointSet::PointIdentifier m_PointId;
00029 QLineEdit* m_XCoord;
00030 QLineEdit* m_YCoord;
00031 QLineEdit* m_ZCoord;
00032 int m_Timestep;
00033 };
00034
00035 QmitkEditPointDialog::QmitkEditPointDialog( QWidget * parent, Qt::WindowFlags f)
00036 : QDialog(parent, f)
00037 , d(new QmitkEditPointDialogData)
00038 {
00039 this->setWindowTitle("Edit Point Dialog");
00040 d->m_PointSet = 0;
00041 d->m_Timestep = 0;
00042 d->m_XCoord = new QLineEdit;
00043 d->m_YCoord = new QLineEdit;
00044 d->m_ZCoord = new QLineEdit;
00045 QPushButton* _OKButton = new QPushButton("OK");
00046 connect( _OKButton, SIGNAL(clicked(bool)), this, SLOT(OnOkButtonClicked(bool)) );
00047
00048 QGridLayout* layout = new QGridLayout;
00049 layout->addWidget(new QLabel("X: "), 0,0,1,1);
00050 layout->addWidget(d->m_XCoord, 0,1,1,1);
00051 layout->addWidget(new QLabel("Y: "), 1,0,1,1);
00052 layout->addWidget(d->m_YCoord, 1,1,1,1);
00053 layout->addWidget(new QLabel("Z: "), 2,0,1,1);
00054 layout->addWidget(d->m_ZCoord, 2,1,1,1);
00055 layout->addWidget(_OKButton, 3,0,2,1);
00056 this->setLayout(layout);
00057
00058 }
00059
00060 QmitkEditPointDialog::~QmitkEditPointDialog()
00061 {
00062 delete d;
00063 }
00064
00065 void QmitkEditPointDialog::SetPoint( mitk::PointSet* _PointSet, mitk::PointSet::PointIdentifier _PointId
00066 , int timestep)
00067 {
00068 d->m_PointSet = _PointSet;
00069 d->m_PointId = _PointId;
00070 d->m_Timestep = timestep;
00071 mitk::PointSet::PointType p = d->m_PointSet->GetPoint(d->m_PointId, d->m_Timestep);
00072 d->m_XCoord->setText( QString::number( p.GetElement(0), 'f', 3 ) );
00073 d->m_YCoord->setText( QString::number( p.GetElement(1), 'f', 3 ) );
00074 d->m_ZCoord->setText( QString::number( p.GetElement(2), 'f', 3 ) );
00075 }
00076
00077
00078 void QmitkEditPointDialog::OnOkButtonClicked( bool )
00079 {
00080 if(d->m_PointSet == 0)
00081 {
00082 MITK_WARN << "Pointset is 0.";
00083 this->reject();
00084 }
00085
00086 mitk::PointSet::PointType p = d->m_PointSet->GetPoint(d->m_PointId, d->m_Timestep);
00087 p.SetElement( 0, d->m_XCoord->text().toDouble() );
00088 p.SetElement( 1, d->m_YCoord->text().toDouble() );
00089 p.SetElement( 2, d->m_ZCoord->text().toDouble() );
00090 d->m_PointSet->SetPoint(d->m_PointId, p);
00091
00092 this->accept();
00093 }