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