X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=common%2FclitkDicomRT_ROI.h;h=b41793323bb67b1795da94f21050f75e3ab04b68;hb=85d87a4260fedf7ce53875ebd8654787a2dd941c;hp=d69ec1e9461100f161e3efaed1e05a5374797149;hpb=b9db5886a4d8e50a6940d7ceea622de32cfb230a;p=clitk.git diff --git a/common/clitkDicomRT_ROI.h b/common/clitkDicomRT_ROI.h index d69ec1e..b417933 100644 --- a/common/clitkDicomRT_ROI.h +++ b/common/clitkDicomRT_ROI.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 @@ -23,6 +23,13 @@ #include "clitkDicomRT_Contour.h" #include "vvImage.h" +#include +#include "clitkConfiguration.h" +#if CLITK_USE_SYSTEM_GDCM == 1 +#include +#include +#endif + namespace clitk { //-------------------------------------------------------------------- @@ -35,13 +42,13 @@ public: itkNewMacro(Self); void Print(std::ostream & os = std::cout) const; - void Read(std::map & rois, gdcm::SQItem * item); - void SetFromBinaryImage(vvImage * image, int n, + void SetFromBinaryImage(vvImage::Pointer image, int n, std::string name, std::vector color, std::string filename); int GetROINumber() const; + void SetROINumber(int); const std::string & GetName() const; const std::string & GetFilename() const; const std::vector & GetDisplayColor() const; @@ -57,25 +64,51 @@ public: double GetForegroundValueLabelImage() const; void SetForegroundValueLabelImage(double bg); - void SetImage(vvImage * im); + void SetImage(vvImage::Pointer im); DicomRT_Contour* GetContour(int n); - double GetContourSpacing() const {return mZDelta;} + void SetTransformMatrix(vtkMatrix4x4* matrix); + + // Compute a vtk mesh from the dicom contours + void ComputeMeshFromContour(); + void ComputeContoursFromImage(); + // Indicate if the mesh is uptodate according to the dicom + void SetDicomUptodateFlag(bool b) { m_DicomUptodateFlag = b; } + bool GetDicomUptoDateFlag() const { return m_DicomUptodateFlag; } + void SetName(std::string n) { mName = n; } + + // Read from DICOM RT STRUCT +#if GDCM_MAJOR_VERSION >= 2 + bool Read(gdcm::Item * itemInfo, gdcm::Item * itemContour); + void UpdateDicomItem(); +#else + void Read(std::map & rois, gdcm::SQItem * item); +#endif + +#if CLITK_USE_SYSTEM_GDCM == 1 + void Read(vtkSmartPointer & reader, int roiindex); +#endif + protected: - void ComputeMesh(); std::string mName; std::string mFilename; int mNumber; std::vector mColor; std::vector mListOfContours; - vtkPolyData * mMesh; + vtkSmartPointer mMesh; + vtkSmartPointer mTransformMatrix; bool mMeshIsUpToDate; vvImage::Pointer mImage; double mBackgroundValue; double mForegroundValue; - ///Spacing between two contours - double mZDelta; + bool m_DicomUptodateFlag; + +#if GDCM_MAJOR_VERSION >= 2 + gdcm::Item * mItemInfo; + gdcm::Item * mItemContour; + gdcm::SmartPointer mContoursSequenceOfItems; +#endif private: DicomRT_ROI();