Mercurial > hg > orthanc-stone
comparison Framework/Radiography/RadiographyScene.h @ 1201:ab958fd99b07
RadiographyScene fixes
author | Alain Mazy <alain@mazy.be> |
---|---|
date | Fri, 29 Nov 2019 16:21:24 +0100 |
parents | 922d2e61aa5d |
children | 9added0d371e |
comparison
equal
deleted
inserted
replaced
1199:922d2e61aa5d | 1201:ab958fd99b07 |
---|---|
177 void OnDicomExported(const Deprecated::OrthancApiClient::JsonResponseReadyMessage& message); | 177 void OnDicomExported(const Deprecated::OrthancApiClient::JsonResponseReadyMessage& message); |
178 | 178 |
179 void OnDicomWebReceived(const Deprecated::IWebService::HttpRequestSuccessMessage& message); | 179 void OnDicomWebReceived(const Deprecated::IWebService::HttpRequestSuccessMessage& message); |
180 | 180 |
181 virtual void OnLayerEdited(const RadiographyLayer::LayerEditedMessage& message); | 181 virtual void OnLayerEdited(const RadiographyLayer::LayerEditedMessage& message); |
182 | |
182 public: | 183 public: |
183 RadiographyScene(MessageBroker& broker); | 184 RadiographyScene(MessageBroker& broker); |
184 | 185 |
185 virtual ~RadiographyScene(); | 186 virtual ~RadiographyScene(); |
186 | 187 |
199 | 200 |
200 RadiographyLayer& LoadText(const std::string& utf8, | 201 RadiographyLayer& LoadText(const std::string& utf8, |
201 unsigned int fontSize, | 202 unsigned int fontSize, |
202 uint8_t foreground, | 203 uint8_t foreground, |
203 RadiographyLayer::Geometry* geometry); | 204 RadiographyLayer::Geometry* geometry); |
204 | 205 |
206 RadiographyLayer& UpdateText(size_t layerIndex, | |
207 const std::string& utf8, | |
208 unsigned int fontSize, | |
209 uint8_t foreground); | |
210 | |
205 RadiographyLayer& LoadTestBlock(unsigned int width, | 211 RadiographyLayer& LoadTestBlock(unsigned int width, |
206 unsigned int height, | 212 unsigned int height, |
207 RadiographyLayer::Geometry* geometry); | 213 RadiographyLayer::Geometry* geometry); |
208 | 214 |
209 RadiographyLayer& LoadMask(const std::vector<Orthanc::ImageProcessing::ImagePoint>& corners, | 215 RadiographyLayer& LoadMask(const std::vector<Orthanc::ImageProcessing::ImagePoint>& corners, |
229 | 235 |
230 RadiographyLayer& LoadDicomWebFrame(Deprecated::IWebService& web); | 236 RadiographyLayer& LoadDicomWebFrame(Deprecated::IWebService& web); |
231 | 237 |
232 void RemoveLayer(size_t layerIndex); | 238 void RemoveLayer(size_t layerIndex); |
233 | 239 |
240 RadiographyLayer& GetLayer(size_t layerIndex); | |
241 | |
234 const RadiographyLayer& GetLayer(size_t layerIndex) const; | 242 const RadiographyLayer& GetLayer(size_t layerIndex) const; |
235 | 243 |
236 template <typename TypeLayer> | 244 template <typename TypeLayer> |
237 TypeLayer* GetLayer(size_t index = 0) | 245 TypeLayer* GetTypedLayer(size_t indexOfType = 0) |
238 { | 246 { |
239 std::vector<size_t> layerIndexes; | 247 std::vector<size_t> layerIndexes; |
240 GetLayersIndexes(layerIndexes); | 248 GetLayersIndexes(layerIndexes); |
241 | 249 |
242 size_t count = 0; | 250 size_t count = 0; |
244 for (size_t i = 0; i < layerIndexes.size(); ++i) | 252 for (size_t i = 0; i < layerIndexes.size(); ++i) |
245 { | 253 { |
246 TypeLayer* typedLayer = dynamic_cast<TypeLayer*>(layers_[layerIndexes[i]]); | 254 TypeLayer* typedLayer = dynamic_cast<TypeLayer*>(layers_[layerIndexes[i]]); |
247 if (typedLayer != NULL) | 255 if (typedLayer != NULL) |
248 { | 256 { |
249 if (count == index) | 257 if (count == indexOfType) |
250 { | |
251 return typedLayer; | |
252 } | |
253 count++; | |
254 } | |
255 } | |
256 | |
257 return NULL; | |
258 } | |
259 | |
260 template <typename TypeLayer> | |
261 const TypeLayer* GetLayer(size_t index = 0) const | |
262 { | |
263 std::vector<size_t> layerIndexes; | |
264 GetLayersIndexes(layerIndexes); | |
265 | |
266 size_t count = 0; | |
267 | |
268 for (size_t i = 0; i < layerIndexes.size(); ++i) | |
269 { | |
270 const TypeLayer* typedLayer = dynamic_cast<const TypeLayer*>(layers_.at(layerIndexes[i])); | |
271 if (typedLayer != NULL) | |
272 { | |
273 if (count == index) | |
274 { | 258 { |
275 return typedLayer; | 259 return typedLayer; |
276 } | 260 } |
277 count++; | 261 count++; |
278 } | 262 } |