Mercurial > hg > orthanc-stone
annotate Samples/Common/CreateAngleMeasureTracker.h @ 679:979963fd3725
merge
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 16 May 2019 11:20:59 +0200 |
parents | 462a5074f914 |
children |
rev | line source |
---|---|
644 | 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 | |
645
1e9ed656318e
Merge + ongoing measure work
Benjamin Golinvaux <bgo@osimis.io>
parents:
644
diff
changeset
|
23 #include "MeasureTrackers.h" |
1e9ed656318e
Merge + ongoing measure work
Benjamin Golinvaux <bgo@osimis.io>
parents:
644
diff
changeset
|
24 #include "MeasureCommands.h" |
1e9ed656318e
Merge + ongoing measure work
Benjamin Golinvaux <bgo@osimis.io>
parents:
644
diff
changeset
|
25 |
1e9ed656318e
Merge + ongoing measure work
Benjamin Golinvaux <bgo@osimis.io>
parents:
644
diff
changeset
|
26 #include <vector> |
1e9ed656318e
Merge + ongoing measure work
Benjamin Golinvaux <bgo@osimis.io>
parents:
644
diff
changeset
|
27 |
644 | 28 namespace OrthancStone |
29 { | |
645
1e9ed656318e
Merge + ongoing measure work
Benjamin Golinvaux <bgo@osimis.io>
parents:
644
diff
changeset
|
30 class CreateAngleMeasureTracker : public CreateMeasureTracker |
1e9ed656318e
Merge + ongoing measure work
Benjamin Golinvaux <bgo@osimis.io>
parents:
644
diff
changeset
|
31 { |
1e9ed656318e
Merge + ongoing measure work
Benjamin Golinvaux <bgo@osimis.io>
parents:
644
diff
changeset
|
32 public: |
1e9ed656318e
Merge + ongoing measure work
Benjamin Golinvaux <bgo@osimis.io>
parents:
644
diff
changeset
|
33 /** |
1e9ed656318e
Merge + ongoing measure work
Benjamin Golinvaux <bgo@osimis.io>
parents:
644
diff
changeset
|
34 When you create this tracker, you need to supply it with the undo stack |
1e9ed656318e
Merge + ongoing measure work
Benjamin Golinvaux <bgo@osimis.io>
parents:
644
diff
changeset
|
35 where it will store the commands that perform the actual measure tool |
1e9ed656318e
Merge + ongoing measure work
Benjamin Golinvaux <bgo@osimis.io>
parents:
644
diff
changeset
|
36 creation and modification. |
1e9ed656318e
Merge + ongoing measure work
Benjamin Golinvaux <bgo@osimis.io>
parents:
644
diff
changeset
|
37 In turn, a container for these commands to store the actual measuring |
1e9ed656318e
Merge + ongoing measure work
Benjamin Golinvaux <bgo@osimis.io>
parents:
644
diff
changeset
|
38 must be supplied, too |
1e9ed656318e
Merge + ongoing measure work
Benjamin Golinvaux <bgo@osimis.io>
parents:
644
diff
changeset
|
39 */ |
1e9ed656318e
Merge + ongoing measure work
Benjamin Golinvaux <bgo@osimis.io>
parents:
644
diff
changeset
|
40 CreateAngleMeasureTracker( |
654
462a5074f914
Turned the scene into an observable to be able to dynamically react to
Benjamin Golinvaux <bgo@osimis.io>
parents:
645
diff
changeset
|
41 MessageBroker& broker, |
645
1e9ed656318e
Merge + ongoing measure work
Benjamin Golinvaux <bgo@osimis.io>
parents:
644
diff
changeset
|
42 Scene2D& scene, |
1e9ed656318e
Merge + ongoing measure work
Benjamin Golinvaux <bgo@osimis.io>
parents:
644
diff
changeset
|
43 std::vector<TrackerCommandPtr>& undoStack, |
1e9ed656318e
Merge + ongoing measure work
Benjamin Golinvaux <bgo@osimis.io>
parents:
644
diff
changeset
|
44 std::vector<MeasureToolPtr>& measureTools, |
1e9ed656318e
Merge + ongoing measure work
Benjamin Golinvaux <bgo@osimis.io>
parents:
644
diff
changeset
|
45 const PointerEvent& e); |
1e9ed656318e
Merge + ongoing measure work
Benjamin Golinvaux <bgo@osimis.io>
parents:
644
diff
changeset
|
46 |
1e9ed656318e
Merge + ongoing measure work
Benjamin Golinvaux <bgo@osimis.io>
parents:
644
diff
changeset
|
47 ~CreateAngleMeasureTracker(); |
1e9ed656318e
Merge + ongoing measure work
Benjamin Golinvaux <bgo@osimis.io>
parents:
644
diff
changeset
|
48 |
1e9ed656318e
Merge + ongoing measure work
Benjamin Golinvaux <bgo@osimis.io>
parents:
644
diff
changeset
|
49 virtual void PointerMove(const PointerEvent& e) ORTHANC_OVERRIDE; |
1e9ed656318e
Merge + ongoing measure work
Benjamin Golinvaux <bgo@osimis.io>
parents:
644
diff
changeset
|
50 virtual void PointerUp(const PointerEvent& e) ORTHANC_OVERRIDE; |
1e9ed656318e
Merge + ongoing measure work
Benjamin Golinvaux <bgo@osimis.io>
parents:
644
diff
changeset
|
51 virtual void PointerDown(const PointerEvent& e) ORTHANC_OVERRIDE; |
1e9ed656318e
Merge + ongoing measure work
Benjamin Golinvaux <bgo@osimis.io>
parents:
644
diff
changeset
|
52 |
1e9ed656318e
Merge + ongoing measure work
Benjamin Golinvaux <bgo@osimis.io>
parents:
644
diff
changeset
|
53 private: |
1e9ed656318e
Merge + ongoing measure work
Benjamin Golinvaux <bgo@osimis.io>
parents:
644
diff
changeset
|
54 CreateAngleMeasureCommandPtr GetCommand(); |
1e9ed656318e
Merge + ongoing measure work
Benjamin Golinvaux <bgo@osimis.io>
parents:
644
diff
changeset
|
55 |
1e9ed656318e
Merge + ongoing measure work
Benjamin Golinvaux <bgo@osimis.io>
parents:
644
diff
changeset
|
56 enum State |
1e9ed656318e
Merge + ongoing measure work
Benjamin Golinvaux <bgo@osimis.io>
parents:
644
diff
changeset
|
57 { |
1e9ed656318e
Merge + ongoing measure work
Benjamin Golinvaux <bgo@osimis.io>
parents:
644
diff
changeset
|
58 CreatingSide1, |
1e9ed656318e
Merge + ongoing measure work
Benjamin Golinvaux <bgo@osimis.io>
parents:
644
diff
changeset
|
59 CreatingSide2, |
1e9ed656318e
Merge + ongoing measure work
Benjamin Golinvaux <bgo@osimis.io>
parents:
644
diff
changeset
|
60 Finished // just for debug |
1e9ed656318e
Merge + ongoing measure work
Benjamin Golinvaux <bgo@osimis.io>
parents:
644
diff
changeset
|
61 }; |
1e9ed656318e
Merge + ongoing measure work
Benjamin Golinvaux <bgo@osimis.io>
parents:
644
diff
changeset
|
62 State state_; |
1e9ed656318e
Merge + ongoing measure work
Benjamin Golinvaux <bgo@osimis.io>
parents:
644
diff
changeset
|
63 |
1e9ed656318e
Merge + ongoing measure work
Benjamin Golinvaux <bgo@osimis.io>
parents:
644
diff
changeset
|
64 }; |
644 | 65 } |