Mercurial > hg > orthanc-stone
diff 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 |
line wrap: on
line diff
--- a/Framework/Toolbox/DicomStructureSet.h Sun Oct 08 10:52:24 2017 +0200 +++ b/Framework/Toolbox/DicomStructureSet.h Wed Nov 08 16:13:55 2017 +0100 @@ -22,7 +22,6 @@ #pragma once #include "CoordinateSystem3D.h" -#include "../Viewport/CairoContext.h" #include <Plugins/Samples/Common/FullOrthancDataset.h> @@ -32,6 +31,9 @@ { class DicomStructureSet : public boost::noncopyable { + public: + typedef std::pair<double, double> PolygonPoint; + private: struct ReferencedSlice { @@ -112,6 +114,12 @@ const Structure& GetStructure(size_t index) const; + Structure& GetStructure(size_t index); + + bool ProjectStructure(std::vector< std::vector<PolygonPoint> >& polygons, + Structure& structure, + const CoordinateSystem3D& slice); + public: DicomStructureSet(const OrthancPlugins::FullOrthancDataset& instance); @@ -142,12 +150,16 @@ void CheckReferencedSlices(); - void Render(CairoContext& context, - const CoordinateSystem3D& slice); - Vector GetNormal() const; static DicomStructureSet* SynchronousLoad(OrthancPlugins::IOrthancConnection& orthanc, const std::string& instanceId); + + bool ProjectStructure(std::vector< std::vector<PolygonPoint> >& polygons, + size_t index, + const CoordinateSystem3D& slice) + { + return ProjectStructure(polygons, GetStructure(index), slice); + } }; }