Mercurial > hg > orthanc-stone
comparison Framework/Widgets/LayerWidget.cpp @ 109:53bd9277b025 wasm
using the Extent class
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 14 Jun 2017 15:34:08 +0200 |
parents | 474d85e76499 |
children | 53025eecbc95 |
comparison
equal
deleted
inserted
replaced
108:37d4ae7052a5 | 109:53bd9277b025 |
---|---|
230 } | 230 } |
231 } | 231 } |
232 } | 232 } |
233 | 233 |
234 | 234 |
235 void LayerWidget::GetSceneExtent(double& x1, | 235 Extent LayerWidget::GetSceneExtent() |
236 double& y1, | |
237 double& x2, | |
238 double& y2) | |
239 { | 236 { |
240 Extent sceneExtent; | 237 Extent sceneExtent; |
241 | 238 |
242 for (size_t i = 0; i < layers_.size(); i++) | 239 for (size_t i = 0; i < layers_.size(); i++) |
243 { | 240 { |
246 GetLayerExtent(layerExtent, *layers_[i]); | 243 GetLayerExtent(layerExtent, *layers_[i]); |
247 | 244 |
248 sceneExtent.Union(layerExtent); | 245 sceneExtent.Union(layerExtent); |
249 } | 246 } |
250 | 247 |
251 if (sceneExtent.IsEmpty()) | 248 return sceneExtent; |
252 { | |
253 // Set a default extent of (-1,-1) -> (0,0) | |
254 x1 = -1; | |
255 y1 = -1; | |
256 x2 = 1; | |
257 y2 = 1; | |
258 } | |
259 else | |
260 { | |
261 x1 = sceneExtent.GetX1(); | |
262 y1 = sceneExtent.GetY1(); | |
263 x2 = sceneExtent.GetX2(); | |
264 y2 = sceneExtent.GetY2(); | |
265 | |
266 // Ensure the extent is non-empty | |
267 if (x1 >= x2) | |
268 { | |
269 double tmp = x1; | |
270 x1 = tmp - 0.5; | |
271 x2 = tmp + 0.5; | |
272 } | |
273 | |
274 if (y1 >= y2) | |
275 { | |
276 double tmp = y1; | |
277 y1 = tmp - 0.5; | |
278 y2 = tmp + 0.5; | |
279 } | |
280 } | |
281 } | 249 } |
282 | 250 |
283 | 251 |
284 bool LayerWidget::RenderScene(CairoContext& context, | 252 bool LayerWidget::RenderScene(CairoContext& context, |
285 const ViewportGeometry& view) | 253 const ViewportGeometry& view) |