Mercurial > hg > orthanc-stone
comparison Framework/Widgets/LayerWidget.cpp @ 77:f5f54ed8d307 wasm
refactoring
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 24 May 2017 21:13:29 +0200 |
parents | 30c768873d47 |
children | 93b917b02fee |
comparison
equal
deleted
inserted
replaced
76:0aef120d7e1c | 77:f5f54ed8d307 |
---|---|
103 bool fullQuality = true; | 103 bool fullQuality = true; |
104 | 104 |
105 for (size_t i = 0; i < renderers_.size(); i++) | 105 for (size_t i = 0; i < renderers_.size(); i++) |
106 { | 106 { |
107 if (renderers_[i] != NULL && | 107 if (renderers_[i] != NULL && |
108 !renderers_[i]->RenderLayer(context, view)) | 108 !renderers_[i]->RenderLayer(context, view, slice_)) |
109 { | 109 { |
110 return false; | 110 return false; |
111 } | 111 } |
112 | 112 |
113 if (renderers_[i] != NULL && | 113 if (renderers_[i] != NULL && |
255 } | 255 } |
256 | 256 |
257 | 257 |
258 void LayerWidget::UpdateLayer(size_t index, | 258 void LayerWidget::UpdateLayer(size_t index, |
259 ILayerRenderer* renderer, | 259 ILayerRenderer* renderer, |
260 const SliceGeometry& slice) | 260 const Slice& slice) |
261 { | 261 { |
262 LOG(INFO) << "Updating layer " << index; | 262 LOG(INFO) << "Updating layer " << index; |
263 | 263 |
264 std::auto_ptr<ILayerRenderer> tmp(renderer); | 264 std::auto_ptr<ILayerRenderer> tmp(renderer); |
265 | 265 |
275 | 275 |
276 assert(layers_.size() == styles_.size()); | 276 assert(layers_.size() == styles_.size()); |
277 renderer->SetLayerStyle(styles_[index]); | 277 renderer->SetLayerStyle(styles_[index]); |
278 | 278 |
279 if (currentScene_.get() != NULL && | 279 if (currentScene_.get() != NULL && |
280 currentScene_->IsSamePlane(slice, sliceThickness_)) | 280 currentScene_->IsSamePlane(slice.GetGeometry(), sliceThickness_)) |
281 { | 281 { |
282 currentScene_->SetLayer(index, tmp.release()); | 282 currentScene_->SetLayer(index, tmp.release()); |
283 NotifyChange(); | 283 NotifyChange(); |
284 } | 284 } |
285 else if (pendingScene_.get() != NULL && | 285 else if (pendingScene_.get() != NULL && |
286 pendingScene_->IsSamePlane(slice, sliceThickness_)) | 286 pendingScene_->IsSamePlane(slice.GetGeometry(), sliceThickness_)) |
287 { | 287 { |
288 pendingScene_->SetLayer(index, tmp.release()); | 288 pendingScene_->SetLayer(index, tmp.release()); |
289 | 289 |
290 if (currentScene_.get() == NULL || | 290 if (currentScene_.get() == NULL || |
291 pendingScene_->IsComplete()) | 291 pendingScene_->IsComplete()) |
395 SetDefaultView(); | 395 SetDefaultView(); |
396 layers_[i]->ScheduleLayerCreation(slice_); | 396 layers_[i]->ScheduleLayerCreation(slice_); |
397 } | 397 } |
398 | 398 |
399 | 399 |
400 void LayerWidget::NotifyGeometryError(ILayerSource& source) | |
401 { | |
402 LOG(ERROR) << "Cannot get geometry"; | |
403 } | |
404 | |
405 | |
400 void LayerWidget::NotifySourceChange(ILayerSource& source) | 406 void LayerWidget::NotifySourceChange(ILayerSource& source) |
401 { | 407 { |
402 source.ScheduleLayerCreation(slice_); | 408 source.ScheduleLayerCreation(slice_); |
403 } | 409 } |
404 | 410 |
405 | 411 |
406 void LayerWidget::NotifySliceChange(ILayerSource& source, | 412 void LayerWidget::NotifySliceChange(ILayerSource& source, |
407 const SliceGeometry& slice) | 413 const Slice& slice) |
408 { | 414 { |
409 if (slice_.IsSamePlane(slice, sliceThickness_)) | 415 if (slice.ContainsPlane(slice_)) |
410 { | 416 { |
411 source.ScheduleLayerCreation(slice_); | 417 source.ScheduleLayerCreation(slice_); |
412 } | 418 } |
413 } | 419 } |
414 | 420 |
415 | 421 |
416 void LayerWidget::NotifyLayerReady(ILayerRenderer* renderer, | 422 void LayerWidget::NotifyLayerReady(ILayerRenderer* renderer, |
417 ILayerSource& source, | 423 ILayerSource& source, |
418 const SliceGeometry& viewportSlice) | 424 const Slice& slice) |
419 { | 425 { |
420 std::auto_ptr<ILayerRenderer> tmp(renderer); | 426 std::auto_ptr<ILayerRenderer> tmp(renderer); |
421 | |
422 size_t i; | |
423 if (LookupLayer(i, source)) | |
424 LOG(INFO) << "Renderer ready for layer " << i; | |
425 | 427 |
426 size_t index; | 428 size_t index; |
427 if (LookupLayer(index, source)) | 429 if (LookupLayer(index, source)) |
428 { | 430 { |
429 UpdateLayer(index, tmp.release(), viewportSlice); | 431 LOG(INFO) << "Renderer ready for layer " << index; |
432 UpdateLayer(index, tmp.release(), slice); | |
430 } | 433 } |
431 } | 434 } |
432 | 435 |
433 | 436 |
434 void LayerWidget::NotifyLayerError(ILayerSource& source, | 437 void LayerWidget::NotifyLayerError(ILayerSource& source, |