Mercurial > hg > orthanc-stone
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, |