comparison Framework/dev.h @ 396:ed7146fa2c98

rename ILayerSource as IVolumeSlicer, and OrthancFrameLayerSource as as DicomSeriesVolumeSlicer
author Sebastien Jodogne <s.jodogne@gmail.com>
date Sat, 10 Nov 2018 09:29:08 +0100
parents 0cb925325470
children d257ea56b7be
comparison
equal deleted inserted replaced
395:5f13809f3f76 396:ed7146fa2c98
20 20
21 21
22 #pragma once 22 #pragma once
23 23
24 #include "Layers/FrameRenderer.h" 24 #include "Layers/FrameRenderer.h"
25 #include "Layers/LayerSourceBase.h" 25 #include "Layers/VolumeSlicerBase.h"
26 #include "Layers/SliceOutlineRenderer.h" 26 #include "Layers/SliceOutlineRenderer.h"
27 #include "Layers/LineLayerRenderer.h" 27 #include "Layers/LineLayerRenderer.h"
28 #include "Widgets/SliceViewerWidget.h" 28 #include "Widgets/SliceViewerWidget.h"
29 #include "Toolbox/DownloadStack.h" 29 #include "Toolbox/DownloadStack.h"
30 #include "Toolbox/GeometryToolbox.h" 30 #include "Toolbox/GeometryToolbox.h"
493 }; 493 };
494 494
495 495
496 496
497 class VolumeImageSource : 497 class VolumeImageSource :
498 public LayerSourceBase, 498 public VolumeSlicerBase,
499 private ISlicedVolume::IObserver 499 private ISlicedVolume::IObserver
500 { 500 {
501 private: 501 private:
502 class RendererFactory : public LayerReadyMessage::IRendererFactory 502 class RendererFactory : public LayerReadyMessage::IRendererFactory
503 { 503 {
535 } 535 }
536 536
537 537
538 virtual void NotifyGeometryReady(const ISlicedVolume& volume) 538 virtual void NotifyGeometryReady(const ISlicedVolume& volume)
539 { 539 {
540 // These 3 values are only used to speed up the ILayerSource 540 // These 3 values are only used to speed up the IVolumeSlicer
541 axialGeometry_.reset(new VolumeImageGeometry(volume_, VolumeProjection_Axial)); 541 axialGeometry_.reset(new VolumeImageGeometry(volume_, VolumeProjection_Axial));
542 coronalGeometry_.reset(new VolumeImageGeometry(volume_, VolumeProjection_Coronal)); 542 coronalGeometry_.reset(new VolumeImageGeometry(volume_, VolumeProjection_Coronal));
543 sagittalGeometry_.reset(new VolumeImageGeometry(volume_, VolumeProjection_Sagittal)); 543 sagittalGeometry_.reset(new VolumeImageGeometry(volume_, VolumeProjection_Sagittal));
544 544
545 LayerSourceBase::NotifyGeometryReady(); 545 VolumeSlicerBase::NotifyGeometryReady();
546 } 546 }
547 547
548 virtual void NotifyGeometryError(const ISlicedVolume& volume) 548 virtual void NotifyGeometryError(const ISlicedVolume& volume)
549 { 549 {
550 LayerSourceBase::NotifyGeometryError(); 550 VolumeSlicerBase::NotifyGeometryError();
551 } 551 }
552 552
553 virtual void NotifyContentChange(const ISlicedVolume& volume) 553 virtual void NotifyContentChange(const ISlicedVolume& volume)
554 { 554 {
555 LayerSourceBase::NotifyContentChange(); 555 VolumeSlicerBase::NotifyContentChange();
556 } 556 }
557 557
558 virtual void NotifySliceChange(const ISlicedVolume& volume, 558 virtual void NotifySliceChange(const ISlicedVolume& volume,
559 const size_t& sliceIndex, 559 const size_t& sliceIndex,
560 const Slice& slice) 560 const Slice& slice)
561 { 561 {
562 //LayerSourceBase::NotifySliceChange(slice); 562 //VolumeSlicerBase::NotifySliceChange(slice);
563 563
564 // TODO Improve this? 564 // TODO Improve this?
565 LayerSourceBase::NotifyContentChange(); 565 VolumeSlicerBase::NotifyContentChange();
566 } 566 }
567 567
568 virtual void NotifyVolumeReady(const ISlicedVolume& volume) 568 virtual void NotifyVolumeReady(const ISlicedVolume& volume)
569 { 569 {
570 } 570 }
626 } 626 }
627 627
628 628
629 public: 629 public:
630 VolumeImageSource(MessageBroker& broker, OrthancVolumeImage& volume) : 630 VolumeImageSource(MessageBroker& broker, OrthancVolumeImage& volume) :
631 LayerSourceBase(broker), 631 VolumeSlicerBase(broker),
632 volume_(volume) 632 volume_(volume)
633 { 633 {
634 volume_.Register(*this); 634 volume_.Register(*this);
635 } 635 }
636 636
681 } 681 }
682 682
683 std::auto_ptr<Slice> slice(geometry.GetSlice(closest)); 683 std::auto_ptr<Slice> slice(geometry.GetSlice(closest));
684 684
685 RendererFactory factory(*frame, *slice, isFullQuality); 685 RendererFactory factory(*frame, *slice, isFullQuality);
686 LayerSourceBase::NotifyLayerReady(factory, 686 VolumeSlicerBase::NotifyLayerReady(factory,
687 //new SliceOutlineRenderer(slice), 687 //new SliceOutlineRenderer(slice),
688 slice->GetGeometry()); 688 slice->GetGeometry());
689 return; 689 return;
690 } 690 }
691 } 691 }
692 692
693 // Error 693 // Error
694 CoordinateSystem3D slice; 694 CoordinateSystem3D slice;
695 LayerSourceBase::NotifyLayerError(slice); 695 VolumeSlicerBase::NotifyLayerError(slice);
696 } 696 }
697 }; 697 };
698 698
699 699
700 class VolumeImageInteractor : 700 class VolumeImageInteractor :
860 } 860 }
861 }; 861 };
862 862
863 863
864 864
865 class ReferenceLineSource : public LayerSourceBase 865 class ReferenceLineSource : public VolumeSlicerBase
866 { 866 {
867 private: 867 private:
868 class RendererFactory : public LayerReadyMessage::IRendererFactory 868 class RendererFactory : public LayerReadyMessage::IRendererFactory
869 { 869 {
870 private: 870 private:
897 SliceViewerWidget& otherPlane_; 897 SliceViewerWidget& otherPlane_;
898 898
899 public: 899 public:
900 ReferenceLineSource(MessageBroker& broker, 900 ReferenceLineSource(MessageBroker& broker,
901 SliceViewerWidget& otherPlane) : 901 SliceViewerWidget& otherPlane) :
902 LayerSourceBase(broker), 902 VolumeSlicerBase(broker),
903 otherPlane_(otherPlane) 903 otherPlane_(otherPlane)
904 { 904 {
905 NotifyGeometryReady(); 905 NotifyGeometryReady();
906 } 906 }
907 907