comparison 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
comparison
equal deleted inserted replaced
76:0aef120d7e1c 77:f5f54ed8d307
22 #pragma once 22 #pragma once
23 23
24 #include "LayerSourceBase.h" 24 #include "LayerSourceBase.h"
25 #include "../Toolbox/IWebService.h" 25 #include "../Toolbox/IWebService.h"
26 #include "../Toolbox/IVolumeSlicesObserver.h" 26 #include "../Toolbox/IVolumeSlicesObserver.h"
27 #include "../../Resources/Orthanc/Plugins/Samples/Common/FullOrthancDataset.h" 27 #include "../Toolbox/OrthancSlicesLoader.h"
28 28
29 namespace OrthancStone 29 namespace OrthancStone
30 { 30 {
31 class OrthancFrameLayerSource : 31 class OrthancFrameLayerSource :
32 public LayerSourceBase, 32 public LayerSourceBase,
33 public IWebService::ICallback // TODO move this into a PImpl 33 private OrthancSlicesLoader::ICallback
34 { 34 {
35 private: 35 private:
36 enum Content 36 std::string instanceId_;
37 { 37 unsigned int frame_;
38 Content_Tags, 38 OrthancSlicesLoader loader_;
39 Content_Frame 39 IVolumeSlicesObserver* observer2_;
40 };
41 40
42 class Operation; 41 virtual void NotifyGeometryReady(const OrthancSlicesLoader& loader);
43 42
44 IWebService& orthanc_; 43 virtual void NotifyGeometryError(const OrthancSlicesLoader& loader);
45 std::string instanceId_; 44
46 unsigned int frame_; 45 virtual void NotifySliceImageReady(const OrthancSlicesLoader& loader,
47 std::auto_ptr<OrthancPlugins::FullOrthancDataset> dataset_; 46 unsigned int sliceIndex,
48 unsigned int frameWidth_; 47 const Slice& slice,
49 unsigned int frameHeight_; 48 Orthanc::ImageAccessor* image);
50 Orthanc::PixelFormat format_; 49
51 double pixelSpacingX_; 50 virtual void NotifySliceImageError(const OrthancSlicesLoader& loader,
52 double pixelSpacingY_; 51 unsigned int sliceIndex,
53 IVolumeSlicesObserver* observer2_; 52 const Slice& slice);
54 53
55 protected: 54 protected:
56 virtual void StartInternal(); 55 virtual void StartInternal();
57 56
58 public: 57 public:
58 using LayerSourceBase::SetObserver;
59
59 OrthancFrameLayerSource(IWebService& orthanc, 60 OrthancFrameLayerSource(IWebService& orthanc,
60 const std::string& instanceId, 61 const std::string& instanceId,
61 unsigned int frame); 62 unsigned int frame);
62 63
63 virtual void SetObserver(IObserver& observer);
64
65 void SetObserver(IVolumeSlicesObserver& observer); 64 void SetObserver(IVolumeSlicesObserver& observer);
66
67 virtual void NotifyError(const std::string& uri,
68 Orthanc::IDynamicObject* payload);
69
70 virtual void NotifySuccess(const std::string& uri,
71 const void* answer,
72 size_t answerSize,
73 Orthanc::IDynamicObject* payload);
74 65
75 virtual bool GetExtent(double& x1, 66 virtual bool GetExtent(double& x1,
76 double& y1, 67 double& y1,
77 double& x2, 68 double& x2,
78 double& y2, 69 double& y2,