Mercurial > hg > orthanc-stone
comparison Samples/Common/MeasureCommands.h @ 645:1e9ed656318e
Merge + ongoing measure work
author | Benjamin Golinvaux <bgo@osimis.io> |
---|---|
date | Mon, 13 May 2019 15:12:56 +0200 |
parents | f939f449482c 104c379f3f1b |
children | 462a5074f914 |
comparison
equal
deleted
inserted
replaced
644:f939f449482c | 645:1e9ed656318e |
---|---|
22 #include <Framework/Scene2D/Scene2D.h> | 22 #include <Framework/Scene2D/Scene2D.h> |
23 #include <boost/shared_ptr.hpp> | 23 #include <boost/shared_ptr.hpp> |
24 | 24 |
25 // to be moved into Stone | 25 // to be moved into Stone |
26 #include "MeasureTools.h" | 26 #include "MeasureTools.h" |
27 #include "LineMeasureTool.h" | |
28 #include "AngleMeasureTool.h" | |
27 | 29 |
28 namespace OrthancStone | 30 namespace OrthancStone |
29 { | 31 { |
32 //class LineMeasureTool; | |
33 //typedef boost::shared_ptr<LineMeasureTool> LineMeasureToolPtr; | |
34 //class AngleMeasureTool; | |
35 //typedef boost::shared_ptr<AngleMeasureTool> AngleMeasureToolPtr; | |
36 | |
30 class TrackerCommand | 37 class TrackerCommand |
31 { | 38 { |
32 public: | 39 public: |
33 TrackerCommand(Scene2D& scene) : scene_(scene) | 40 TrackerCommand(Scene2D& scene) : scene_(scene) |
34 { | 41 { |
35 | 42 |
36 } | 43 } |
37 virtual void Undo() = 0; | 44 virtual void Undo() = 0; |
38 virtual void Redo() = 0; | 45 virtual void Redo() = 0; |
39 virtual void Update(ScenePoint2D scenePos) = 0; | |
40 | |
41 Scene2D& GetScene() | 46 Scene2D& GetScene() |
42 { | 47 { |
43 return scene_; | 48 return scene_; |
44 } | 49 } |
45 | 50 |
72 { | 77 { |
73 public: | 78 public: |
74 CreateLineMeasureCommand( | 79 CreateLineMeasureCommand( |
75 Scene2D& scene, MeasureToolList& measureTools, ScenePoint2D point); | 80 Scene2D& scene, MeasureToolList& measureTools, ScenePoint2D point); |
76 | 81 |
77 void Update(ScenePoint2D scenePos) ORTHANC_OVERRIDE; | 82 // the starting position is set in the ctor |
83 void SetEnd(ScenePoint2D scenePos); | |
78 | 84 |
79 private: | 85 private: |
80 virtual MeasureToolPtr GetMeasureTool() ORTHANC_OVERRIDE | 86 virtual MeasureToolPtr GetMeasureTool() ORTHANC_OVERRIDE |
81 { | 87 { |
82 return measureTool_; | 88 return measureTool_; |
83 } | 89 } |
84 LineMeasureToolPtr measureTool_; | 90 LineMeasureToolPtr measureTool_; |
85 ScenePoint2D start_; | |
86 ScenePoint2D end_; | |
87 }; | 91 }; |
88 | 92 |
89 typedef boost::shared_ptr<CreateLineMeasureCommand> CreateLineMeasureCommandPtr; | 93 typedef boost::shared_ptr<CreateLineMeasureCommand> CreateLineMeasureCommandPtr; |
94 | |
95 class CreateAngleMeasureCommand : public CreateMeasureCommand | |
96 { | |
97 public: | |
98 /** Ctor sets end of side 1*/ | |
99 CreateAngleMeasureCommand( | |
100 Scene2D& scene, MeasureToolList& measureTools, ScenePoint2D point); | |
101 | |
102 /** This method sets center*/ | |
103 void SetCenter(ScenePoint2D scenePos); | |
104 | |
105 /** This method sets end of side 2*/ | |
106 void SetSide2End(ScenePoint2D scenePos); | |
107 | |
108 private: | |
109 virtual MeasureToolPtr GetMeasureTool() ORTHANC_OVERRIDE | |
110 { | |
111 return measureTool_; | |
112 } | |
113 AngleMeasureToolPtr measureTool_; | |
114 }; | |
115 | |
116 typedef boost::shared_ptr<CreateAngleMeasureCommand> CreateAngleMeasureCommandPtr; | |
90 } | 117 } |
91 | 118 |