diff --git a/GeoModelVisualization/VP1GuideLineSystems/src/GuideSysController.cxx b/GeoModelVisualization/VP1GuideLineSystems/src/GuideSysController.cxx index 42794fcf4cc0cb4bdf75950163dbfa1510fd7ff2..f397fe1509de2041620abb4fbdc5e8ae070b4b00 100644 --- a/GeoModelVisualization/VP1GuideLineSystems/src/GuideSysController.cxx +++ b/GeoModelVisualization/VP1GuideLineSystems/src/GuideSysController.cxx @@ -60,6 +60,7 @@ public: double last_lettersVerticalPos; bool last_showAxes; double last_axesLength; + unsigned int last_axesLength_UnitsFactor; SbVec3f last_axesPosition; double last_relAxesThickness; bool last_showCartesianGrid; @@ -146,7 +147,9 @@ GuideSysController::GuideSysController(IVP1System * sys) addUpdateSlot(SLOT(possibleChange_axesLength())); connectToLastUpdateSlot(m_d->ui_axes.checkBox_axes_shownegativeparts); - connectToLastUpdateSlot(m_d->ui_axes.doubleSpinBox_axes_lengths_m); + connectToLastUpdateSlot(m_d->ui_axes.doubleSpinBox_axes_lengths); + connectToLastUpdateSlot(m_d->ui_axes.comboBox_axes_lengths_units); + m_d->ui_axes.comboBox_axes_lengths_units->setCurrentIndex(2); // we set 'm' (meters) as default units addUpdateSlot(SLOT(possibleChange_axesPosition())); connectToLastUpdateSlot(m_d->ui_axes.doubleSpinBox_axes_xpos_m); @@ -295,8 +298,22 @@ bool GuideSysController::showAxes() const //____________________________________________________________________ double GuideSysController::axesLength() const { - return m_d->ui_axes.doubleSpinBox_axes_lengths_m->value()*SYSTEM_OF_UNITS::m * - (m_d->ui_axes.checkBox_axes_shownegativeparts->isChecked()?-1.0:1.0); + unsigned int unitsFactor; + QString units = m_d->ui_axes.comboBox_axes_lengths_units->currentText(); + if (units == "mm") { + unitsFactor = SYSTEM_OF_UNITS::mm; + } else if (units == "cm") { + unitsFactor = SYSTEM_OF_UNITS::cm; + } else if (units == "m") { + unitsFactor = SYSTEM_OF_UNITS::m; + } else if (units == "km") { + unitsFactor = SYSTEM_OF_UNITS::km; + } else { + std::cout << "\nWARNING! So far, only 'mm', 'cm', 'm', and 'km' units are supported. If you need other units, please contact 'geomodel-developers@cern.ch'.\n\n" << std::endl; + } + + return m_d->ui_axes.doubleSpinBox_axes_lengths->value()*unitsFactor * + (m_d->ui_axes.checkBox_axes_shownegativeparts->isChecked()?-1.0:1.0); } //____________________________________________________________________ @@ -449,7 +466,7 @@ void GuideSysController::actualSaveSettings(VP1Serialise&s) const s.save(m_d->ui_floorandletters.checkBox_acdesignations); //Version 0 output bool here s.save(m_d->ui_axes.checkBox_axes_shownegativeparts); - s.save(m_d->ui_axes.doubleSpinBox_axes_lengths_m); + s.save(m_d->ui_axes.doubleSpinBox_axes_lengths); s.save(m_d->ui_axes.doubleSpinBox_axes_relthickness); s.save(m_d->ui_axes.doubleSpinBox_axes_xpos_m); s.save(m_d->ui_axes.doubleSpinBox_axes_ypos_m); @@ -480,6 +497,9 @@ void GuideSysController::actualSaveSettings(VP1Serialise&s) const s.save(m_d->ui_lines.doubleSpinBox_phi); s.save(m_d->ui_lines.doubleSpinBox_eta); s.save(m_d->ui_lines.doubleSpinBox_length); + + // new, length units + s.save(m_d->ui_axes.comboBox_axes_lengths_units); } //____________________________________________________________________ @@ -515,7 +535,7 @@ void GuideSysController::actualRestoreSettings(VP1Deserialise& s) if (s.version()==0) s.ignoreBool(); s.restore(m_d->ui_axes.checkBox_axes_shownegativeparts); - s.restore(m_d->ui_axes.doubleSpinBox_axes_lengths_m); + s.restore(m_d->ui_axes.doubleSpinBox_axes_lengths); s.restore(m_d->ui_axes.doubleSpinBox_axes_relthickness); s.restore(m_d->ui_axes.doubleSpinBox_axes_xpos_m); s.restore(m_d->ui_axes.doubleSpinBox_axes_ypos_m); @@ -537,6 +557,9 @@ void GuideSysController::actualRestoreSettings(VP1Deserialise& s) s.restore(m_d->ui_lines.doubleSpinBox_phi); s.restore(m_d->ui_lines.doubleSpinBox_eta); s.restore(m_d->ui_lines.doubleSpinBox_length); + + // new, length units + s.restore(m_d->ui_axes.comboBox_axes_lengths_units); } void GuideSysController::possibleChange_lineDirection() { diff --git a/GeoModelVisualization/VP1GuideLineSystems/src/guides_settings_coordinateaxes_form.ui b/GeoModelVisualization/VP1GuideLineSystems/src/guides_settings_coordinateaxes_form.ui index 02f1c6ee5cbbbd5ab3b0875d1a9a15471180b77a..71f3a811c51d25afe3f2277bc3243f318e851b5d 100644 --- a/GeoModelVisualization/VP1GuideLineSystems/src/guides_settings_coordinateaxes_form.ui +++ b/GeoModelVisualization/VP1GuideLineSystems/src/guides_settings_coordinateaxes_form.ui @@ -1,42 +1,43 @@ -<ui version="4.0" > +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> <class>VP1GuidesSysSettingsCoordinateAxesForm</class> - <widget class="QWidget" name="VP1GuidesSysSettingsCoordinateAxesForm" > - <property name="geometry" > + <widget class="QWidget" name="VP1GuidesSysSettingsCoordinateAxesForm"> + <property name="geometry"> <rect> <x>0</x> <y>0</y> - <width>296</width> - <height>248</height> + <width>464</width> + <height>276</height> </rect> </property> - <property name="windowTitle" > + <property name="windowTitle"> <string>Form</string> </property> - <layout class="QVBoxLayout" > + <layout class="QVBoxLayout"> <item> - <widget class="QGroupBox" name="groupBox_4" > - <property name="title" > + <widget class="QGroupBox" name="groupBox_4"> + <property name="title"> <string>Coordinate Axes</string> </property> - <layout class="QVBoxLayout" > + <layout class="QVBoxLayout"> <item> - <layout class="QHBoxLayout" > + <layout class="QHBoxLayout"> <item> - <widget class="QLabel" name="label_22" > - <property name="text" > + <widget class="QLabel" name="label_22"> + <property name="text"> <string>Position (x,y,z):</string> </property> </widget> </item> <item> <spacer> - <property name="orientation" > + <property name="orientation"> <enum>Qt::Horizontal</enum> </property> - <property name="sizeType" > + <property name="sizeType"> <enum>QSizePolicy::Expanding</enum> </property> - <property name="sizeHint" > + <property name="sizeHint" stdset="0"> <size> <width>1</width> <height>5</height> @@ -47,91 +48,91 @@ </layout> </item> <item> - <layout class="QHBoxLayout" > + <layout class="QHBoxLayout"> <item> - <widget class="QDoubleSpinBox" name="doubleSpinBox_axes_xpos_m" > - <property name="sizePolicy" > - <sizepolicy vsizetype="Fixed" hsizetype="Preferred" > + <widget class="QDoubleSpinBox" name="doubleSpinBox_axes_xpos_m"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> - <property name="alignment" > + <property name="alignment"> <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> </property> - <property name="suffix" > + <property name="suffix"> <string> m</string> </property> - <property name="decimals" > + <property name="decimals"> <number>3</number> </property> - <property name="minimum" > + <property name="minimum"> <double>-99.989999999999995</double> </property> - <property name="singleStep" > + <property name="singleStep"> <double>0.010000000000000</double> </property> - <property name="value" > + <property name="value"> <double>0.000000000000000</double> </property> </widget> </item> <item> - <widget class="QDoubleSpinBox" name="doubleSpinBox_axes_ypos_m" > - <property name="sizePolicy" > - <sizepolicy vsizetype="Fixed" hsizetype="Preferred" > + <widget class="QDoubleSpinBox" name="doubleSpinBox_axes_ypos_m"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> - <property name="alignment" > + <property name="alignment"> <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> </property> - <property name="suffix" > + <property name="suffix"> <string> m</string> </property> - <property name="decimals" > + <property name="decimals"> <number>3</number> </property> - <property name="minimum" > + <property name="minimum"> <double>-99.989999999999995</double> </property> - <property name="singleStep" > + <property name="singleStep"> <double>0.010000000000000</double> </property> </widget> </item> <item> - <widget class="QDoubleSpinBox" name="doubleSpinBox_axes_zpos_m" > - <property name="sizePolicy" > - <sizepolicy vsizetype="Fixed" hsizetype="Preferred" > + <widget class="QDoubleSpinBox" name="doubleSpinBox_axes_zpos_m"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> - <property name="alignment" > + <property name="alignment"> <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> </property> - <property name="suffix" > + <property name="suffix"> <string> m</string> </property> - <property name="decimals" > + <property name="decimals"> <number>3</number> </property> - <property name="minimum" > + <property name="minimum"> <double>-99.989999999999995</double> </property> - <property name="singleStep" > + <property name="singleStep"> <double>0.010000000000000</double> </property> </widget> </item> <item> <spacer> - <property name="orientation" > + <property name="orientation"> <enum>Qt::Horizontal</enum> </property> - <property name="sizeHint" > + <property name="sizeHint" stdset="0"> <size> <width>1</width> <height>5</height> @@ -142,54 +143,54 @@ </layout> </item> <item> - <layout class="QHBoxLayout" > + <layout class="QHBoxLayout"> <item> - <widget class="QLabel" name="label_24" > - <property name="text" > + <widget class="QLabel" name="label_24"> + <property name="text"> <string>Colours (x,y,z):</string> </property> </widget> </item> <item> - <layout class="QHBoxLayout" > - <property name="spacing" > + <layout class="QHBoxLayout"> + <property name="spacing"> <number>2</number> </property> <item> - <widget class="VP1MaterialButton" name="matButton_axes_x" > - <property name="sizePolicy" > - <sizepolicy vsizetype="Fixed" hsizetype="Fixed" > + <widget class="VP1MaterialButton" name="matButton_axes_x"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> - <property name="text" > + <property name="text"> <string/> </property> </widget> </item> <item> - <widget class="VP1MaterialButton" name="matButton_axes_y" > - <property name="sizePolicy" > - <sizepolicy vsizetype="Fixed" hsizetype="Fixed" > + <widget class="VP1MaterialButton" name="matButton_axes_y"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> - <property name="text" > + <property name="text"> <string/> </property> </widget> </item> <item> - <widget class="VP1MaterialButton" name="matButton_axes_z" > - <property name="sizePolicy" > - <sizepolicy vsizetype="Fixed" hsizetype="Fixed" > + <widget class="VP1MaterialButton" name="matButton_axes_z"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> - <property name="text" > + <property name="text"> <string/> </property> </widget> @@ -198,13 +199,13 @@ </item> <item> <spacer> - <property name="orientation" > + <property name="orientation"> <enum>Qt::Horizontal</enum> </property> - <property name="sizeType" > + <property name="sizeType"> <enum>QSizePolicy::Expanding</enum> </property> - <property name="sizeHint" > + <property name="sizeHint" stdset="0"> <size> <width>1</width> <height>5</height> @@ -215,61 +216,91 @@ </layout> </item> <item> - <layout class="QHBoxLayout" > - <property name="spacing" > + <layout class="QHBoxLayout"> + <property name="spacing"> <number>9</number> </property> <item> - <widget class="QLabel" name="label_23" > - <property name="text" > + <widget class="QLabel" name="label_23"> + <property name="text"> <string>Lengths:</string> </property> </widget> </item> <item> - <widget class="QDoubleSpinBox" name="doubleSpinBox_axes_lengths_m" > - <property name="alignment" > + <widget class="QDoubleSpinBox" name="doubleSpinBox_axes_lengths"> + <property name="alignment"> <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> </property> - <property name="suffix" > - <string> m</string> + <property name="suffix"> + <string/> </property> - <property name="decimals" > + <property name="decimals"> <number>3</number> </property> - <property name="minimum" > + <property name="minimum"> <double>0.001000000000000</double> </property> - <property name="singleStep" > + <property name="maximum"> + <double>999.999000000000024</double> + </property> + <property name="singleStep"> <double>0.100000000000000</double> </property> - <property name="value" > + <property name="value"> <double>1.000000000000000</double> </property> </widget> </item> <item> - <widget class="QLabel" name="label_25" > - <property name="text" > + <widget class="QComboBox" name="comboBox_axes_lengths_units"> + <property name="currentText"> + <string>mm</string> + </property> + <item> + <property name="text"> + <string>mm</string> + </property> + </item> + <item> + <property name="text"> + <string>cm</string> + </property> + </item> + <item> + <property name="text"> + <string notr="true">m</string> + </property> + </item> + <item> + <property name="text"> + <string>km</string> + </property> + </item> + </widget> + </item> + <item> + <widget class="QLabel" name="label_25"> + <property name="text"> <string>Rel. thick.:</string> </property> </widget> </item> <item> - <widget class="QDoubleSpinBox" name="doubleSpinBox_axes_relthickness" > - <property name="decimals" > + <widget class="QDoubleSpinBox" name="doubleSpinBox_axes_relthickness"> + <property name="decimals"> <number>3</number> </property> - <property name="minimum" > + <property name="minimum"> <double>0.001000000000000</double> </property> - <property name="maximum" > + <property name="maximum"> <double>0.150000000000000</double> </property> - <property name="singleStep" > + <property name="singleStep"> <double>0.010000000000000</double> </property> - <property name="value" > + <property name="value"> <double>0.030000000000000</double> </property> </widget> @@ -277,23 +308,23 @@ </layout> </item> <item> - <layout class="QHBoxLayout" > + <layout class="QHBoxLayout"> <item> - <widget class="QCheckBox" name="checkBox_axes_shownegativeparts" > - <property name="text" > + <widget class="QCheckBox" name="checkBox_axes_shownegativeparts"> + <property name="text"> <string>Show negative parts</string> </property> </widget> </item> <item> <spacer> - <property name="orientation" > + <property name="orientation"> <enum>Qt::Horizontal</enum> </property> - <property name="sizeType" > + <property name="sizeType"> <enum>QSizePolicy::Expanding</enum> </property> - <property name="sizeHint" > + <property name="sizeHint" stdset="0"> <size> <width>1</width> <height>5</height> @@ -307,16 +338,16 @@ </widget> </item> <item> - <layout class="QHBoxLayout" > - <property name="spacing" > + <layout class="QHBoxLayout"> + <property name="spacing"> <number>0</number> </property> <item> <spacer> - <property name="orientation" > + <property name="orientation"> <enum>Qt::Horizontal</enum> </property> - <property name="sizeHint" > + <property name="sizeHint" stdset="0"> <size> <width>1</width> <height>5</height> @@ -325,8 +356,8 @@ </spacer> </item> <item> - <widget class="QPushButton" name="pushButton_close" > - <property name="text" > + <widget class="QPushButton" name="pushButton_close"> + <property name="text"> <string>&Close</string> </property> </widget>