Mercurial > hg > orthanc-stone
changeset 2359:cb7b6eb39ebb refactoring
refactoring MeasureTool
| author | Sebastien Jodogne <s.jodogne@gmail.com> |
|---|---|
| date | Thu, 08 Oct 2026 10:47:46 +0200 |
| parents | 047bf02a8864 |
| children | 1fb8828effa1 |
| files | OrthancStone/Sources/Scene2DViewport/AngleMeasureTool.cpp OrthancStone/Sources/Scene2DViewport/AngleMeasureTool.h OrthancStone/Sources/Scene2DViewport/EditAngleMeasureTracker.cpp OrthancStone/Sources/Scene2DViewport/EditLineMeasureTracker.cpp OrthancStone/Sources/Scene2DViewport/LineMeasureTool.cpp OrthancStone/Sources/Scene2DViewport/LineMeasureTool.h OrthancStone/Sources/Scene2DViewport/MeasureCommands.cpp OrthancStone/Sources/Scene2DViewport/MeasureCommands.h OrthancStone/Sources/Scene2DViewport/MeasureTool.h |
| diffstat | 9 files changed, 56 insertions(+), 56 deletions(-) [+] |
line wrap: on
line diff
--- a/OrthancStone/Sources/Scene2DViewport/AngleMeasureTool.cpp Thu Oct 08 10:22:05 2026 +0200 +++ b/OrthancStone/Sources/Scene2DViewport/AngleMeasureTool.cpp Thu Oct 08 10:47:46 2026 +0200 @@ -106,18 +106,18 @@ } - MeasureToolMemento* AngleMeasureTool::CreateMemento() const + MeasureTool::IMemento* AngleMeasureTool::CreateMemento() const { - std::unique_ptr<AngleMeasureToolMemento> memento(new AngleMeasureToolMemento()); + std::unique_ptr<AngleMeasureTool::Memento> memento(new AngleMeasureTool::Memento()); memento->center_ = center_; memento->side1End_ = side1End_; memento->side2End_ = side2End_; return memento.release(); } - void AngleMeasureTool::SetMemento(const MeasureToolMemento& mementoBase) + void AngleMeasureTool::SetMemento(const MeasureTool::IMemento& mementoBase) { - const AngleMeasureToolMemento& memento = dynamic_cast<const AngleMeasureToolMemento&>(mementoBase); + const AngleMeasureTool::Memento& memento = dynamic_cast<const AngleMeasureTool::Memento&>(mementoBase); center_ = memento.center_; side1End_ = memento.side1End_; side2End_ = memento.side2End_;
--- a/OrthancStone/Sources/Scene2DViewport/AngleMeasureTool.h Thu Oct 08 10:22:05 2026 +0200 +++ b/OrthancStone/Sources/Scene2DViewport/AngleMeasureTool.h Thu Oct 08 10:47:46 2026 +0200 @@ -42,6 +42,15 @@ class AngleMeasureTool : public MeasureTool { public: + class Memento : public IMemento + { + public: + ScenePoint2D side1End_; + ScenePoint2D side2End_; + ScenePoint2D center_; + }; + + public: static boost::shared_ptr<AngleMeasureTool> Create(boost::weak_ptr<IViewport> viewport); ~AngleMeasureTool(); @@ -54,8 +63,8 @@ virtual void Highlight(ScenePoint2D p) ORTHANC_OVERRIDE; virtual void ResetHighlightState() ORTHANC_OVERRIDE; virtual IFlexiblePointerTracker* CreateEditionTracker(const PointerEvent& e) ORTHANC_OVERRIDE; - virtual MeasureToolMemento* CreateMemento() const ORTHANC_OVERRIDE; - virtual void SetMemento(const MeasureToolMemento& memento) ORTHANC_OVERRIDE; + virtual IMemento* CreateMemento() const ORTHANC_OVERRIDE; + virtual void SetMemento(const IMemento& memento) ORTHANC_OVERRIDE; virtual std::string GetDescription() ORTHANC_OVERRIDE; enum AngleHighlightArea @@ -85,14 +94,6 @@ boost::shared_ptr<LayerHolder> layerHolder_; AngleHighlightArea angleHighlightArea_; }; - - class AngleMeasureToolMemento : public MeasureToolMemento - { - public: - ScenePoint2D side1End_; - ScenePoint2D side2End_; - ScenePoint2D center_; - }; }
--- a/OrthancStone/Sources/Scene2DViewport/EditAngleMeasureTracker.cpp Thu Oct 08 10:22:05 2026 +0200 +++ b/OrthancStone/Sources/Scene2DViewport/EditAngleMeasureTracker.cpp Thu Oct 08 10:47:46 2026 +0200 @@ -63,8 +63,8 @@ ScenePoint2D delta = scenePos - GetOriginalClickPosition(); - const AngleMeasureToolMemento& memento = - dynamic_cast<const AngleMeasureToolMemento&>(command_->GetMementoOriginal()); + const AngleMeasureTool::Memento& memento = + dynamic_cast<const AngleMeasureTool::Memento&>(command_->GetMementoOriginal()); switch (modifiedZone_) {
--- a/OrthancStone/Sources/Scene2DViewport/EditLineMeasureTracker.cpp Thu Oct 08 10:22:05 2026 +0200 +++ b/OrthancStone/Sources/Scene2DViewport/EditLineMeasureTracker.cpp Thu Oct 08 10:47:46 2026 +0200 @@ -58,8 +58,8 @@ ScenePoint2D delta = scenePos - GetOriginalClickPosition(); - const LineMeasureToolMemento& memento = - dynamic_cast<const LineMeasureToolMemento&>(command_->GetMementoOriginal()); + const LineMeasureTool::Memento& memento = + dynamic_cast<const LineMeasureTool::Memento&>(command_->GetMementoOriginal()); switch (modifiedZone_) {
--- a/OrthancStone/Sources/Scene2DViewport/LineMeasureTool.cpp Thu Oct 08 10:22:05 2026 +0200 +++ b/OrthancStone/Sources/Scene2DViewport/LineMeasureTool.cpp Thu Oct 08 10:47:46 2026 +0200 @@ -181,17 +181,17 @@ } } - MeasureToolMemento* LineMeasureTool::CreateMemento() const + MeasureTool::IMemento* LineMeasureTool::CreateMemento() const { - std::unique_ptr<LineMeasureToolMemento> memento(new LineMeasureToolMemento()); + std::unique_ptr<Memento> memento(new Memento()); memento->start_ = start_; memento->end_ = end_; return memento.release(); } - void LineMeasureTool::SetMemento(const MeasureToolMemento& mementoBase) + void LineMeasureTool::SetMemento(const MeasureTool::IMemento& mementoBase) { - const LineMeasureToolMemento& memento = dynamic_cast<const LineMeasureToolMemento&>(mementoBase); + const LineMeasureTool::Memento& memento = dynamic_cast<const LineMeasureTool::Memento&>(mementoBase); start_ = memento.start_; end_ = memento.end_; RefreshScene();
--- a/OrthancStone/Sources/Scene2DViewport/LineMeasureTool.h Thu Oct 08 10:22:05 2026 +0200 +++ b/OrthancStone/Sources/Scene2DViewport/LineMeasureTool.h Thu Oct 08 10:47:46 2026 +0200 @@ -40,6 +40,14 @@ class LineMeasureTool : public MeasureTool { public: + class Memento : public IMemento + { + public: + ScenePoint2D start_; + ScenePoint2D end_; + }; + + public: static boost::shared_ptr<LineMeasureTool> Create(boost::weak_ptr<IViewport> viewport); ~LineMeasureTool(); @@ -53,8 +61,8 @@ virtual void Highlight(ScenePoint2D p) ORTHANC_OVERRIDE; virtual void ResetHighlightState() ORTHANC_OVERRIDE; virtual IFlexiblePointerTracker* CreateEditionTracker(const PointerEvent& e) ORTHANC_OVERRIDE; - virtual MeasureToolMemento* CreateMemento() const ORTHANC_OVERRIDE; - virtual void SetMemento(const MeasureToolMemento& memento) ORTHANC_OVERRIDE; + virtual IMemento* CreateMemento() const ORTHANC_OVERRIDE; + virtual void SetMemento(const IMemento& memento) ORTHANC_OVERRIDE; virtual std::string GetDescription() ORTHANC_OVERRIDE; enum LineHighlightArea @@ -84,13 +92,5 @@ int baseLayerIndex_; LineHighlightArea lineHighlightArea_; }; - - class LineMeasureToolMemento : public MeasureToolMemento - { - public: - ScenePoint2D start_; - ScenePoint2D end_; - }; - }
--- a/OrthancStone/Sources/Scene2DViewport/MeasureCommands.cpp Thu Oct 08 10:22:05 2026 +0200 +++ b/OrthancStone/Sources/Scene2DViewport/MeasureCommands.cpp Thu Oct 08 10:47:46 2026 +0200 @@ -124,13 +124,13 @@ GetMeasureTool()->SetMemento(*mementoModified_); } - const MeasureToolMemento& EditMeasureCommand::GetMementoOriginal() const + const MeasureTool::IMemento& EditMeasureCommand::GetMementoOriginal() const { assert(mementoOriginal_.get() != NULL); return *mementoOriginal_; } - void EditMeasureCommand::SetMementoModified(MeasureToolMemento* memento) + void EditMeasureCommand::SetMementoModified(MeasureTool::IMemento* memento) { if (memento == NULL) { @@ -142,13 +142,13 @@ } } - const MeasureToolMemento& DeleteMeasureCommand::GetMementoOriginal() const + const MeasureTool::IMemento& DeleteMeasureCommand::GetMementoOriginal() const { assert(mementoOriginal_.get() != NULL); return *mementoOriginal_; } - void DeleteMeasureCommand::SetMementoModified(MeasureToolMemento* memento) + void DeleteMeasureCommand::SetMementoModified(MeasureTool::IMemento* memento) { if (memento == NULL) {
--- a/OrthancStone/Sources/Scene2DViewport/MeasureCommands.h Thu Oct 08 10:22:05 2026 +0200 +++ b/OrthancStone/Sources/Scene2DViewport/MeasureCommands.h Thu Oct 08 10:47:46 2026 +0200 @@ -86,13 +86,13 @@ virtual boost::shared_ptr<MeasureTool> GetMeasureTool() = 0; /** This memento is updated by the subclasses upon modifications */ - std::unique_ptr<MeasureToolMemento> mementoModified_; + std::unique_ptr<MeasureTool::IMemento> mementoModified_; /** This memento is the original object state */ - std::unique_ptr<MeasureToolMemento> mementoOriginal_; + std::unique_ptr<MeasureTool::IMemento> mementoOriginal_; protected: - void SetMementoModified(MeasureToolMemento* memento); // takes ownership + void SetMementoModified(MeasureTool::IMemento* memento); // takes ownership public: EditMeasureCommand(boost::shared_ptr<MeasureTool> measureTool, @@ -104,7 +104,7 @@ virtual void Redo() ORTHANC_OVERRIDE; - const MeasureToolMemento& GetMementoOriginal() const; + const MeasureTool::IMemento& GetMementoOriginal() const; }; @@ -120,13 +120,13 @@ boost::shared_ptr<MeasureTool> measureTool_; /** This memento is updated by the subclasses upon modifications */ - std::unique_ptr<MeasureToolMemento> mementoModified_; + std::unique_ptr<MeasureTool::IMemento> mementoModified_; /** This memento is the original object state */ - std::unique_ptr<MeasureToolMemento> mementoOriginal_; + std::unique_ptr<MeasureTool::IMemento> mementoOriginal_; protected: - void SetMementoModified(MeasureToolMemento* memento); // takes ownership + void SetMementoModified(MeasureTool::IMemento* memento); // takes ownership public: DeleteMeasureCommand(boost::shared_ptr<MeasureTool> measureTool, @@ -138,7 +138,7 @@ virtual void Redo() ORTHANC_OVERRIDE; - const MeasureToolMemento& GetMementoOriginal() const; + const MeasureTool::IMemento& GetMementoOriginal() const; }; }
--- a/OrthancStone/Sources/Scene2DViewport/MeasureTool.h Thu Oct 08 10:22:05 2026 +0200 +++ b/OrthancStone/Sources/Scene2DViewport/MeasureTool.h Thu Oct 08 10:47:46 2026 +0200 @@ -39,10 +39,18 @@ namespace OrthancStone { class IFlexiblePointerTracker; - class MeasureToolMemento; class MeasureTool : public ObserverBase<MeasureTool> { + public: + class IMemento : public boost::noncopyable + { + public: + virtual ~IMemento() + { + } + }; + private: bool enabled_; @@ -126,13 +134,13 @@ This method must return a memento the captures the tool state (not including the highlighting state */ - virtual MeasureToolMemento* CreateMemento() const = 0; + virtual IMemento* CreateMemento() const = 0; /** This method must apply the supplied memento (this requires RTTI to check the type) */ - virtual void SetMemento(const MeasureToolMemento& memento) = 0; + virtual void SetMemento(const IMemento& memento) = 0; /** This must create an edition tracker suitable for the supplied click position, @@ -157,15 +165,6 @@ */ virtual std::string GetDescription() = 0; }; - - class MeasureToolMemento : public boost::noncopyable - { - public: - virtual ~MeasureToolMemento() - { - } - }; - } //extern void TrackerSample_SetInfoDisplayMessage(
