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