comparison Framework/Layers/ILayerSource.h @ 379:2308fe0b0b05

refactoring
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 06 Nov 2018 14:41:36 +0100
parents 814fa32e2fcc
children ba5ad93f935a
comparison
equal deleted inserted replaced
378:814fa32e2fcc 379:2308fe0b0b05
31 namespace OrthancStone 31 namespace OrthancStone
32 { 32 {
33 class ILayerSource : public IObservable 33 class ILayerSource : public IObservable
34 { 34 {
35 public: 35 public:
36 36 typedef OriginMessage<MessageType_LayerSource_GeometryReady, ILayerSource> GeometryReadyMessage;
37 typedef OriginMessage<MessageType_LayerSource_GeometryReady, ILayerSource> GeometryReadyMessage; 37 typedef OriginMessage<MessageType_LayerSource_GeometryError, ILayerSource> GeometryErrorMessage;
38 typedef OriginMessage<MessageType_LayerSource_GeometryError, ILayerSource> GeometryErrorMessage;
39 typedef OriginMessage<MessageType_LayerSource_ContentChanged, ILayerSource> ContentChangedMessage; 38 typedef OriginMessage<MessageType_LayerSource_ContentChanged, ILayerSource> ContentChangedMessage;
40 39
41 struct SliceChangedMessage : public OriginMessage<MessageType_LayerSource_SliceChanged, ILayerSource> 40 class SliceChangedMessage : public OriginMessage<MessageType_LayerSource_SliceChanged, ILayerSource>
42 { 41 {
42 private:
43 const Slice& slice_; 43 const Slice& slice_;
44 SliceChangedMessage(ILayerSource& origin, const Slice& slice) 44
45 : OriginMessage(origin), 45 public:
46 slice_(slice) 46 SliceChangedMessage(ILayerSource& origin,
47 const Slice& slice) :
48 OriginMessage(origin),
49 slice_(slice)
47 { 50 {
48 } 51 }
52
53 const Slice& GetSlice() const
54 {
55 return slice_;
56 }
49 }; 57 };
58
50 59
51 struct LayerReadyMessage : public OriginMessage<MessageType_LayerSource_LayerReady, ILayerSource> 60 class LayerReadyMessage : public OriginMessage<MessageType_LayerSource_LayerReady, ILayerSource>
52 { 61 {
53 std::auto_ptr<ILayerRenderer>& renderer_; 62 private:
63 std::auto_ptr<ILayerRenderer> renderer_;
54 const CoordinateSystem3D& slice_; 64 const CoordinateSystem3D& slice_;
55 bool isError_; 65 bool isError_;
56 66
67 public:
57 LayerReadyMessage(ILayerSource& origin, 68 LayerReadyMessage(ILayerSource& origin,
58 std::auto_ptr<ILayerRenderer>& layer, 69 ILayerRenderer* renderer, // Takes ownership => TODO Remove this!
59 const CoordinateSystem3D& slice, 70 const CoordinateSystem3D& slice,
60 bool isError // TODO Shouldn't this be separate as NotifyLayerError? 71 bool isError // TODO => create NotifyLayerError
61 ) 72 ) :
62 : OriginMessage(origin), 73 OriginMessage(origin),
63 renderer_(layer), 74 renderer_(renderer),
64 slice_(slice), 75 slice_(slice),
65 isError_(isError) 76 isError_(isError)
66 { 77 {
78 }
79
80 // TODO - Remove this function
81 std::auto_ptr<ILayerRenderer>& GetRendererRaw()
82 {
83 return renderer_;
84 }
85
86 const ILayerRenderer& GetRenderer() const
87 {
88 return *renderer_;
89 }
90
91 const CoordinateSystem3D& GetSlice() const
92 {
93 return slice_;
94 }
95
96 bool IsError() const
97 {
98 return isError_;
67 } 99 }
68 }; 100 };
69 101
70 102
71 // TODO: Rename "ImageReadyMessage" as "SliceReadyMessage" 103 // TODO: Rename "ImageReadyMessage" as "SliceReadyMessage"