Mercurial > hg > orthanc-stone
diff 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 |
line wrap: on
line diff
--- a/Framework/Layers/ILayerSource.h Tue Nov 06 14:21:02 2018 +0100 +++ b/Framework/Layers/ILayerSource.h Tue Nov 06 14:41:36 2018 +0100 @@ -33,37 +33,69 @@ class ILayerSource : public IObservable { public: - - typedef OriginMessage<MessageType_LayerSource_GeometryReady, ILayerSource> GeometryReadyMessage; - typedef OriginMessage<MessageType_LayerSource_GeometryError, ILayerSource> GeometryErrorMessage; + typedef OriginMessage<MessageType_LayerSource_GeometryReady, ILayerSource> GeometryReadyMessage; + typedef OriginMessage<MessageType_LayerSource_GeometryError, ILayerSource> GeometryErrorMessage; typedef OriginMessage<MessageType_LayerSource_ContentChanged, ILayerSource> ContentChangedMessage; - struct SliceChangedMessage : public OriginMessage<MessageType_LayerSource_SliceChanged, ILayerSource> + class SliceChangedMessage : public OriginMessage<MessageType_LayerSource_SliceChanged, ILayerSource> { + private: const Slice& slice_; - SliceChangedMessage(ILayerSource& origin, const Slice& slice) - : OriginMessage(origin), - slice_(slice) + + public: + SliceChangedMessage(ILayerSource& origin, + const Slice& slice) : + OriginMessage(origin), + slice_(slice) { } - }; - struct LayerReadyMessage : public OriginMessage<MessageType_LayerSource_LayerReady, ILayerSource> + const Slice& GetSlice() const + { + return slice_; + } + }; + + + class LayerReadyMessage : public OriginMessage<MessageType_LayerSource_LayerReady, ILayerSource> { - std::auto_ptr<ILayerRenderer>& renderer_; + private: + std::auto_ptr<ILayerRenderer> renderer_; const CoordinateSystem3D& slice_; bool isError_; + public: LayerReadyMessage(ILayerSource& origin, - std::auto_ptr<ILayerRenderer>& layer, + ILayerRenderer* renderer, // Takes ownership => TODO Remove this! const CoordinateSystem3D& slice, - bool isError // TODO Shouldn't this be separate as NotifyLayerError? - ) - : OriginMessage(origin), - renderer_(layer), - slice_(slice), - isError_(isError) + bool isError // TODO => create NotifyLayerError + ) : + OriginMessage(origin), + renderer_(renderer), + slice_(slice), + isError_(isError) + { + } + + // TODO - Remove this function + std::auto_ptr<ILayerRenderer>& GetRendererRaw() { + return renderer_; + } + + const ILayerRenderer& GetRenderer() const + { + return *renderer_; + } + + const CoordinateSystem3D& GetSlice() const + { + return slice_; + } + + bool IsError() const + { + return isError_; } };