From 3ddbff09d9cb01f4147860a911e944639aa3d8ba Mon Sep 17 00:00:00 2001 From: Edward Moyse <edward.moyse@cern.ch> Date: Fri, 25 Jan 2019 00:48:29 +0000 Subject: [PATCH] Master vp1 arbitraryline guideline --- .../VP1GuideLineSystems/GuideSysController.h | 10 +- .../VP1GuideLineSystems/VP1Lines.h | 35 ++++ .../src/GuideSysController.cxx | 80 +++++++- .../src/VP1GuideLineSystem.cxx | 11 +- .../VP1GuideLineSystems/src/VP1Lines.cxx | 150 ++++++++++++++ .../src/guidelinescontrollerform.ui | 132 ++++++------ .../src/guides_settings_lines_form.ui | 192 ++++++++++++++++++ 7 files changed, 548 insertions(+), 62 deletions(-) create mode 100644 graphics/VP1/VP1Systems/VP1GuideLineSystems/VP1GuideLineSystems/VP1Lines.h create mode 100644 graphics/VP1/VP1Systems/VP1GuideLineSystems/src/VP1Lines.cxx create mode 100644 graphics/VP1/VP1Systems/VP1GuideLineSystems/src/guides_settings_lines_form.ui diff --git a/graphics/VP1/VP1Systems/VP1GuideLineSystems/VP1GuideLineSystems/GuideSysController.h b/graphics/VP1/VP1Systems/VP1GuideLineSystems/VP1GuideLineSystems/GuideSysController.h index 8f932861f47..650769f0764 100644 --- a/graphics/VP1/VP1Systems/VP1GuideLineSystems/VP1GuideLineSystems/GuideSysController.h +++ b/graphics/VP1/VP1Systems/VP1GuideLineSystems/VP1GuideLineSystems/GuideSysController.h @@ -92,11 +92,15 @@ public: double etaExtent() const;//>0: extent means to a given radius, <0: extent means to a given z. //TrackingVolumes - bool showTrackingVolumes() const; + bool showTrackingVolumes() const; bool showInnerDetector() const; bool showCalorimeters() const; bool showMuonSpectrometer() const; + // Lines + bool showLines() const; + double lineLength() const; + SbVec3f lineDirection() const; //ID Proj surfs: @@ -150,6 +154,8 @@ signals: void showInnerDetectorChanged(bool); void showCalorimetersChanged(bool); void showMuonSpectrometerChanged(bool); + void showLinesChanged(bool); + void lineDirectionChanged(const SbVec3f&); private: @@ -194,6 +200,8 @@ private slots: void possibleChange_showInnerDetector(); void possibleChange_showCalorimeters(); void possibleChange_showMuonSpectrometer(); + void possibleChange_showLines(); + void possibleChange_lineDirection(); }; diff --git a/graphics/VP1/VP1Systems/VP1GuideLineSystems/VP1GuideLineSystems/VP1Lines.h b/graphics/VP1/VP1Systems/VP1GuideLineSystems/VP1GuideLineSystems/VP1Lines.h new file mode 100644 index 00000000000..d3519461357 --- /dev/null +++ b/graphics/VP1/VP1Systems/VP1GuideLineSystems/VP1GuideLineSystems/VP1Lines.h @@ -0,0 +1,35 @@ +/* + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef VP1LINES_H +#define VP1LINES_H + +#include "VP1Base/VP1HelperClassBase.h" +#include <QObject> +#include <Inventor/C/errors/debugerror.h> +#include <Inventor/SbColor4f.h> +class SoSeparator; + +class VP1Lines : public QObject, public VP1HelperClassBase { + + Q_OBJECT + +public: + + VP1Lines( SoSeparator * attachsep,//where the grid separator will attach itself when visible + IVP1System * sys,QObject * parent = 0); + virtual ~VP1Lines(); + +public slots: + + void setShown(bool);//will attach/detach itself from attachsep depending on this + void setColourAndTransp(const SbColor4f&); + void setDirection(const SbVec3f&); + +private: + class Imp; + Imp * m_d; +}; + +#endif diff --git a/graphics/VP1/VP1Systems/VP1GuideLineSystems/src/GuideSysController.cxx b/graphics/VP1/VP1Systems/VP1GuideLineSystems/src/GuideSysController.cxx index 71255fdabd9..5032e37a52b 100644 --- a/graphics/VP1/VP1Systems/VP1GuideLineSystems/src/GuideSysController.cxx +++ b/graphics/VP1/VP1Systems/VP1GuideLineSystems/src/GuideSysController.cxx @@ -23,11 +23,11 @@ #include "ui_guides_settings_grid_form.h" #include "ui_guides_settings_idprojsurfs_form.h" #include "ui_guides_settings_trkvolumes_form.h" +#include "ui_guides_settings_lines_form.h" #include "VP1Base/VP1Serialise.h" #include "VP1Base/VP1Deserialise.h" - -//#include "CLHEP/Units/SystemOfUnits.h" #include "GaudiKernel/SystemOfUnits.h" +#include <cmath> //____________________________________________________________________ class GuideSysController::Imp { @@ -40,6 +40,7 @@ public: Ui::VP1GuidesSysSettingsGridForm ui_grid; Ui::VP1GuidesSysSettingsIDProjSurfsForm ui_idprojsurfs; Ui::VP1TrackingVolumesForm ui_trkvolumes; + Ui::VP1LinesForm ui_lines; static SbColor4f color4f(const QColor& col, int transp_int) { return SbColor4f(std::max<float>(0.0f,std::min<float>(1.0f,col.redF())), @@ -78,6 +79,9 @@ public: bool last_showInnerDetector; bool last_showCalorimeters; bool last_showMuonSpectrometer; + bool last_showLines; + SbVec3f last_lineDirection; + double last_line_eta; // This is needed to update the display in possibleChange_lineDirection InDetProjFlags::InDetProjPartsFlags last_applicablePixelProjParts; InDetProjFlags::InDetProjPartsFlags last_applicableSCTProjParts; @@ -108,6 +112,7 @@ GuideSysController::GuideSysController(IVP1System * sys) initDialog(m_d->ui_grid, m_d->ui.pushButton_settings_grid,m_d->ui.checkBox_grid); initDialog(m_d->ui_idprojsurfs, m_d->ui.pushButton_settings_inDetProjSurfs,m_d->ui.checkBox_inDetProjSurfs); initDialog(m_d->ui_trkvolumes, m_d->ui.pushButton_settings_trkVolumes,m_d->ui.checkBox_trkVolumes); + initDialog(m_d->ui_lines, m_d->ui.pushButton_settings_lines,m_d->ui.checkBox_lines); //Hide SCT/Pixel projection surface controls for now: m_d->ui_idprojsurfs.groupBox_pixelproj->setVisible(false); @@ -314,6 +319,16 @@ GuideSysController::GuideSysController(IVP1System * sys) addUpdateSlot(SLOT(possibleChange_showMuonSpectrometer())); connectToLastUpdateSlot(m_d->ui_trkvolumes.checkBox_MS); + addUpdateSlot(SLOT(possibleChange_showLines())); + connectToLastUpdateSlot(m_d->ui.checkBox_lines); + + addUpdateSlot(SLOT(possibleChange_lineDirection())); + connectToLastUpdateSlot(m_d->ui_lines.doubleSpinBox_phi); + connectToLastUpdateSlot(m_d->ui_lines.doubleSpinBox_theta); + connectToLastUpdateSlot(m_d->ui_lines.doubleSpinBox_eta); + connectToLastUpdateSlot(m_d->ui_lines.doubleSpinBox_length); + + initLastVars(); } @@ -502,6 +517,29 @@ double GuideSysController::etaExtent() const * (m_d->ui_etacones.radioButton_etaconeextentisr->isChecked() ? 1.0 : -1.0); } +//____________________________________________________________________ +bool GuideSysController::showLines() const +{ + return m_d->ui.checkBox_lines->isChecked(); +} + + +//____________________________________________________________________ +SbVec3f GuideSysController::lineDirection() const +{ + double r = lineLength(); + double phi = m_d->ui_lines.doubleSpinBox_phi->value(); + double theta = m_d->ui_lines.doubleSpinBox_theta->value(); + SbVec3f direction(r*sin(theta)*cos(phi),r*sin(theta)*sin(phi), r*cos(theta)); + return direction; +} + +//____________________________________________________________________ +double GuideSysController::lineLength() const +{ + return m_d->ui_lines.doubleSpinBox_length->value() * Gaudi::Units::m; +} + //_____________________________________________________________________________________ InDetProjFlags::InDetProjPartsFlags GuideSysController::Imp::projPartsFlag( bool barrelinner, bool barrelouter, bool endcapinner, bool endcapouter, @@ -726,7 +764,7 @@ bool GuideSysController::showMuonSpectrometer() const //____________________________________________________________________ int GuideSysController::currentSettingsVersion() const { - return 2; + return 3; } //____________________________________________________________________ @@ -833,6 +871,13 @@ void GuideSysController::actualSaveSettings(VP1Serialise&s) const s.save(m_d->ui_trkvolumes.checkBox_ID); s.save(m_d->ui_trkvolumes.checkBox_Calo); s.save(m_d->ui_trkvolumes.checkBox_MS); + + // Line from origin + s.save(m_d->ui.checkBox_lines); + s.save(m_d->ui_lines.doubleSpinBox_phi); + s.save(m_d->ui_lines.doubleSpinBox_phi); + s.save(m_d->ui_lines.doubleSpinBox_eta); + s.save(m_d->ui_lines.doubleSpinBox_length); } //____________________________________________________________________ @@ -946,9 +991,36 @@ void GuideSysController::actualRestoreSettings(VP1Deserialise& s) s.restore(m_d->ui_trkvolumes.checkBox_Calo); s.restore(m_d->ui_trkvolumes.checkBox_MS); } + if (s.version()>=3) { + s.restore(m_d->ui.checkBox_lines); + s.restore(m_d->ui_lines.doubleSpinBox_phi); + s.restore(m_d->ui_lines.doubleSpinBox_phi); + s.restore(m_d->ui_lines.doubleSpinBox_eta); + s.restore(m_d->ui_lines.doubleSpinBox_length); + } +} +void GuideSysController::possibleChange_lineDirection() { + // Bit of a hack possibly to do this here, but I want to be able to update the direction by changing either theta or eta + double eta = m_d->ui_lines.doubleSpinBox_eta->value(); + double theta = m_d->ui_lines.doubleSpinBox_theta->value(); + + if (m_d->last_line_eta != eta){ + // eta has changed, so update theta in the UI + theta = 2*std::atan(std::exp(-1.0 * eta)); + m_d->ui_lines.doubleSpinBox_theta->setValue(theta); + } else if ( theta!= std::acos(m_d->last_lineDirection[2] / lineLength() ) ){ + eta = -1.0 * std::log(std::tan(theta/2.0)); + m_d->ui_lines.doubleSpinBox_eta->setValue(eta); + } + m_d->last_line_eta = m_d->ui_lines.doubleSpinBox_eta->value(); + if (changed( m_d->last_lineDirection , lineDirection() ) ) { + if (verbose()&&!initVarsMode()) messageVerbose("Emitting "+QString()+"( lineDirectionChanged"+toString(m_d->last_lineDirection)+" )"); + emit lineDirectionChanged(m_d->last_lineDirection); + } } + /////////////////////////////////////////////////////////////////////////// // Test for possible changes in values and emit signals as appropriate: // (possibleChange_XXX() slots code provided by macros) @@ -988,3 +1060,5 @@ POSSIBLECHANGE_IMP(showTrackingVolumes) POSSIBLECHANGE_IMP(showInnerDetector) POSSIBLECHANGE_IMP(showCalorimeters) POSSIBLECHANGE_IMP(showMuonSpectrometer) +POSSIBLECHANGE_IMP(showLines) +//POSSIBLECHANGE_IMP(lineDirection) Implemented this manually so we can update eta/theta diff --git a/graphics/VP1/VP1Systems/VP1GuideLineSystems/src/VP1GuideLineSystem.cxx b/graphics/VP1/VP1Systems/VP1GuideLineSystems/src/VP1GuideLineSystem.cxx index 9fa913399c4..7f3900c6cc5 100644 --- a/graphics/VP1/VP1Systems/VP1GuideLineSystems/src/VP1GuideLineSystem.cxx +++ b/graphics/VP1/VP1Systems/VP1GuideLineSystems/src/VP1GuideLineSystem.cxx @@ -23,6 +23,7 @@ #include "VP1GuideLineSystems/VP1CartesianGrid.h" #include "VP1GuideLineSystems/VP1CylindricalGrid.h" #include "VP1GuideLineSystems/VP1TrackingVolumes.h" +#include "VP1GuideLineSystems/VP1Lines.h" #include "VP1Base/VP1Serialise.h" #include "VP1Base/VP1Deserialise.h" @@ -64,6 +65,7 @@ public: VP1EtaCone * etacone2; VP1EtaCone * etacone3; VP1TrackingVolumes * trackingVolumes; + VP1Lines * lines; ProjectionSurfacesHelper * projsurfhelper_pixel; ProjectionSurfacesHelper * projsurfhelper_sct; @@ -213,7 +215,14 @@ void VP1GuideLineSystem::buildPermanentSceneGraph(StoreGateSvc* /*detstore*/, So connect(m_d->controller,SIGNAL(showCalorimetersChanged(bool)),m_d->trackingVolumes,SLOT(setShownCalo(bool))); connect(m_d->controller,SIGNAL(showMuonSpectrometerChanged(bool)),m_d->trackingVolumes,SLOT(setShownMS(bool))); m_d->trackingVolumes->setShown(m_d->controller->showTrackingVolumes()); - + + //Lines + m_d->lines = new VP1Lines(root, this); + connect(m_d->controller,SIGNAL(showLinesChanged(bool)),m_d->lines,SLOT(setShown(bool))); + m_d->lines->setShown(m_d->controller->showLines()); + connect(m_d->controller,SIGNAL(lineDirectionChanged(const SbVec3f&)),m_d->lines,SLOT(setDirection(const SbVec3f&))); + m_d->lines->setDirection(m_d->controller->lineDirection()); + SoSeparator * projsep = new SoSeparator; root->addChild(projsep); diff --git a/graphics/VP1/VP1Systems/VP1GuideLineSystems/src/VP1Lines.cxx b/graphics/VP1/VP1Systems/VP1GuideLineSystems/src/VP1Lines.cxx new file mode 100644 index 00000000000..aaffe29ccab --- /dev/null +++ b/graphics/VP1/VP1Systems/VP1GuideLineSystems/src/VP1Lines.cxx @@ -0,0 +1,150 @@ +/* + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +*/ + +#include "VP1GuideLineSystems/VP1Lines.h" + +#include <Inventor/nodes/SoSeparator.h> +#include <Inventor/nodes/SoVertexProperty.h> +#include <Inventor/nodes/SoLineSet.h> +#include <Inventor/SbColor4f.h> + +#include "GaudiKernel/SystemOfUnits.h" + + +//____________________________________________________________________ +class VP1Lines::Imp { +public: + Imp(VP1Lines *, + SoSeparator * attachsep); + VP1Lines * theclass; + SoSeparator * attachSep; + + bool shown; + SbColor4f colourAndTransp; + SbVec3f direction; + + SoSeparator * sep; + + void rebuild3DObjects(); + void updateColour(); +}; + +//____________________________________________________________________ +VP1Lines::VP1Lines(SoSeparator * attachsep, + IVP1System * sys,QObject * parent) + : QObject(parent), VP1HelperClassBase(sys,"VP1Lines"), m_d(new Imp(this,attachsep)) +{ +} + +//____________________________________________________________________ +VP1Lines::~VP1Lines() +{ + setShown(false); + if (m_d->sep) + m_d->sep->unref(); + m_d->attachSep->unref(); + delete m_d; +} + +//____________________________________________________________________ +VP1Lines::Imp::Imp(VP1Lines *tc,SoSeparator * as) + : theclass(tc), attachSep(as), shown(false), + colourAndTransp(SbColor4f(1,1,1,1)), direction(SbVec3f(0,0,0)), sep(0) +{ + attachSep->ref(); +} + +//____________________________________________________________________ +void VP1Lines::Imp::rebuild3DObjects() +{ + theclass->messageVerbose("(Re)building 3D objects"); + + if (sep) { + sep->removeAllChildren(); + } else { + sep = new SoSeparator; + sep->ref(); + } + + const bool save = sep->enableNotify(false); + + SoVertexProperty * line_vertices = new SoVertexProperty(); + + line_vertices->vertex.set1Value(0,0.0,0.0,0.0); + line_vertices->vertex.set1Value(1,direction[0],direction[1],direction[2]); + + line_vertices->materialBinding=SoMaterialBinding::OVERALL; + line_vertices->normalBinding=SoNormalBinding::OVERALL; + SoLineSet * line = new SoLineSet(); + line->numVertices.enableNotify(FALSE); + // line->numVertices.setNum(1); + // line->numVertices.set1Value(0,2); + line->vertexProperty = line_vertices; + line->numVertices.enableNotify(TRUE); + line->numVertices.touch(); + + sep->addChild(line); + updateColour(); + + if (save) { + sep->enableNotify(true); + sep->touch(); + } + +} + +//____________________________________________________________________ +void VP1Lines::Imp::updateColour() +{ + theclass->messageVerbose("Updating packed colour"); + if (!sep||sep->getNumChildren()<1) + return; + SoNode * n = sep->getChild(0); + if (!n||n->getTypeId()!=SoLineSet::getClassTypeId()) + return; + SoLineSet * line = static_cast<SoLineSet*>(n); + SoVertexProperty * vertices = static_cast<SoVertexProperty *>(line->vertexProperty.getValue()); + if (!vertices) + return; + vertices->orderedRGBA = colourAndTransp.getPackedValue(); +} + +//____________________________________________________________________ +void VP1Lines::setShown(bool b) +{ + messageVerbose("Signal received: setShown("+str(b)+")"); + if (m_d->shown==b) + return; + m_d->shown=b; + if (m_d->shown) { + m_d->rebuild3DObjects(); + if (m_d->attachSep->findChild(m_d->sep)<0) + m_d->attachSep->addChild(m_d->sep); + } else { + if (m_d->sep&&m_d->attachSep->findChild(m_d->sep)>=0) + m_d->attachSep->removeChild(m_d->sep); + } +} + +//____________________________________________________________________ +void VP1Lines::setColourAndTransp(const SbColor4f&ct) +{ + messageVerbose("Signal received in setColourAndTransp slot."); + if (m_d->colourAndTransp==ct) + return; + m_d->colourAndTransp=ct; + if (m_d->shown) + m_d->updateColour(); +} + +//____________________________________________________________________ +void VP1Lines::setDirection(const SbVec3f& o) +{ + messageVerbose("Signal received: setDirection("+str(o)+")"); + if (m_d->direction==o) + return; + m_d->direction=o; + if (m_d->shown) + m_d->rebuild3DObjects(); +} diff --git a/graphics/VP1/VP1Systems/VP1GuideLineSystems/src/guidelinescontrollerform.ui b/graphics/VP1/VP1Systems/VP1GuideLineSystems/src/guidelinescontrollerform.ui index c527d377a5d..f0d1f101b3b 100644 --- a/graphics/VP1/VP1Systems/VP1GuideLineSystems/src/guidelinescontrollerform.ui +++ b/graphics/VP1/VP1Systems/VP1GuideLineSystems/src/guidelinescontrollerform.ui @@ -1,7 +1,8 @@ -<ui version="4.0" > +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> <class>VP1GuidesControllerForm</class> - <widget class="QWidget" name="VP1GuidesControllerForm" > - <property name="geometry" > + <widget class="QWidget" name="VP1GuidesControllerForm"> + <property name="geometry"> <rect> <x>0</x> <y>0</y> @@ -9,128 +10,145 @@ <height>182</height> </rect> </property> - <property name="windowTitle" > + <property name="windowTitle"> <string>Form</string> </property> - <layout class="QGridLayout" > - <property name="rightMargin" > + <layout class="QGridLayout"> + <property name="rightMargin"> <number>1</number> </property> - <property name="bottomMargin" > + <property name="bottomMargin"> <number>1</number> </property> - <property name="spacing" > + <property name="spacing"> <number>0</number> </property> - <item row="0" column="0" > - <layout class="QGridLayout" > - <property name="horizontalSpacing" > + <item row="0" column="0"> + <layout class="QGridLayout"> + <property name="horizontalSpacing"> <number>2</number> </property> - <property name="verticalSpacing" > + <property name="verticalSpacing"> <number>0</number> </property> - <item row="0" column="0" > - <widget class="QCheckBox" name="checkBox_floorAndLetters" > - <property name="text" > + <item row="0" column="0"> + <widget class="QCheckBox" name="checkBox_floorAndLetters"> + <property name="text"> <string>Floor && Letters</string> </property> - <property name="checked" > + <property name="checked"> <bool>true</bool> </property> </widget> </item> - <item row="0" column="1" > - <widget class="QPushButton" name="pushButton_settings_floorAndLetters" > - <property name="text" > + <item row="0" column="1"> + <widget class="QPushButton" name="pushButton_settings_floorAndLetters"> + <property name="text"> <string>Configure</string> </property> </widget> </item> - <item row="1" column="0" > - <widget class="QCheckBox" name="checkBox_coordinateAxes" > - <property name="text" > + <item row="1" column="0"> + <widget class="QCheckBox" name="checkBox_coordinateAxes"> + <property name="text"> <string>Coordinate axes</string> </property> </widget> </item> - <item row="1" column="1" > - <widget class="QPushButton" name="pushButton_settings_coordinateAxes" > - <property name="text" > + <item row="1" column="1"> + <widget class="QPushButton" name="pushButton_settings_coordinateAxes"> + <property name="text"> <string>Configure</string> </property> </widget> </item> - <item row="2" column="0" > - <widget class="QCheckBox" name="checkBox_grid" > - <property name="text" > + <item row="2" column="0"> + <widget class="QCheckBox" name="checkBox_grid"> + <property name="text"> <string>Grid</string> </property> </widget> </item> - <item row="2" column="1" > - <widget class="QPushButton" name="pushButton_settings_grid" > - <property name="text" > + <item row="2" column="1"> + <widget class="QPushButton" name="pushButton_settings_grid"> + <property name="text"> <string>Configure</string> </property> </widget> </item> - <item row="3" column="0" > - <widget class="QCheckBox" name="checkBox_etaCones" > - <property name="text" > + <item row="3" column="0"> + <widget class="QCheckBox" name="checkBox_etaCones"> + <property name="text"> <string>Eta Cones</string> </property> </widget> </item> - <item row="3" column="1" > - <widget class="QPushButton" name="pushButton_settings_etaCones" > - <property name="text" > + <item row="3" column="1"> + <widget class="QPushButton" name="pushButton_settings_etaCones"> + <property name="text"> <string>Configure</string> </property> </widget> </item> - <item row="4" column="0" > - <widget class="QCheckBox" name="checkBox_inDetProjSurfs" > - <property name="text" > + <item row="4" column="0"> + <widget class="QCheckBox" name="checkBox_inDetProjSurfs"> + <property name="text"> <string>ID projection surfaces</string> </property> - <property name="checked" > + <property name="checked"> <bool>true</bool> </property> </widget> </item> - <item row="4" column="1" > - <widget class="QPushButton" name="pushButton_settings_inDetProjSurfs" > - <property name="text" > + <item row="4" column="1"> + <widget class="QPushButton" name="pushButton_settings_inDetProjSurfs"> + <property name="text"> <string>Configure</string> </property> </widget> </item> - <item row="5" column="1" > - <widget class="QPushButton" name="pushButton_settings_trkVolumes" > - <property name="text" > + <item row="5" column="1"> + <widget class="QPushButton" name="pushButton_settings_trkVolumes"> + <property name="text"> <string>Configure</string> </property> </widget> </item> - <item row="5" column="0" > - <widget class="QCheckBox" name="checkBox_trkVolumes" > - <property name="text" > + <item row="5" column="0"> + <widget class="QCheckBox" name="checkBox_trkVolumes"> + <property name="text"> <string>Tracking Volumes</string> </property> - <property name="checked" > + <property name="checked"> <bool>false</bool> </property> </widget> </item> + <item row="7" column="0"> + <widget class="QCheckBox" name="checkBox_lines"> + <property name="text"> + <string>Line from origin</string> + </property> + <property name="checked"> + <bool>false</bool> + </property> + </widget> + </item> + <item row="7" column="1"> + <widget class="QPushButton" name="pushButton_settings_lines"> + <property name="text"> + <string>Configure</string> + </property> + </widget> + </item> </layout> </item> - <item row="0" column="1" > + <item row="0" column="1"> <spacer> - <property name="orientation" > + <property name="orientation"> <enum>Qt::Horizontal</enum> </property> - <property name="sizeHint" stdset="0" > + <property name="sizeHint" stdset="0"> <size> <width>1</width> <height>20</height> @@ -138,12 +156,12 @@ </property> </spacer> </item> - <item row="1" column="0" > + <item row="1" column="0"> <spacer> - <property name="orientation" > + <property name="orientation"> <enum>Qt::Vertical</enum> </property> - <property name="sizeHint" stdset="0" > + <property name="sizeHint" stdset="0"> <size> <width>20</width> <height>1</height> diff --git a/graphics/VP1/VP1Systems/VP1GuideLineSystems/src/guides_settings_lines_form.ui b/graphics/VP1/VP1Systems/VP1GuideLineSystems/src/guides_settings_lines_form.ui new file mode 100644 index 00000000000..aa6ab3689c2 --- /dev/null +++ b/graphics/VP1/VP1Systems/VP1GuideLineSystems/src/guides_settings_lines_form.ui @@ -0,0 +1,192 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>VP1LinesForm</class> + <widget class="QWidget" name="VP1LinesForm"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>333</width> + <height>166</height> + </rect> + </property> + <property name="windowTitle"> + <string>Form</string> + </property> + <layout class="QVBoxLayout" name="verticalLayout"> + <item> + <layout class="QGridLayout" name="gridLayout"> + <item row="6" column="0"> + <widget class="QLabel" name="label_26"> + <property name="text"> + <string>Length</string> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="QDoubleSpinBox" name="doubleSpinBox_phi"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="suffix"> + <string/> + </property> + <property name="decimals"> + <number>3</number> + </property> + <property name="minimum"> + <double>-6.280000000000000</double> + </property> + <property name="maximum"> + <double>6.280000000000000</double> + </property> + <property name="singleStep"> + <double>0.010000000000000</double> + </property> + </widget> + </item> + <item row="4" column="1"> + <widget class="QDoubleSpinBox" name="doubleSpinBox_theta"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="suffix"> + <string/> + </property> + <property name="decimals"> + <number>3</number> + </property> + <property name="minimum"> + <double>-6.280000000000000</double> + </property> + <property name="maximum"> + <double>6.280000000000000</double> + </property> + <property name="singleStep"> + <double>0.010000000000000</double> + </property> + </widget> + </item> + <item row="6" column="1"> + <widget class="QDoubleSpinBox" name="doubleSpinBox_length"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="suffix"> + <string> m</string> + </property> + <property name="decimals"> + <number>3</number> + </property> + <property name="minimum"> + <double>-99.989999999999995</double> + </property> + <property name="singleStep"> + <double>0.010000000000000</double> + </property> + <property name="value"> + <double>5.000000000000000</double> + </property> + </widget> + </item> + <item row="4" column="0"> + <widget class="QLabel" name="label_27"> + <property name="text"> + <string>Theta</string> + </property> + </widget> + </item> + <item row="2" column="1"> + <widget class="QDoubleSpinBox" name="doubleSpinBox_eta"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="suffix"> + <string/> + </property> + <property name="decimals"> + <number>3</number> + </property> + <property name="minimum"> + <double>-5.000000000000000</double> + </property> + <property name="maximum"> + <double>5.000000000000000</double> + </property> + <property name="singleStep"> + <double>0.010000000000000</double> + </property> + </widget> + </item> + <item row="2" column="0"> + <widget class="QLabel" name="label_24"> + <property name="text"> + <string>Eta</string> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="QLabel" name="label_25"> + <property name="text"> + <string>Phi</string> + </property> + </widget> + </item> + </layout> + </item> + <item> + <layout class="QHBoxLayout" name="_2"> + <property name="spacing"> + <number>0</number> + </property> + <item> + <spacer> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>1</width> + <height>5</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QPushButton" name="pushButton_close"> + <property name="text"> + <string>&Close</string> + </property> + </widget> + </item> + </layout> + </item> + </layout> + </widget> + <resources/> + <connections/> +</ui> -- GitLab