Mercurial > hg > orthanc-stone
diff Framework/Layers/OrthancFrameLayerSource.h @ 77:f5f54ed8d307 wasm
refactoring
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 24 May 2017 21:13:29 +0200 |
parents | 298f375dcb68 |
children | 02c3a7a4938f |
line wrap: on
line diff
--- a/Framework/Layers/OrthancFrameLayerSource.h Wed May 24 12:42:08 2017 +0200 +++ b/Framework/Layers/OrthancFrameLayerSource.h Wed May 24 21:13:29 2017 +0200 @@ -24,54 +24,45 @@ #include "LayerSourceBase.h" #include "../Toolbox/IWebService.h" #include "../Toolbox/IVolumeSlicesObserver.h" -#include "../../Resources/Orthanc/Plugins/Samples/Common/FullOrthancDataset.h" +#include "../Toolbox/OrthancSlicesLoader.h" namespace OrthancStone { class OrthancFrameLayerSource : public LayerSourceBase, - public IWebService::ICallback // TODO move this into a PImpl + private OrthancSlicesLoader::ICallback { private: - enum Content - { - Content_Tags, - Content_Frame - }; + std::string instanceId_; + unsigned int frame_; + OrthancSlicesLoader loader_; + IVolumeSlicesObserver* observer2_; + + virtual void NotifyGeometryReady(const OrthancSlicesLoader& loader); + + virtual void NotifyGeometryError(const OrthancSlicesLoader& loader); - class Operation; - - IWebService& orthanc_; - std::string instanceId_; - unsigned int frame_; - std::auto_ptr<OrthancPlugins::FullOrthancDataset> dataset_; - unsigned int frameWidth_; - unsigned int frameHeight_; - Orthanc::PixelFormat format_; - double pixelSpacingX_; - double pixelSpacingY_; - IVolumeSlicesObserver* observer2_; + virtual void NotifySliceImageReady(const OrthancSlicesLoader& loader, + unsigned int sliceIndex, + const Slice& slice, + Orthanc::ImageAccessor* image); + + virtual void NotifySliceImageError(const OrthancSlicesLoader& loader, + unsigned int sliceIndex, + const Slice& slice); protected: virtual void StartInternal(); public: + using LayerSourceBase::SetObserver; + OrthancFrameLayerSource(IWebService& orthanc, const std::string& instanceId, unsigned int frame); - virtual void SetObserver(IObserver& observer); - void SetObserver(IVolumeSlicesObserver& observer); - virtual void NotifyError(const std::string& uri, - Orthanc::IDynamicObject* payload); - - virtual void NotifySuccess(const std::string& uri, - const void* answer, - size_t answerSize, - Orthanc::IDynamicObject* payload); - virtual bool GetExtent(double& x1, double& y1, double& x2,