X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=common%2FclitkDicomRT_Contour.h;fp=common%2FclitkDicomRT_Contour.h;h=b59976969eaac0d6ce3808f25ef0bf88c2f60189;hb=163fa80ef3873595f3e3cf75fb03e53536d1a6ee;hp=0000000000000000000000000000000000000000;hpb=95b2888f075a2873e583c6e818716ac8381bee0f;p=clitk.git diff --git a/common/clitkDicomRT_Contour.h b/common/clitkDicomRT_Contour.h new file mode 100644 index 0000000..b599769 --- /dev/null +++ b/common/clitkDicomRT_Contour.h @@ -0,0 +1,85 @@ +/*========================================================================= + Program: vv http://www.creatis.insa-lyon.fr/rio/vv + Main authors : XX XX XX + + Authors belongs to: + - University of LYON http://www.universite-lyon.fr/ + - Léon Bérard cancer center http://oncora1.lyon.fnclcc.fr + - CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the copyright notices for more information. + + It is distributed under dual licence + - BSD http://www.opensource.org/licenses/bsd-license.php + - CeCILL-B http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html + + =========================================================================*/ + +#ifndef CLITKDICOMRT_CONTOUR_H +#define CLITKDICOMRT_CONTOUR_H + +#include "clitkCommon.h" +#include "clitkDicomRT_Contour.h" +#include +#include +#include +#include + +namespace clitk { + + //-------------------------------------------------------------------- + class DicomRT_Contour { + + public: + DicomRT_Contour(); + ~DicomRT_Contour(); + + void Print(std::ostream & os = std::cout) const; + bool Read(gdcm::SQItem * item); + vtkPolyData * GetMesh(); + + protected: + void ComputeMesh(); + unsigned int mNbOfPoints; + std::string mType; + vtkPoints * mData; + vtkPolyData * mMesh; + bool mMeshIsUpToDate; + + }; + //-------------------------------------------------------------------- + + //-------------------------------------------------------------------- + template + ElementType parse_value(std::string str) + { + std::istringstream parser(str); + ElementType value; + parser >> value; + if (parser.fail()) { + DD(str); + DD(value); + } + assert(!parser.fail()); + return value; + } + + template + std::vector parse_string(std::string str,char delim) { + std::istringstream ss(str); + std::string token; + std::vector result; + while (getline(ss,token,delim)) + { + result.push_back(parse_value(token)); + } + return result; + } + //-------------------------------------------------------------------- + + +} // end namespace clitk +#endif // CLITKDICOMRT_CONTOUR_H +