X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=common%2FclitkDicomRT_Contour.h;h=ab6db0d27d37565f99dc4dacb6db80e3b04a9948;hb=d55f025b18f68066a52b8f33c2dc6481e82c2580;hp=940f25a7371e609d3b0186d054958e566ecd52fc;hpb=75e2e05324d6eef978c5324160dd46eaaac66ea6;p=clitk.git diff --git a/common/clitkDicomRT_Contour.h b/common/clitkDicomRT_Contour.h index 940f25a..ab6db0d 100644 --- a/common/clitkDicomRT_Contour.h +++ b/common/clitkDicomRT_Contour.h @@ -4,7 +4,7 @@ Authors belongs to: - University of LYON http://www.universite-lyon.fr/ - - Léon Bérard cancer center http://oncora1.lyon.fnclcc.fr + - Léon Bérard cancer center http://www.centreleonberard.fr - CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr This software is distributed WITHOUT ANY WARRANTY; without even @@ -21,39 +21,67 @@ #define CLITKDICOMRT_CONTOUR_H #include "clitkCommon.h" -#include "clitkDicomRT_Contour.h" +#include +#if GDCM_MAJOR_VERSION >= 2 +#else #include #include +#endif #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(); - vtkPoints * GetPoints() {return mData;} - double GetZ() const {return mZ;} - - protected: - void ComputeMesh(); - unsigned int mNbOfPoints; - std::string mType; - vtkPoints * mData; - vtkPolyData * mMesh; - bool mMeshIsUpToDate; - ///Z location of the contour - double mZ; - - }; - //-------------------------------------------------------------------- +//-------------------------------------------------------------------- +class DicomRT_Contour : public itk::LightObject{ + +public: + typedef DicomRT_Contour Self; + typedef itk::SmartPointer Pointer; + itkNewMacro(Self); + + void Print(std::ostream & os = std::cout) const; + +#if GDCM_MAJOR_VERSION >= 2 + bool Read(gdcm::Item * item); + void UpdateDicomItem(); +#else + bool Read(gdcm::SQItem * item); +#endif + + vtkPolyData * GetMesh(); + void SetMesh(vtkPolyData * mesh); + vtkPoints * GetPoints() {return mData;} + double GetZ() const {return mZ;} + void SetTransformMatrix(vtkMatrix4x4* matrix); + + +protected: + void ComputeMeshFromDataPoints(); + void ComputeDataPointsFromMesh(); + unsigned int mNbOfPoints; + std::string mType; + vtkSmartPointer mData; + vtkSmartPointer mMesh; + vtkSmartPointer mPoints; + vtkSmartPointer mTransformMatrix; + bool mMeshIsUpToDate; + ///Z location of the contour + double mZ; + +#if GDCM_MAJOR_VERSION >= 2 + gdcm::Item * mItem; +#else + gdcm::SQItem * mItem; +#endif + +private: + DicomRT_Contour(); + ~DicomRT_Contour(); +}; +//--------------------------------------------------------------------