Mercurial > hg > orthanc-stone
diff 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 |
line wrap: on
line diff
--- a/Samples/Common/MeasureTools.cpp Tue May 14 13:49:12 2019 +0200 +++ b/Samples/Common/MeasureTools.cpp Tue May 14 13:51:00 2019 +0200 @@ -26,6 +26,12 @@ namespace OrthancStone { + + MeasureTool::~MeasureTool() + { + + } + void MeasureTool::Enable() { enabled_ = true; @@ -37,5 +43,33 @@ enabled_ = false; RefreshScene(); } + + bool MeasureTool::IsEnabled() const + { + return enabled_; + } + + OrthancStone::Scene2D& MeasureTool::GetScene() + { + return scene_; + } + + MeasureTool::MeasureTool(MessageBroker& broker, Scene2D& scene) + : IObserver(broker) + , scene_(scene) + , enabled_(true) + { + scene_.RegisterObserverCallback( + new Callable<MeasureTool, Scene2D::SceneTransformChanged> + (*this, &MeasureTool::OnSceneTransformChanged)); + } + + void MeasureTool::OnSceneTransformChanged( + const Scene2D::SceneTransformChanged& message) + { + RefreshScene(); + } + + }