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
#define CLITKDICOMRT_CONTOUR_H
#include "clitkCommon.h"
-#include "clitkDicomRT_Contour.h"
+#include <gdcmFile.h>
+#if GDCM_MAJOR_VERSION == 2
+#else
#include <gdcm.h>
#include <gdcmSQItem.h>
+#endif
#include <vtkPoints.h>
#include <vtkPolyData.h>
+#include <vtkSmartPointer.h>
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;}
-
- protected:
- void ComputeMesh();
- unsigned int mNbOfPoints;
- std::string mType;
- vtkPoints * mData;
- vtkPolyData * mMesh;
- bool mMeshIsUpToDate;
-
- };
- //--------------------------------------------------------------------
+//--------------------------------------------------------------------
+class DicomRT_Contour : public itk::LightObject{
+
+public:
+ typedef DicomRT_Contour Self;
+ typedef itk::SmartPointer<Self> 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;}
+
+
+protected:
+ void ComputeMeshFromDataPoints();
+ void ComputeDataPointsFromMesh();
+ unsigned int mNbOfPoints;
+ std::string mType;
+ vtkSmartPointer<vtkPoints> mData;
+ vtkSmartPointer<vtkPolyData> mMesh;
+ vtkSmartPointer<vtkPoints> mPoints;
+ 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();
+};
+//--------------------------------------------------------------------