Mercurial > hg > orthanc-stone
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 |