Mercurial > hg > orthanc-stone
diff Framework/Scene2DViewport/LineMeasureTool.h @ 866:c71ef52602a0 toa2019062501
Added the ability to edit existing measuring tools (demo not updated yet)
author | Benjamin Golinvaux <bgo@osimis.io> |
---|---|
date | Tue, 25 Jun 2019 17:54:46 +0200 |
parents | a29c13497557 |
children | ac88989817e3 |
line wrap: on
line diff
--- a/Framework/Scene2DViewport/LineMeasureTool.h Tue Jun 25 15:24:13 2019 +0200 +++ b/Framework/Scene2DViewport/LineMeasureTool.h Tue Jun 25 17:54:46 2019 +0200 @@ -28,13 +28,14 @@ #include <boost/shared_ptr.hpp> #include <boost/weak_ptr.hpp> +#include <boost/enable_shared_from_this.hpp> #include <vector> #include <cmath> namespace OrthancStone { - class LineMeasureTool : public MeasureTool + class LineMeasureTool : public MeasureTool, public boost::enable_shared_from_this<LineMeasureTool> { public: LineMeasureTool(MessageBroker& broker, boost::weak_ptr<ViewportController> controllerW); @@ -49,6 +50,9 @@ virtual bool HitTest(ScenePoint2D p) const ORTHANC_OVERRIDE; virtual void Highlight(ScenePoint2D p) ORTHANC_OVERRIDE; virtual void ResetHighlightState() ORTHANC_OVERRIDE; + virtual boost::shared_ptr<IFlexiblePointerTracker> CreateEditionTracker(const PointerEvent& e) ORTHANC_OVERRIDE; + virtual boost::shared_ptr<MeasureToolMemento> GetMemento() const ORTHANC_OVERRIDE; + virtual void SetMemento(boost::shared_ptr<MeasureToolMemento>) ORTHANC_OVERRIDE; enum LineHighlightArea { @@ -76,5 +80,12 @@ LineHighlightArea lineHighlightArea_; }; + class LineMeasureToolMemento : public MeasureToolMemento + { + public: + ScenePoint2D start_; + ScenePoint2D end_; + }; + }