comparison Framework/Layers/IVolumeSlicer.h @ 421:f87f28624b96 cache-in-radiography

tentative to make SmartLoader and RadiographyScene work together (not really working)
author am@osimis.io
date Tue, 20 Nov 2018 16:35:29 +0100
parents 885e1ebd315c
children
comparison
equal deleted inserted replaced
420:8bf717c4e497 421:f87f28624b96
24 #include "ILayerRenderer.h" 24 #include "ILayerRenderer.h"
25 #include "../Toolbox/Slice.h" 25 #include "../Toolbox/Slice.h"
26 #include "../../Framework/Messages/IObservable.h" 26 #include "../../Framework/Messages/IObservable.h"
27 #include "../../Framework/Messages/IMessage.h" 27 #include "../../Framework/Messages/IMessage.h"
28 #include "Core/Images/Image.h" 28 #include "Core/Images/Image.h"
29 #include <Plugins/Samples/Common/FullOrthancDataset.h>
29 #include <boost/shared_ptr.hpp> 30 #include <boost/shared_ptr.hpp>
30 31
31 namespace OrthancStone 32 namespace OrthancStone
32 { 33 {
34
33 class IVolumeSlicer : public IObservable 35 class IVolumeSlicer : public IObservable
34 { 36 {
35 public: 37 public:
36 typedef OriginMessage<MessageType_VolumeSlicer_GeometryReady, IVolumeSlicer> GeometryReadyMessage; 38 typedef OriginMessage<MessageType_VolumeSlicer_GeometryReady, IVolumeSlicer> GeometryReadyMessage;
37 typedef OriginMessage<MessageType_VolumeSlicer_GeometryError, IVolumeSlicer> GeometryErrorMessage; 39 typedef OriginMessage<MessageType_VolumeSlicer_GeometryError, IVolumeSlicer> GeometryErrorMessage;
38 typedef OriginMessage<MessageType_VolumeSlicer_ContentChanged, IVolumeSlicer> ContentChangedMessage; 40 typedef OriginMessage<MessageType_VolumeSlicer_ContentChanged, IVolumeSlicer> ContentChangedMessage;
41
42 class TagsReadyMessage : public OriginMessage<MessageType_VolumeSlicer_TagsReady, IVolumeSlicer>
43 {
44 private:
45 const OrthancPlugins::FullOrthancDataset& dicomTags_;
46 public:
47 TagsReadyMessage(IVolumeSlicer& origin,
48 const OrthancPlugins::FullOrthancDataset& dicomTags) :
49 OriginMessage(origin),
50 dicomTags_(dicomTags)
51 {
52 }
53
54 const OrthancPlugins::FullOrthancDataset& GetDicomTags() const
55 {
56 return dicomTags_;
57 }
58 };
59
60 class FrameReadyMessage : public OriginMessage<MessageType_VolumeSlicer_FrameReady, IVolumeSlicer>
61 {
62 private:
63 boost::shared_ptr<Orthanc::ImageAccessor> image_;
64 public:
65 FrameReadyMessage(IVolumeSlicer& origin, boost::shared_ptr<Orthanc::ImageAccessor> image) :
66 OriginMessage(origin),
67 image_(image)
68 {
69 }
70
71 boost::shared_ptr<Orthanc::ImageAccessor> GetImage() const
72 {
73 return image_;
74 }
75 };
39 76
40 class SliceContentChangedMessage : public OriginMessage<MessageType_VolumeSlicer_SliceChanged, IVolumeSlicer> 77 class SliceContentChangedMessage : public OriginMessage<MessageType_VolumeSlicer_SliceChanged, IVolumeSlicer>
41 { 78 {
42 private: 79 private:
43 const Slice& slice_; 80 const Slice& slice_;
44 81
45 public: 82 public:
46 SliceContentChangedMessage(IVolumeSlicer& origin, 83 SliceContentChangedMessage(IVolumeSlicer& origin,
47 const Slice& slice) : 84 const Slice& slice) :
48 OriginMessage(origin), 85 OriginMessage(origin),
49 slice_(slice) 86 slice_(slice)
50 { 87 {
51 } 88 }
52 89
67 { 104 {
68 } 105 }
69 106
70 virtual ILayerRenderer* CreateRenderer() const = 0; 107 virtual ILayerRenderer* CreateRenderer() const = 0;
71 }; 108 };
72 109
73 private: 110 private:
74 const IRendererFactory& factory_; 111 const IRendererFactory& factory_;
75 const CoordinateSystem3D& slice_; 112 const CoordinateSystem3D& slice_;
76 113
77 public: 114 public: