Mercurial > hg > orthanc-stone
annotate Framework/Deprecated/Radiography/RadiographyLayer.h @ 1459:5a6c76797b60
removed empty files
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 11 Jun 2020 21:26:34 +0200 |
parents | c5403d52078c |
children |
rev | line source |
---|---|
410
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1 /** |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
2 * Stone of Orthanc |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
3 * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
4 * Department, University Hospital of Liege, Belgium |
1270
2d8ab34c8c91
upgrade to year 2020
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1259
diff
changeset
|
5 * Copyright (C) 2017-2020 Osimis S.A., Belgium |
410
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
6 * |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
7 * This program is free software: you can redistribute it and/or |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
8 * modify it under the terms of the GNU Affero General Public License |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
9 * as published by the Free Software Foundation, either version 3 of |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
10 * the License, or (at your option) any later version. |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
11 * |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
12 * This program is distributed in the hope that it will be useful, but |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
13 * WITHOUT ANY WARRANTY; without even the implied warranty of |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
15 * Affero General Public License for more details. |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
16 * |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
17 * You should have received a copy of the GNU Affero General Public License |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
18 * along with this program. If not, see <http://www.gnu.org/licenses/>. |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
19 **/ |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
20 |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
21 |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
22 #pragma once |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
23 |
1321
d4e6cd35107b
Clarified GetExtent/GetSceneExtent
Alain Mazy <alain@mazy.be>
parents:
1273
diff
changeset
|
24 #include <algorithm> |
d4e6cd35107b
Clarified GetExtent/GetSceneExtent
Alain Mazy <alain@mazy.be>
parents:
1273
diff
changeset
|
25 |
410
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
26 #include "../Toolbox/AffineTransform2D.h" |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
27 #include "../Toolbox/Extent2D.h" |
807
c237e0625065
deprecating CairoFont
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
739
diff
changeset
|
28 #include "../Wrappers/CairoContext.h" |
503
77e0eb83ff63
layers are now Observable and emitting LayerEdited messages
amazy
parents:
480
diff
changeset
|
29 #include "../Messages/IMessage.h" |
77e0eb83ff63
layers are now Observable and emitting LayerEdited messages
amazy
parents:
480
diff
changeset
|
30 #include "../Messages/IObservable.h" |
410
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
31 |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
32 namespace OrthancStone |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
33 { |
503
77e0eb83ff63
layers are now Observable and emitting LayerEdited messages
amazy
parents:
480
diff
changeset
|
34 class RadiographyScene; |
77e0eb83ff63
layers are now Observable and emitting LayerEdited messages
amazy
parents:
480
diff
changeset
|
35 |
739
be9c1530d40a
deprecating enum SliceImageQuality
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
658
diff
changeset
|
36 enum RadiographyControlPointType |
be9c1530d40a
deprecating enum SliceImageQuality
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
658
diff
changeset
|
37 { |
be9c1530d40a
deprecating enum SliceImageQuality
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
658
diff
changeset
|
38 RadiographyControlPointType_TopLeftCorner = 0, |
be9c1530d40a
deprecating enum SliceImageQuality
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
658
diff
changeset
|
39 RadiographyControlPointType_TopRightCorner = 1, |
be9c1530d40a
deprecating enum SliceImageQuality
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
658
diff
changeset
|
40 RadiographyControlPointType_BottomRightCorner = 2, |
be9c1530d40a
deprecating enum SliceImageQuality
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
658
diff
changeset
|
41 RadiographyControlPointType_BottomLeftCorner = 3 |
be9c1530d40a
deprecating enum SliceImageQuality
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
658
diff
changeset
|
42 }; |
be9c1530d40a
deprecating enum SliceImageQuality
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
658
diff
changeset
|
43 |
be9c1530d40a
deprecating enum SliceImageQuality
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
658
diff
changeset
|
44 enum RadiographyPhotometricDisplayMode |
be9c1530d40a
deprecating enum SliceImageQuality
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
658
diff
changeset
|
45 { |
be9c1530d40a
deprecating enum SliceImageQuality
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
658
diff
changeset
|
46 RadiographyPhotometricDisplayMode_Default, |
be9c1530d40a
deprecating enum SliceImageQuality
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
658
diff
changeset
|
47 |
be9c1530d40a
deprecating enum SliceImageQuality
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
658
diff
changeset
|
48 RadiographyPhotometricDisplayMode_Monochrome1, |
be9c1530d40a
deprecating enum SliceImageQuality
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
658
diff
changeset
|
49 RadiographyPhotometricDisplayMode_Monochrome2 |
be9c1530d40a
deprecating enum SliceImageQuality
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
658
diff
changeset
|
50 }; |
be9c1530d40a
deprecating enum SliceImageQuality
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
658
diff
changeset
|
51 |
be9c1530d40a
deprecating enum SliceImageQuality
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
658
diff
changeset
|
52 |
476
a95090305dd4
Introduced ControlPoint instead of Corner in the trackers and layers + drawing mask from the ControlPoints
am@osimis.io
parents:
475
diff
changeset
|
53 struct ControlPoint |
a95090305dd4
Introduced ControlPoint instead of Corner in the trackers and layers + drawing mask from the ControlPoints
am@osimis.io
parents:
475
diff
changeset
|
54 { |
a95090305dd4
Introduced ControlPoint instead of Corner in the trackers and layers + drawing mask from the ControlPoints
am@osimis.io
parents:
475
diff
changeset
|
55 double x; |
a95090305dd4
Introduced ControlPoint instead of Corner in the trackers and layers + drawing mask from the ControlPoints
am@osimis.io
parents:
475
diff
changeset
|
56 double y; |
a95090305dd4
Introduced ControlPoint instead of Corner in the trackers and layers + drawing mask from the ControlPoints
am@osimis.io
parents:
475
diff
changeset
|
57 size_t index; |
a95090305dd4
Introduced ControlPoint instead of Corner in the trackers and layers + drawing mask from the ControlPoints
am@osimis.io
parents:
475
diff
changeset
|
58 |
a95090305dd4
Introduced ControlPoint instead of Corner in the trackers and layers + drawing mask from the ControlPoints
am@osimis.io
parents:
475
diff
changeset
|
59 ControlPoint(double x, double y, size_t index) |
a95090305dd4
Introduced ControlPoint instead of Corner in the trackers and layers + drawing mask from the ControlPoints
am@osimis.io
parents:
475
diff
changeset
|
60 : x(x), |
a95090305dd4
Introduced ControlPoint instead of Corner in the trackers and layers + drawing mask from the ControlPoints
am@osimis.io
parents:
475
diff
changeset
|
61 y(y), |
a95090305dd4
Introduced ControlPoint instead of Corner in the trackers and layers + drawing mask from the ControlPoints
am@osimis.io
parents:
475
diff
changeset
|
62 index(index) |
a95090305dd4
Introduced ControlPoint instead of Corner in the trackers and layers + drawing mask from the ControlPoints
am@osimis.io
parents:
475
diff
changeset
|
63 {} |
a95090305dd4
Introduced ControlPoint instead of Corner in the trackers and layers + drawing mask from the ControlPoints
am@osimis.io
parents:
475
diff
changeset
|
64 |
a95090305dd4
Introduced ControlPoint instead of Corner in the trackers and layers + drawing mask from the ControlPoints
am@osimis.io
parents:
475
diff
changeset
|
65 ControlPoint() |
a95090305dd4
Introduced ControlPoint instead of Corner in the trackers and layers + drawing mask from the ControlPoints
am@osimis.io
parents:
475
diff
changeset
|
66 : x(0), |
a95090305dd4
Introduced ControlPoint instead of Corner in the trackers and layers + drawing mask from the ControlPoints
am@osimis.io
parents:
475
diff
changeset
|
67 y(0), |
a95090305dd4
Introduced ControlPoint instead of Corner in the trackers and layers + drawing mask from the ControlPoints
am@osimis.io
parents:
475
diff
changeset
|
68 index(std::numeric_limits<size_t>::max()) |
a95090305dd4
Introduced ControlPoint instead of Corner in the trackers and layers + drawing mask from the ControlPoints
am@osimis.io
parents:
475
diff
changeset
|
69 {} |
a95090305dd4
Introduced ControlPoint instead of Corner in the trackers and layers + drawing mask from the ControlPoints
am@osimis.io
parents:
475
diff
changeset
|
70 }; |
a95090305dd4
Introduced ControlPoint instead of Corner in the trackers and layers + drawing mask from the ControlPoints
am@osimis.io
parents:
475
diff
changeset
|
71 |
503
77e0eb83ff63
layers are now Observable and emitting LayerEdited messages
amazy
parents:
480
diff
changeset
|
72 class RadiographyLayer : public IObservable |
410
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
73 { |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
74 friend class RadiographyScene; |
432
4eb96c6b4e96
improved handling of MONOCHROME1, background and invertion
am@osimis.io
parents:
430
diff
changeset
|
75 |
430 | 76 public: |
643
f0008c55e5f7
getting rid of MessageType enumeration
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
503
diff
changeset
|
77 ORTHANC_STONE_DEFINE_ORIGIN_MESSAGE(__FILE__, __LINE__, LayerEditedMessage, RadiographyLayer); |
503
77e0eb83ff63
layers are now Observable and emitting LayerEdited messages
amazy
parents:
480
diff
changeset
|
78 |
430 | 79 class Geometry |
80 { | |
81 bool hasCrop_; | |
82 unsigned int cropX_; | |
83 unsigned int cropY_; | |
84 unsigned int cropWidth_; | |
85 unsigned int cropHeight_; | |
629 | 86 bool flipVertical_; |
87 bool flipHorizontal_; | |
430 | 88 double panX_; |
89 double panY_; | |
90 double angle_; | |
91 bool resizeable_; | |
92 double pixelSpacingX_; | |
93 double pixelSpacingY_; | |
94 | |
95 public: | |
96 Geometry(); | |
97 | |
98 void ResetCrop() | |
99 { | |
100 hasCrop_ = false; | |
101 } | |
102 | |
103 void SetCrop(unsigned int x, | |
104 unsigned int y, | |
105 unsigned int width, | |
106 unsigned int height) | |
107 { | |
436
04711a2e12cd
fix crop + export photometric interpretation correctly
am@osimis.io
parents:
432
diff
changeset
|
108 hasCrop_ = true; |
430 | 109 cropX_ = x; |
110 cropY_ = y; | |
111 cropWidth_ = width; | |
112 cropHeight_ = height; | |
113 } | |
114 | |
115 bool HasCrop() const | |
116 { | |
117 return hasCrop_; | |
118 } | |
119 | |
120 void GetCrop(unsigned int& x, | |
121 unsigned int& y, | |
122 unsigned int& width, | |
123 unsigned int& height) const; | |
124 | |
125 void SetAngle(double angle) | |
126 { | |
127 angle_ = angle; | |
128 } | |
129 | |
130 double GetAngle() const | |
131 { | |
132 return angle_; | |
133 } | |
134 | |
135 void SetPan(double x, | |
136 double y) | |
137 { | |
138 panX_ = x; | |
139 panY_ = y; | |
140 } | |
141 | |
142 double GetPanX() const | |
143 { | |
144 return panX_; | |
145 } | |
146 | |
147 double GetPanY() const | |
148 { | |
149 return panY_; | |
150 } | |
151 | |
152 bool IsResizeable() const | |
153 { | |
154 return resizeable_; | |
155 } | |
156 | |
157 void SetResizeable(bool resizeable) | |
158 { | |
159 resizeable_ = resizeable; | |
160 } | |
161 | |
162 void SetPixelSpacing(double x, | |
163 double y) | |
164 { | |
165 pixelSpacingX_ = x; | |
166 pixelSpacingY_ = y; | |
167 } | |
168 | |
169 double GetPixelSpacingX() const | |
170 { | |
171 return pixelSpacingX_; | |
172 } | |
173 | |
174 double GetPixelSpacingY() const | |
175 { | |
176 return pixelSpacingY_; | |
177 } | |
178 | |
629 | 179 void SetFlipVertical(bool flip) // mirrors image around an horizontal axis (note: flip is applied before the rotation !) |
620 | 180 { |
629 | 181 flipVertical_ = flip; |
620 | 182 } |
183 | |
629 | 184 void SetFlipHorizontal(bool flip) // mirrors image around a vertical axis (note: flip is applied before the rotation !) |
620 | 185 { |
629 | 186 flipHorizontal_ = flip; |
620 | 187 } |
188 | |
629 | 189 bool GetFlipVertical() const |
620 | 190 { |
629 | 191 return flipVertical_; |
620 | 192 } |
193 | |
630 | 194 bool GetFlipHorizontal() const |
620 | 195 { |
629 | 196 return flipHorizontal_; |
620 | 197 } |
198 | |
199 double GetScalingX() const | |
200 { | |
629 | 201 return (flipHorizontal_ ? - pixelSpacingX_: pixelSpacingX_); |
620 | 202 } |
203 | |
204 double GetScalingY() const | |
205 { | |
629 | 206 return (flipVertical_ ? - pixelSpacingY_: pixelSpacingY_); |
620 | 207 } |
430 | 208 }; |
209 | |
410
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
210 private: |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
211 size_t index_; |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
212 bool hasSize_; |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
213 unsigned int width_; |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
214 unsigned int height_; |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
215 AffineTransform2D transform_; |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
216 AffineTransform2D transformInverse_; |
430 | 217 Geometry geometry_; |
739
be9c1530d40a
deprecating enum SliceImageQuality
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
658
diff
changeset
|
218 RadiographyPhotometricDisplayMode prefferedPhotometricDisplayMode_; |
503
77e0eb83ff63
layers are now Observable and emitting LayerEdited messages
amazy
parents:
480
diff
changeset
|
219 const RadiographyScene& scene_; |
410
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
220 |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
221 protected: |
739
be9c1530d40a
deprecating enum SliceImageQuality
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
658
diff
changeset
|
222 void SetPreferredPhotomotricDisplayMode(RadiographyPhotometricDisplayMode prefferedPhotometricDisplayMode); |
432
4eb96c6b4e96
improved handling of MONOCHROME1, background and invertion
am@osimis.io
parents:
430
diff
changeset
|
223 |
410
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
224 private: |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
225 void UpdateTransform(); |
476
a95090305dd4
Introduced ControlPoint instead of Corner in the trackers and layers + drawing mask from the ControlPoints
am@osimis.io
parents:
475
diff
changeset
|
226 |
410
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
227 void AddToExtent(Extent2D& extent, |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
228 double x, |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
229 double y) const; |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
230 |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
231 void SetIndex(size_t index) |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
232 { |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
233 index_ = index; |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
234 } |
476
a95090305dd4
Introduced ControlPoint instead of Corner in the trackers and layers + drawing mask from the ControlPoints
am@osimis.io
parents:
475
diff
changeset
|
235 |
410
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
236 bool Contains(double x, |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
237 double y) const; |
476
a95090305dd4
Introduced ControlPoint instead of Corner in the trackers and layers + drawing mask from the ControlPoints
am@osimis.io
parents:
475
diff
changeset
|
238 |
410
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
239 void DrawBorders(CairoContext& context, |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
240 double zoom); |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
241 |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
242 public: |
1066
b537002f83a9
removing broker from deprecated classes
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
876
diff
changeset
|
243 RadiographyLayer(const RadiographyScene& scene); |
410
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
244 |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
245 virtual ~RadiographyLayer() |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
246 { |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
247 } |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
248 |
1259
69177b10e2b9
various fixes for RadiographyScene: support text layers outside the dicom layer, fix background in this case + extract dicom from rendered scene
Alain Mazy <alain@mazy.be>
parents:
1196
diff
changeset
|
249 virtual const AffineTransform2D& GetTransform() const |
69177b10e2b9
various fixes for RadiographyScene: support text layers outside the dicom layer, fix background in this case + extract dicom from rendered scene
Alain Mazy <alain@mazy.be>
parents:
1196
diff
changeset
|
250 { |
69177b10e2b9
various fixes for RadiographyScene: support text layers outside the dicom layer, fix background in this case + extract dicom from rendered scene
Alain Mazy <alain@mazy.be>
parents:
1196
diff
changeset
|
251 return transform_; |
69177b10e2b9
various fixes for RadiographyScene: support text layers outside the dicom layer, fix background in this case + extract dicom from rendered scene
Alain Mazy <alain@mazy.be>
parents:
1196
diff
changeset
|
252 } |
69177b10e2b9
various fixes for RadiographyScene: support text layers outside the dicom layer, fix background in this case + extract dicom from rendered scene
Alain Mazy <alain@mazy.be>
parents:
1196
diff
changeset
|
253 |
69177b10e2b9
various fixes for RadiographyScene: support text layers outside the dicom layer, fix background in this case + extract dicom from rendered scene
Alain Mazy <alain@mazy.be>
parents:
1196
diff
changeset
|
254 virtual const AffineTransform2D& GetTransformInverse() const |
69177b10e2b9
various fixes for RadiographyScene: support text layers outside the dicom layer, fix background in this case + extract dicom from rendered scene
Alain Mazy <alain@mazy.be>
parents:
1196
diff
changeset
|
255 { |
69177b10e2b9
various fixes for RadiographyScene: support text layers outside the dicom layer, fix background in this case + extract dicom from rendered scene
Alain Mazy <alain@mazy.be>
parents:
1196
diff
changeset
|
256 return transformInverse_; |
69177b10e2b9
various fixes for RadiographyScene: support text layers outside the dicom layer, fix background in this case + extract dicom from rendered scene
Alain Mazy <alain@mazy.be>
parents:
1196
diff
changeset
|
257 } |
69177b10e2b9
various fixes for RadiographyScene: support text layers outside the dicom layer, fix background in this case + extract dicom from rendered scene
Alain Mazy <alain@mazy.be>
parents:
1196
diff
changeset
|
258 |
410
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
259 size_t GetIndex() const |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
260 { |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
261 return index_; |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
262 } |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
263 |
503
77e0eb83ff63
layers are now Observable and emitting LayerEdited messages
amazy
parents:
480
diff
changeset
|
264 const RadiographyScene& GetScene() const |
77e0eb83ff63
layers are now Observable and emitting LayerEdited messages
amazy
parents:
480
diff
changeset
|
265 { |
77e0eb83ff63
layers are now Observable and emitting LayerEdited messages
amazy
parents:
480
diff
changeset
|
266 return scene_; |
77e0eb83ff63
layers are now Observable and emitting LayerEdited messages
amazy
parents:
480
diff
changeset
|
267 } |
77e0eb83ff63
layers are now Observable and emitting LayerEdited messages
amazy
parents:
480
diff
changeset
|
268 |
430 | 269 const Geometry& GetGeometry() const |
410
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
270 { |
430 | 271 return geometry_; |
410
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
272 } |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
273 |
430 | 274 void SetGeometry(const Geometry& geometry); |
275 | |
276 void ResetCrop(); | |
277 | |
1321
d4e6cd35107b
Clarified GetExtent/GetSceneExtent
Alain Mazy <alain@mazy.be>
parents:
1273
diff
changeset
|
278 void SetCrop(unsigned int x, // those are pixel coordinates/size |
410
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
279 unsigned int y, |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
280 unsigned int width, |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
281 unsigned int height); |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
282 |
1321
d4e6cd35107b
Clarified GetExtent/GetSceneExtent
Alain Mazy <alain@mazy.be>
parents:
1273
diff
changeset
|
283 void SetCrop(const Extent2D& sceneExtent) |
d4e6cd35107b
Clarified GetExtent/GetSceneExtent
Alain Mazy <alain@mazy.be>
parents:
1273
diff
changeset
|
284 { |
d4e6cd35107b
Clarified GetExtent/GetSceneExtent
Alain Mazy <alain@mazy.be>
parents:
1273
diff
changeset
|
285 Extent2D imageCrop; |
d4e6cd35107b
Clarified GetExtent/GetSceneExtent
Alain Mazy <alain@mazy.be>
parents:
1273
diff
changeset
|
286 |
d4e6cd35107b
Clarified GetExtent/GetSceneExtent
Alain Mazy <alain@mazy.be>
parents:
1273
diff
changeset
|
287 { |
d4e6cd35107b
Clarified GetExtent/GetSceneExtent
Alain Mazy <alain@mazy.be>
parents:
1273
diff
changeset
|
288 double x = sceneExtent.GetX1(); |
d4e6cd35107b
Clarified GetExtent/GetSceneExtent
Alain Mazy <alain@mazy.be>
parents:
1273
diff
changeset
|
289 double y = sceneExtent.GetY1(); |
d4e6cd35107b
Clarified GetExtent/GetSceneExtent
Alain Mazy <alain@mazy.be>
parents:
1273
diff
changeset
|
290 GetTransformInverse().Apply(x, y); |
d4e6cd35107b
Clarified GetExtent/GetSceneExtent
Alain Mazy <alain@mazy.be>
parents:
1273
diff
changeset
|
291 imageCrop.AddPoint(x, y); |
d4e6cd35107b
Clarified GetExtent/GetSceneExtent
Alain Mazy <alain@mazy.be>
parents:
1273
diff
changeset
|
292 } |
d4e6cd35107b
Clarified GetExtent/GetSceneExtent
Alain Mazy <alain@mazy.be>
parents:
1273
diff
changeset
|
293 |
d4e6cd35107b
Clarified GetExtent/GetSceneExtent
Alain Mazy <alain@mazy.be>
parents:
1273
diff
changeset
|
294 { |
d4e6cd35107b
Clarified GetExtent/GetSceneExtent
Alain Mazy <alain@mazy.be>
parents:
1273
diff
changeset
|
295 double x = sceneExtent.GetX2(); |
d4e6cd35107b
Clarified GetExtent/GetSceneExtent
Alain Mazy <alain@mazy.be>
parents:
1273
diff
changeset
|
296 double y = sceneExtent.GetY2(); |
d4e6cd35107b
Clarified GetExtent/GetSceneExtent
Alain Mazy <alain@mazy.be>
parents:
1273
diff
changeset
|
297 GetTransformInverse().Apply(x, y); |
d4e6cd35107b
Clarified GetExtent/GetSceneExtent
Alain Mazy <alain@mazy.be>
parents:
1273
diff
changeset
|
298 imageCrop.AddPoint(x, y); |
d4e6cd35107b
Clarified GetExtent/GetSceneExtent
Alain Mazy <alain@mazy.be>
parents:
1273
diff
changeset
|
299 } |
d4e6cd35107b
Clarified GetExtent/GetSceneExtent
Alain Mazy <alain@mazy.be>
parents:
1273
diff
changeset
|
300 |
d4e6cd35107b
Clarified GetExtent/GetSceneExtent
Alain Mazy <alain@mazy.be>
parents:
1273
diff
changeset
|
301 SetCrop(static_cast<unsigned int>(std::max(0.0, std::floor(imageCrop.GetX1()))), |
d4e6cd35107b
Clarified GetExtent/GetSceneExtent
Alain Mazy <alain@mazy.be>
parents:
1273
diff
changeset
|
302 static_cast<unsigned int>(std::max(0.0, std::floor(imageCrop.GetY1()))), |
d4e6cd35107b
Clarified GetExtent/GetSceneExtent
Alain Mazy <alain@mazy.be>
parents:
1273
diff
changeset
|
303 std::min(width_, static_cast<unsigned int>(std::ceil(imageCrop.GetWidth()))), |
d4e6cd35107b
Clarified GetExtent/GetSceneExtent
Alain Mazy <alain@mazy.be>
parents:
1273
diff
changeset
|
304 std::min(height_, static_cast<unsigned int>(std::ceil(imageCrop.GetHeight()))) |
d4e6cd35107b
Clarified GetExtent/GetSceneExtent
Alain Mazy <alain@mazy.be>
parents:
1273
diff
changeset
|
305 ); |
d4e6cd35107b
Clarified GetExtent/GetSceneExtent
Alain Mazy <alain@mazy.be>
parents:
1273
diff
changeset
|
306 } |
d4e6cd35107b
Clarified GetExtent/GetSceneExtent
Alain Mazy <alain@mazy.be>
parents:
1273
diff
changeset
|
307 |
d4e6cd35107b
Clarified GetExtent/GetSceneExtent
Alain Mazy <alain@mazy.be>
parents:
1273
diff
changeset
|
308 |
410
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
309 void GetCrop(unsigned int& x, |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
310 unsigned int& y, |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
311 unsigned int& width, |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
312 unsigned int& height) const; |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
313 |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
314 void SetAngle(double angle); |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
315 |
430 | 316 void SetPan(double x, |
317 double y); | |
318 | |
629 | 319 void SetFlipVertical(bool flip); // mirrors image around an horizontal axis (note: flip is applied before the rotation !) |
620 | 320 |
629 | 321 void SetFlipHorizontal(bool flip); // mirrors image around a vertical axis (note: flip is applied before the rotation !) |
620 | 322 |
430 | 323 void SetResizeable(bool resizeable) |
410
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
324 { |
430 | 325 geometry_.SetResizeable(resizeable); |
410
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
326 } |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
327 |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
328 void SetSize(unsigned int width, |
1272
a989c7d46b9a
options to avoid multiple LayerEditedMessage
Alain Mazy <alain@mazy.be>
parents:
1259
diff
changeset
|
329 unsigned int height, |
a989c7d46b9a
options to avoid multiple LayerEditedMessage
Alain Mazy <alain@mazy.be>
parents:
1259
diff
changeset
|
330 bool emitLayerEditedEvent = true); |
410
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
331 |
430 | 332 bool HasSize() const |
333 { | |
334 return hasSize_; | |
335 } | |
336 | |
410
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
337 unsigned int GetWidth() const |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
338 { |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
339 return width_; |
476
a95090305dd4
Introduced ControlPoint instead of Corner in the trackers and layers + drawing mask from the ControlPoints
am@osimis.io
parents:
475
diff
changeset
|
340 } |
410
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
341 |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
342 unsigned int GetHeight() const |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
343 { |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
344 return height_; |
476
a95090305dd4
Introduced ControlPoint instead of Corner in the trackers and layers + drawing mask from the ControlPoints
am@osimis.io
parents:
475
diff
changeset
|
345 } |
410
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
346 |
1330
a72c2c9af49a
minimal option for GetSceneExtent, especially for masks
Alain Mazy <alain@mazy.be>
parents:
1321
diff
changeset
|
347 virtual Extent2D GetSceneExtent(bool minimal) const; |
410
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
348 |
480
2f6ecb5037ea
added mouse tracker for Layer Mask. Everything seems ok
am@osimis.io
parents:
476
diff
changeset
|
349 virtual bool GetPixel(unsigned int& imageX, |
2f6ecb5037ea
added mouse tracker for Layer Mask. Everything seems ok
am@osimis.io
parents:
476
diff
changeset
|
350 unsigned int& imageY, |
2f6ecb5037ea
added mouse tracker for Layer Mask. Everything seems ok
am@osimis.io
parents:
476
diff
changeset
|
351 double sceneX, |
2f6ecb5037ea
added mouse tracker for Layer Mask. Everything seems ok
am@osimis.io
parents:
476
diff
changeset
|
352 double sceneY) const; |
410
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
353 |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
354 void SetPixelSpacing(double x, |
1118
35e798b16b65
RadiographyDicomLayer: allow replacing low res image by high res image
Alain Mazy <alain@mazy.be>
parents:
876
diff
changeset
|
355 double y, |
35e798b16b65
RadiographyDicomLayer: allow replacing low res image by high res image
Alain Mazy <alain@mazy.be>
parents:
876
diff
changeset
|
356 bool emitLayerEditedEvent = true); |
410
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
357 |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
358 void GetCenter(double& centerX, |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
359 double& centerY) const; |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
360 |
480
2f6ecb5037ea
added mouse tracker for Layer Mask. Everything seems ok
am@osimis.io
parents:
476
diff
changeset
|
361 virtual void GetControlPoint(ControlPoint& cpScene /* out in scene coordinates */, |
2f6ecb5037ea
added mouse tracker for Layer Mask. Everything seems ok
am@osimis.io
parents:
476
diff
changeset
|
362 size_t index) const; |
476
a95090305dd4
Introduced ControlPoint instead of Corner in the trackers and layers + drawing mask from the ControlPoints
am@osimis.io
parents:
475
diff
changeset
|
363 |
a95090305dd4
Introduced ControlPoint instead of Corner in the trackers and layers + drawing mask from the ControlPoints
am@osimis.io
parents:
475
diff
changeset
|
364 virtual size_t GetControlPointCount() const; |
a95090305dd4
Introduced ControlPoint instead of Corner in the trackers and layers + drawing mask from the ControlPoints
am@osimis.io
parents:
475
diff
changeset
|
365 |
480
2f6ecb5037ea
added mouse tracker for Layer Mask. Everything seems ok
am@osimis.io
parents:
476
diff
changeset
|
366 bool LookupControlPoint(ControlPoint& cpScene /* out */, |
476
a95090305dd4
Introduced ControlPoint instead of Corner in the trackers and layers + drawing mask from the ControlPoints
am@osimis.io
parents:
475
diff
changeset
|
367 double x, |
a95090305dd4
Introduced ControlPoint instead of Corner in the trackers and layers + drawing mask from the ControlPoints
am@osimis.io
parents:
475
diff
changeset
|
368 double y, |
a95090305dd4
Introduced ControlPoint instead of Corner in the trackers and layers + drawing mask from the ControlPoints
am@osimis.io
parents:
475
diff
changeset
|
369 double zoom, |
a95090305dd4
Introduced ControlPoint instead of Corner in the trackers and layers + drawing mask from the ControlPoints
am@osimis.io
parents:
475
diff
changeset
|
370 double viewportDistance) const; |
410
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
371 |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
372 virtual bool GetDefaultWindowing(float& center, |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
373 float& width) const = 0; |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
374 |
739
be9c1530d40a
deprecating enum SliceImageQuality
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
658
diff
changeset
|
375 RadiographyPhotometricDisplayMode GetPreferredPhotomotricDisplayMode() const |
432
4eb96c6b4e96
improved handling of MONOCHROME1, background and invertion
am@osimis.io
parents:
430
diff
changeset
|
376 { |
4eb96c6b4e96
improved handling of MONOCHROME1, background and invertion
am@osimis.io
parents:
430
diff
changeset
|
377 return prefferedPhotometricDisplayMode_; |
4eb96c6b4e96
improved handling of MONOCHROME1, background and invertion
am@osimis.io
parents:
430
diff
changeset
|
378 } |
4eb96c6b4e96
improved handling of MONOCHROME1, background and invertion
am@osimis.io
parents:
430
diff
changeset
|
379 |
410
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
380 virtual void Render(Orthanc::ImageAccessor& buffer, |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
381 const AffineTransform2D& viewTransform, |
1196
a5f2a6b04a31
RadiographyScene: windowing is now only applied to the Dicom layer
Alain Mazy <alain@mazy.be>
parents:
1118
diff
changeset
|
382 ImageInterpolation interpolation, |
a5f2a6b04a31
RadiographyScene: windowing is now only applied to the Dicom layer
Alain Mazy <alain@mazy.be>
parents:
1118
diff
changeset
|
383 float windowCenter, |
a5f2a6b04a31
RadiographyScene: windowing is now only applied to the Dicom layer
Alain Mazy <alain@mazy.be>
parents:
1118
diff
changeset
|
384 float windowWidth, |
a5f2a6b04a31
RadiographyScene: windowing is now only applied to the Dicom layer
Alain Mazy <alain@mazy.be>
parents:
1118
diff
changeset
|
385 bool applyWindowing) const = 0; |
410
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
386 |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
387 virtual bool GetRange(float& minValue, |
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
388 float& maxValue) const = 0; |
475
3c28542229a3
added a mask layer in the RadiographyWidget (to be cleaned)
am@osimis.io
parents:
440
diff
changeset
|
389 |
876 | 390 virtual size_t GetApproximateMemoryUsage() const // this is used to limit the number of scenes loaded in RAM when resources are limited (we actually only count the size used by the images, not the C structs) |
391 { | |
392 return 0; | |
393 } | |
475
3c28542229a3
added a mask layer in the RadiographyWidget (to be cleaned)
am@osimis.io
parents:
440
diff
changeset
|
394 }; |
410
6decc0ba9da5
rename RadiographyScene::Layer as RadiographyLayer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
395 } |