comparison Samples/Common/AngleMeasureTool.h @ 645:1e9ed656318e

Merge + ongoing measure work
author Benjamin Golinvaux <bgo@osimis.io>
date Mon, 13 May 2019 15:12:56 +0200
parents
children 462a5074f914
comparison
equal deleted inserted replaced
644:f939f449482c 645:1e9ed656318e
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(Scene2D& scene)
42 : MeasureTool(scene)
43 , layersCreated(false)
44 , polylineZIndex_(-1)
45 , textZIndex_(-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 TextSceneLayer* GetTextLayer();
59 virtual void RefreshScene() ORTHANC_OVERRIDE;
60 void RemoveFromScene();
61
62 private:
63 ScenePoint2D side1End_;
64 ScenePoint2D side2End_;
65 ScenePoint2D center_;
66 bool layersCreated;
67 int polylineZIndex_;
68 int textZIndex_;
69 };
70
71 typedef boost::shared_ptr<AngleMeasureTool> AngleMeasureToolPtr;
72 }
73
74