Mercurial > hg > orthanc-stone
comparison Framework/Toolbox/DicomStructureSet.h @ 125:44fc253d4876 wasm
refactoring
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 08 Nov 2017 16:13:55 +0100 |
parents | e3433dabfb8d |
children | c9e88e7935a4 |
comparison
equal
deleted
inserted
replaced
124:5099aaa53bd0 | 125:44fc253d4876 |
---|---|
20 | 20 |
21 | 21 |
22 #pragma once | 22 #pragma once |
23 | 23 |
24 #include "CoordinateSystem3D.h" | 24 #include "CoordinateSystem3D.h" |
25 #include "../Viewport/CairoContext.h" | |
26 | 25 |
27 #include <Plugins/Samples/Common/FullOrthancDataset.h> | 26 #include <Plugins/Samples/Common/FullOrthancDataset.h> |
28 | 27 |
29 #include <list> | 28 #include <list> |
30 | 29 |
31 namespace OrthancStone | 30 namespace OrthancStone |
32 { | 31 { |
33 class DicomStructureSet : public boost::noncopyable | 32 class DicomStructureSet : public boost::noncopyable |
34 { | 33 { |
34 public: | |
35 typedef std::pair<double, double> PolygonPoint; | |
36 | |
35 private: | 37 private: |
36 struct ReferencedSlice | 38 struct ReferencedSlice |
37 { | 39 { |
38 std::string seriesInstanceUid_; | 40 std::string seriesInstanceUid_; |
39 CoordinateSystem3D geometry_; | 41 CoordinateSystem3D geometry_; |
110 Structures structures_; | 112 Structures structures_; |
111 ReferencedSlices referencedSlices_; | 113 ReferencedSlices referencedSlices_; |
112 | 114 |
113 const Structure& GetStructure(size_t index) const; | 115 const Structure& GetStructure(size_t index) const; |
114 | 116 |
117 Structure& GetStructure(size_t index); | |
118 | |
119 bool ProjectStructure(std::vector< std::vector<PolygonPoint> >& polygons, | |
120 Structure& structure, | |
121 const CoordinateSystem3D& slice); | |
122 | |
115 public: | 123 public: |
116 DicomStructureSet(const OrthancPlugins::FullOrthancDataset& instance); | 124 DicomStructureSet(const OrthancPlugins::FullOrthancDataset& instance); |
117 | 125 |
118 size_t GetStructureCount() const | 126 size_t GetStructureCount() const |
119 { | 127 { |
140 | 148 |
141 void AddReferencedSlice(const Orthanc::DicomMap& dataset); | 149 void AddReferencedSlice(const Orthanc::DicomMap& dataset); |
142 | 150 |
143 void CheckReferencedSlices(); | 151 void CheckReferencedSlices(); |
144 | 152 |
145 void Render(CairoContext& context, | |
146 const CoordinateSystem3D& slice); | |
147 | |
148 Vector GetNormal() const; | 153 Vector GetNormal() const; |
149 | 154 |
150 static DicomStructureSet* SynchronousLoad(OrthancPlugins::IOrthancConnection& orthanc, | 155 static DicomStructureSet* SynchronousLoad(OrthancPlugins::IOrthancConnection& orthanc, |
151 const std::string& instanceId); | 156 const std::string& instanceId); |
157 | |
158 bool ProjectStructure(std::vector< std::vector<PolygonPoint> >& polygons, | |
159 size_t index, | |
160 const CoordinateSystem3D& slice) | |
161 { | |
162 return ProjectStructure(polygons, GetStructure(index), slice); | |
163 } | |
152 }; | 164 }; |
153 } | 165 } |