15 #include <QGridLayout> 18 #include <QMessageBox> 19 #include <QPushButton> 21 static void EmitWarning(
const QString &message,
const QString &title)
24 QMessageBox::warning(
nullptr, title, message);
29 return std::log10(std::abs(value)) + 1.0 <= std::numeric_limits<double>::digits10;
35 if (!hasValidPrecision)
36 EmitWarning(QString(
"Point set %1 coordinate is outside double precision range.").arg(name),
37 "Invalid point set input");
39 return hasValidPrecision;
42 struct QmitkEditPointDialogData
53 : QDialog(parent, f), d(new QmitkEditPointDialogData)
55 this->setWindowTitle(
"Edit Point Dialog");
56 d->m_PointSet =
nullptr;
58 d->m_XCoord =
new QLineEdit;
59 d->m_YCoord =
new QLineEdit;
60 d->m_ZCoord =
new QLineEdit;
61 QPushButton *_OKButton =
new QPushButton(
"OK");
64 auto layout =
new QGridLayout;
65 layout->addWidget(
new QLabel(
"X: "), 0, 0, 1, 1);
66 layout->addWidget(
d->m_XCoord, 0, 1, 1, 1);
67 layout->addWidget(
new QLabel(
"Y: "), 1, 0, 1, 1);
68 layout->addWidget(
d->m_YCoord, 1, 1, 1, 1);
69 layout->addWidget(
new QLabel(
"Z: "), 2, 0, 1, 1);
70 layout->addWidget(
d->m_ZCoord, 2, 1, 1, 1);
71 layout->addWidget(_OKButton, 3, 0, 2, 1);
72 this->setLayout(layout);
82 d->m_PointSet = _PointSet;
83 d->m_PointId = _PointId;
84 d->m_Timestep = timestep;
86 d->m_XCoord->setText(QString::number(p.GetElement(0),
'f', 3));
87 d->m_YCoord->setText(QString::number(p.GetElement(1),
'f', 3));
88 d->m_ZCoord->setText(QString::number(p.GetElement(2),
'f', 3));
93 if (
d->m_PointSet ==
nullptr)
99 auto x =
d->m_XCoord->text().toDouble();
100 auto y =
d->m_YCoord->text().toDouble();
101 auto z =
d->m_ZCoord->text().toDouble();
105 auto point =
d->m_PointSet->GetPoint(
d->m_PointId,
d->m_Timestep);
106 point.SetElement(0, x);
107 point.SetElement(1, y);
108 point.SetElement(2, z);
109 d->m_PointSet->SetPoint(
d->m_PointId, point);
QmitkEditPointDialogData * d
DataType::PointIdentifier PointIdentifier
Data structure which stores a set of points. Superclass of mitk::Mesh.
static bool ValidatePrecision(double value)
static bool ValidateCoordinate(const QString &name, double value)
static void EmitWarning(const QString &message, const QString &title)
QmitkEditPointDialog(QWidget *parent=nullptr, Qt::WindowFlags f=nullptr)
~QmitkEditPointDialog() override
void OnOkButtonClicked(bool)
void SetPoint(mitk::PointSet *_PointSet, mitk::PointSet::PointIdentifier _PointId, int timestep=0)