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,