diff --git a/GUI/Models/RectangularDetectorItem.cpp b/GUI/Models/RectangularDetectorItem.cpp index 11753e89799c74ea52db5281518c7d8ca6d792f4..d8b334c43910a6957fde6e44e4530f9de3f5af1a 100644 --- a/GUI/Models/RectangularDetectorItem.cpp +++ b/GUI/Models/RectangularDetectorItem.cpp @@ -209,6 +209,16 @@ void RectangularDetectorItem::setNormalVector(const kvector_t& normal) item<VectorItem>(P_NORMAL)->setVector(normal); } +SessionItem* RectangularDetectorItem::directionVectorItem() const +{ + return getItem(P_DIRECTION); +} + +void RectangularDetectorItem::setDirectionVector(const kvector_t& direction) +{ + item<VectorItem>(P_DIRECTION)->setVector(direction); +} + std::unique_ptr<IDetector2D> RectangularDetectorItem::createDomainDetector() const { // basic axes parameters diff --git a/GUI/Models/RectangularDetectorItem.h b/GUI/Models/RectangularDetectorItem.h index 9058958fcadc131898c1d6d6cdb49b4ab66b089d..3a2c313d354e1a9c61719281f576c86bb21da9eb 100644 --- a/GUI/Models/RectangularDetectorItem.h +++ b/GUI/Models/RectangularDetectorItem.h @@ -27,9 +27,9 @@ private: static const QString P_Y_AXIS; static const QString P_ALIGNMENT; static const QString P_NORMAL; + static const QString P_DIRECTION; public: - static const QString P_DIRECTION; static const QString P_U0; static const QString P_V0; static const QString P_DBEAM_U0; @@ -58,6 +58,9 @@ public: SessionItem* normalVectorItem() const; void setNormalVector(const kvector_t& normal); + SessionItem* directionVectorItem() const; + void setDirectionVector(const kvector_t& direction); + private: std::unique_ptr<IDetector2D> createDomainDetector() const override; void update_properties_appearance(); diff --git a/GUI/Models/TransformFromDomain.cpp b/GUI/Models/TransformFromDomain.cpp index c02f6b22543d959e43dbfaee3e8a1d8e7797834c..5ff59801329606bf20c3e455af791a04981e5760 100644 --- a/GUI/Models/TransformFromDomain.cpp +++ b/GUI/Models/TransformFromDomain.cpp @@ -392,7 +392,7 @@ void TransformFromDomain::setRectangularDetector(RectangularDetectorItem* detect detector_item->setNormalVector(normal); kvector_t direction = detector.getDirectionVector(); - detector_item->item<VectorItem>(RectangularDetectorItem::P_DIRECTION)->setVector(direction); + detector_item->setDirectionVector(direction); detector_item->setItemValue(RectangularDetectorItem::P_U0, detector.getU0()); detector_item->setItemValue(RectangularDetectorItem::P_V0, detector.getV0()); diff --git a/GUI/Views/InstrumentWidgets/RectangularDetectorEditor.cpp b/GUI/Views/InstrumentWidgets/RectangularDetectorEditor.cpp index a1e869021a625557d0043313d51f9880caab6a72..8e5e60a32e0485da9dc2b3c827991a6f91f3ddc3 100644 --- a/GUI/Views/InstrumentWidgets/RectangularDetectorEditor.cpp +++ b/GUI/Views/InstrumentWidgets/RectangularDetectorEditor.cpp @@ -141,7 +141,7 @@ void RectangularDetectorEditor::init_alignment_editors() auto normalVectorItem = detectorItem()->normalVectorItem(); m_normalEditor->setItem(normalVectorItem); - auto directionVectorItem = detectorItem()->getItem(RectangularDetectorItem::P_DIRECTION); + auto directionVectorItem = detectorItem()->directionVectorItem(); m_directionEditor->setItem(directionVectorItem); } else if (alignment.getValue() == "Perpendicular to direct beam"