comparison Framework/Scene2DViewport/MeasureTools.cpp @ 728:8190213e2279 am-dev

Merged default into am-dev
author Alain Mazy <am@osimis.io>
date Tue, 21 May 2019 13:25:58 +0200
parents 28b9e3a54200
children 8e31b174ab26
comparison
equal deleted inserted replaced
690:f185cfcb72a0 728:8190213e2279
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
83 bool MeasureTool::IsSceneAlive() const
84 {
85 ViewportControllerPtr controller = controllerW_.lock();
86 return (controller.get() != NULL);
87 }
88
89 void MeasureTool::OnSceneTransformChanged(
90 const ViewportController::SceneTransformChanged& message)
91 {
92 RefreshScene();
93 }
94
95
96 }
97