comparison Framework/Scene2DViewport/MeasureTools.cpp @ 703:d4d6c5b502b5

Merging refactor-viewport-controller
author Benjamin Golinvaux <bgo@osimis.io>
date Sun, 19 May 2019 16:31:56 +0200
parents 059e1fd05fd6
children 28b9e3a54200
comparison
equal deleted inserted replaced
696:75deb0acd632 703:d4d6c5b502b5
1 /**
2 * Stone of Orthanc
3 * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics
4 * Department, University Hospital of Liege, Belgium
5 * Copyright (C) 2017-2019 Osimis S.A., Belgium
6 *
7 * This program is free software: you can redistribute it and/or
8 * modify it under the terms of the GNU Affero General Public License
9 * as published by the Free Software Foundation, either version 3 of
10 * the License, or (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Affero General Public License for more details.
16 *
17 * You should have received a copy of the GNU Affero General Public License
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 **/
20
21 #include "MeasureTools.h"
22
23 #include <Core/Logging.h>
24 #include <Core/Enumerations.h>
25 #include <Core/OrthancException.h>
26
27 #include <boost/math/constants/constants.hpp>
28
29 using namespace Orthanc;
30
31 namespace OrthancStone
32 {
33
34 MeasureTool::~MeasureTool()
35 {
36
37 }
38
39 void MeasureTool::Enable()
40 {
41 enabled_ = true;
42 RefreshScene();
43 }
44
45 void MeasureTool::Disable()
46 {
47 enabled_ = false;
48 RefreshScene();
49 }
50
51 bool MeasureTool::IsEnabled() const
52 {
53 return enabled_;
54 }
55
56
57 ViewportControllerPtr MeasureTool::GetController()
58 {
59 ViewportControllerPtr controller = controllerW_.lock();
60 if (!controller)
61 throw OrthancException(ErrorCode_InternalError,
62 "Using dead ViewportController object!");
63 return controller;
64 }
65
66 OrthancStone::Scene2DPtr MeasureTool::GetScene()
67 {
68 return GetController()->GetScene();
69 }
70
71 MeasureTool::MeasureTool(MessageBroker& broker,
72 ViewportControllerWPtr controllerW)
73 : IObserver(broker)
74 , controllerW_(controllerW)
75 , enabled_(true)
76 {
77 GetController()->RegisterObserverCallback(
78 new Callable<MeasureTool, ViewportController::SceneTransformChanged>
79 (*this, &MeasureTool::OnSceneTransformChanged));
80 }
81
82 void MeasureTool::OnSceneTransformChanged(
83 const ViewportController::SceneTransformChanged& message)
84 {
85 RefreshScene();
86 }
87
88
89 }
90