comparison Framework/Scene2DViewport/MeasureTools.cpp @ 698:8b6adfb62a2f refactor-viewport-controller

Code is broken -- stashing ongoing work in a branch
author Benjamin Golinvaux <bgo@osimis.io>
date Wed, 15 May 2019 16:56:17 +0200
parents
children 059e1fd05fd6
comparison
equal deleted inserted replaced
660:cb3b76d16234 698:8b6adfb62a2f
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>
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 OrthancStone::Scene2DPtr MeasureTool::GetScene()
57 {
58 Scene2DPtr scene = scene_.lock();
59 if (!scene)
60 throw OrthancException(ErrorCode_InternalError, "Using dead object!");
61 return scene;
62 }
63
64 MeasureTool::MeasureTool(MessageBroker& broker, Scene2DWPtr sceneW)
65 : IObserver(broker)
66 , scene_(sceneW)
67 , enabled_(true)
68 {
69 GetScene()->RegisterObserverCallback(
70 new Callable<MeasureTool, Scene2D::SceneTransformChanged>
71 (*this, &MeasureTool::OnSceneTransformChanged));
72 }
73
74 void MeasureTool::OnSceneTransformChanged(
75 const Scene2D::SceneTransformChanged& message)
76 {
77 RefreshScene();
78 }
79
80
81 }
82