comparison Samples/Common/MeasureTools.cpp @ 654:462a5074f914

Turned the scene into an observable to be able to dynamically react to scene to canvas transform changes --> now the handles and angle measure adornments are immune to zoom changes
author Benjamin Golinvaux <bgo@osimis.io>
date Tue, 14 May 2019 13:51:00 +0200
parents 1e9ed656318e
children
comparison
equal deleted inserted replaced
653:4eccf698e52f 654:462a5074f914
24 24
25 #include <boost/math/constants/constants.hpp> 25 #include <boost/math/constants/constants.hpp>
26 26
27 namespace OrthancStone 27 namespace OrthancStone
28 { 28 {
29
30 MeasureTool::~MeasureTool()
31 {
32
33 }
34
29 void MeasureTool::Enable() 35 void MeasureTool::Enable()
30 { 36 {
31 enabled_ = true; 37 enabled_ = true;
32 RefreshScene(); 38 RefreshScene();
33 } 39 }
35 void MeasureTool::Disable() 41 void MeasureTool::Disable()
36 { 42 {
37 enabled_ = false; 43 enabled_ = false;
38 RefreshScene(); 44 RefreshScene();
39 } 45 }
46
47 bool MeasureTool::IsEnabled() const
48 {
49 return enabled_;
50 }
51
52 OrthancStone::Scene2D& MeasureTool::GetScene()
53 {
54 return scene_;
55 }
56
57 MeasureTool::MeasureTool(MessageBroker& broker, Scene2D& scene)
58 : IObserver(broker)
59 , scene_(scene)
60 , enabled_(true)
61 {
62 scene_.RegisterObserverCallback(
63 new Callable<MeasureTool, Scene2D::SceneTransformChanged>
64 (*this, &MeasureTool::OnSceneTransformChanged));
65 }
66
67 void MeasureTool::OnSceneTransformChanged(
68 const Scene2D::SceneTransformChanged& message)
69 {
70 RefreshScene();
71 }
72
73
40 } 74 }
41 75