1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
//##########################################################################
//# #
//# CLOUDCOMPARE #
//# #
//# This program is free software; you can redistribute it and/or modify #
//# it under the terms of the GNU General Public License as published by #
//# the Free Software Foundation; version 2 or later of the License. #
//# #
//# This program is distributed in the hope that it will be useful, #
//# but WITHOUT ANY WARRANTY; without even the implied warranty of #
//# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
//# GNU General Public License for more details. #
//# #
//# COPYRIGHT: EDF R&D / TELECOM ParisTech (ENST-TSI) #
//# #
//##########################################################################
#include "ccOrthoSectionGenerationDlg.h"
//system
#include <cmath>
ccOrthoSectionGenerationDlg::ccOrthoSectionGenerationDlg(QWidget* parent/*=0*/)
: QDialog(parent, Qt::Tool)
, Ui::OrthoSectionGenerationDlg()
, m_pathLength(0)
{
setupUi(this);
connect(stepDoubleSpinBox, SIGNAL(valueChanged(double)), this, SLOT(onStepChanged(double)));
}
void ccOrthoSectionGenerationDlg::setPathLength(double l)
{
m_pathLength = l;
pathLengthLineEdit->setText(QString::number(l));
stepDoubleSpinBox->setValue(l/9);
widthDoubleSpinBox->setValue(l/5);
}
void ccOrthoSectionGenerationDlg::setAutoSaveAndRemove(bool state)
{
autoSaveAndRemoveCheckBox->setChecked(state);
}
bool ccOrthoSectionGenerationDlg::autoSaveAndRemove() const
{
return autoSaveAndRemoveCheckBox->isChecked();
}
void ccOrthoSectionGenerationDlg::setGenerationStep(double s)
{
stepDoubleSpinBox->setValue(s);
}
void ccOrthoSectionGenerationDlg::setSectionsWidth(double w)
{
widthDoubleSpinBox->setValue(w);
}
double ccOrthoSectionGenerationDlg::getGenerationStep() const
{
return stepDoubleSpinBox->value();
}
double ccOrthoSectionGenerationDlg::getSectionsWidth() const
{
return widthDoubleSpinBox->value();
}
void ccOrthoSectionGenerationDlg::onStepChanged(double step)
{
if (step < 0)
return;
unsigned count = step < 1.0e-6 ? 1 : 1+static_cast<unsigned>(std::floor(m_pathLength / step));
sectionCountLineEdit->setText(QString::number(count));
}
|