- //--------------------------------------------------------------------
- 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 const & item);
+#else
+ bool Read(gdcm::SQItem * item);
+#endif
+ vtkPolyData * GetMesh();
+ vtkPoints * GetPoints() {return mData;}
+ double GetZ() const {return mZ;}
+
+protected:
+ void ComputeMesh();
+ unsigned int mNbOfPoints;
+ std::string mType;
+ vtkSmartPointer<vtkPoints> mData;
+ vtkSmartPointer<vtkPolyData> mMesh;
+ vtkSmartPointer<vtkPoints> mPoints;
+ bool mMeshIsUpToDate;
+ ///Z location of the contour
+ double mZ;
+
+private:
+ DicomRT_Contour();
+ ~DicomRT_Contour();
+};
+//--------------------------------------------------------------------