comparison Framework/Scene2DViewport/AngleMeasureTool.h @ 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 #pragma once
22
23 #include "MeasureTools.h"
24
25 #include <Framework/Scene2D/Scene2D.h>
26 #include <Framework/Scene2D/ScenePoint2D.h>
27 #include <Framework/Scene2D/PolylineSceneLayer.h>
28 #include <Framework/Scene2D/TextSceneLayer.h>
29
30 #include <boost/shared_ptr.hpp>
31 #include <boost/weak_ptr.hpp>
32
33 #include <vector>
34 #include <cmath>
35
36 namespace OrthancStone
37 {
38 class AngleMeasureTool : public MeasureTool
39 {
40 public:
41 AngleMeasureTool(MessageBroker& broker, Scene2DWPtr sceneW)
42 : MeasureTool(broker, sceneW)
43 , layersCreated(false)
44 , polylineZIndex_(-1)
45 , textBaseZIndex_(-1)
46 {
47
48 }
49
50 ~AngleMeasureTool();
51
52 void SetSide1End(ScenePoint2D start);
53 void SetCenter(ScenePoint2D start);
54 void SetSide2End(ScenePoint2D start);
55
56 private:
57 PolylineSceneLayer* GetPolylineLayer();
58
59 // 0 --> 3 are for the text background (outline)
60 // 4 is for the actual text
61 TextSceneLayer* GetTextLayer(int index);
62 virtual void RefreshScene() ORTHANC_OVERRIDE;
63 void RemoveFromScene();
64
65 private:
66 ScenePoint2D side1End_;
67 ScenePoint2D side2End_;
68 ScenePoint2D center_;
69 bool layersCreated;
70 int polylineZIndex_;
71 int textBaseZIndex_;
72 };
73
74 }
75
76