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 }