comparison 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
comparison
equal deleted inserted replaced
865:a29c13497557 866:c71ef52602a0
26 #include "../Scene2D/TextSceneLayer.h" 26 #include "../Scene2D/TextSceneLayer.h"
27 #include "MeasureTool.h" 27 #include "MeasureTool.h"
28 28
29 #include <boost/shared_ptr.hpp> 29 #include <boost/shared_ptr.hpp>
30 #include <boost/weak_ptr.hpp> 30 #include <boost/weak_ptr.hpp>
31 #include <boost/enable_shared_from_this.hpp>
31 32
32 #include <vector> 33 #include <vector>
33 #include <cmath> 34 #include <cmath>
34 35
35 namespace OrthancStone 36 namespace OrthancStone
36 { 37 {
37 class LineMeasureTool : public MeasureTool 38 class LineMeasureTool : public MeasureTool, public boost::enable_shared_from_this<LineMeasureTool>
38 { 39 {
39 public: 40 public:
40 LineMeasureTool(MessageBroker& broker, boost::weak_ptr<ViewportController> controllerW); 41 LineMeasureTool(MessageBroker& broker, boost::weak_ptr<ViewportController> controllerW);
41 42
42 ~LineMeasureTool(); 43 ~LineMeasureTool();
47 48
48 49
49 virtual bool HitTest(ScenePoint2D p) const ORTHANC_OVERRIDE; 50 virtual bool HitTest(ScenePoint2D p) const ORTHANC_OVERRIDE;
50 virtual void Highlight(ScenePoint2D p) ORTHANC_OVERRIDE; 51 virtual void Highlight(ScenePoint2D p) ORTHANC_OVERRIDE;
51 virtual void ResetHighlightState() ORTHANC_OVERRIDE; 52 virtual void ResetHighlightState() ORTHANC_OVERRIDE;
53 virtual boost::shared_ptr<IFlexiblePointerTracker> CreateEditionTracker(const PointerEvent& e) ORTHANC_OVERRIDE;
54 virtual boost::shared_ptr<MeasureToolMemento> GetMemento() const ORTHANC_OVERRIDE;
55 virtual void SetMemento(boost::shared_ptr<MeasureToolMemento>) ORTHANC_OVERRIDE;
52 56
53 enum LineHighlightArea 57 enum LineHighlightArea
54 { 58 {
55 LineHighlightArea_None, 59 LineHighlightArea_None,
56 LineHighlightArea_Start, 60 LineHighlightArea_Start,
74 boost::shared_ptr<LayerHolder> layerHolder_; 78 boost::shared_ptr<LayerHolder> layerHolder_;
75 int baseLayerIndex_; 79 int baseLayerIndex_;
76 LineHighlightArea lineHighlightArea_; 80 LineHighlightArea lineHighlightArea_;
77 }; 81 };
78 82
83 class LineMeasureToolMemento : public MeasureToolMemento
84 {
85 public:
86 ScenePoint2D start_;
87 ScenePoint2D end_;
88 };
89
79 } 90 }
80 91