X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=common%2FclitkDicomRT_ROI.cxx;h=6bb2e25c7ff4dd51bba141ce16846764f5657dfe;hb=dd96575fcb3e3af28160766907f68e34dfbf1ba2;hp=119b63890323c4dc2fdf6f50c6eba546a2547d39;hpb=1e034c70105f0926939acaaa27ddb46e904ae8bf;p=clitk.git diff --git a/common/clitkDicomRT_ROI.cxx b/common/clitkDicomRT_ROI.cxx index 119b638..6bb2e25 100644 --- a/common/clitkDicomRT_ROI.cxx +++ b/common/clitkDicomRT_ROI.cxx @@ -29,6 +29,9 @@ clitk::DicomRT_ROI::DicomRT_ROI() mColor.resize(3); mColor[0] = mColor[1] = mColor[2] = 0; mMeshIsUpToDate = false; + mBackgroundValue = 0; + mForegroundValue = 1; + mZDelta = 0; } //-------------------------------------------------------------------- @@ -36,7 +39,7 @@ clitk::DicomRT_ROI::DicomRT_ROI() //-------------------------------------------------------------------- clitk::DicomRT_ROI::~DicomRT_ROI() { - + mImage->Delete(); } //-------------------------------------------------------------------- @@ -68,6 +71,14 @@ const std::string & clitk::DicomRT_ROI::GetName() const //-------------------------------------------------------------------- +//-------------------------------------------------------------------- +const std::string & clitk::DicomRT_ROI::GetFilename() const +{ + return mFilename; +} +//-------------------------------------------------------------------- + + //-------------------------------------------------------------------- const std::vector & clitk::DicomRT_ROI::GetDisplayColor() const { @@ -102,6 +113,22 @@ double clitk::DicomRT_ROI::GetBackgroundValueLabelImage() const //-------------------------------------------------------------------- +//-------------------------------------------------------------------- +void clitk::DicomRT_ROI::SetForegroundValueLabelImage(double bg) +{ + mForegroundValue = bg; +} +//-------------------------------------------------------------------- + + +//-------------------------------------------------------------------- +double clitk::DicomRT_ROI::GetForegroundValueLabelImage() const +{ + return mForegroundValue; +} +//-------------------------------------------------------------------- + + //-------------------------------------------------------------------- void clitk::DicomRT_ROI::Read(std::map & rois, gdcm::SQItem * item) { @@ -121,15 +148,37 @@ void clitk::DicomRT_ROI::Read(std::map & rois, gdcm::SQItem * // Read contours [Contour Sequence] gdcm::SeqEntry * contours=item->GetSeqEntry(0x3006,0x0040); + bool contour_processed=false; + bool delta_computed=false; + double last_z=0; for(gdcm::SQItem* j=contours->GetFirstSQItem(); j!=0; j=contours->GetNextSQItem()) { DicomRT_Contour * c = new DicomRT_Contour; bool b = c->Read(j); - if (b) mListOfContours.push_back(c); + if (b) { + mListOfContours.push_back(c); + if (contour_processed) { + double delta=c->GetZ() - last_z; + if (delta_computed) + assert(mZDelta == delta); + else + mZDelta = delta; + } else + contour_processed=true; + last_z=c->GetZ(); + } } } //-------------------------------------------------------------------- +//-------------------------------------------------------------------- +void clitk::DicomRT_ROI::SetImage(vvImage * image) +{ + mImage = image; +} +//-------------------------------------------------------------------- + + //-------------------------------------------------------------------- vtkPolyData * clitk::DicomRT_ROI::GetMesh() { @@ -139,7 +188,10 @@ vtkPolyData * clitk::DicomRT_ROI::GetMesh() return mMesh; } //-------------------------------------------------------------------- - +clitk::DicomRT_Contour * clitk::DicomRT_ROI::GetContour(int n) +{ + return mListOfContours[n]; +} //-------------------------------------------------------------------- void clitk::DicomRT_ROI::ComputeMesh() @@ -156,9 +208,10 @@ void clitk::DicomRT_ROI::ComputeMesh() //-------------------------------------------------------------------- -void clitk::DicomRT_ROI::SetFromBinaryImage(vvImage::Pointer image, int n, - std::string name, - std::vector color) +void clitk::DicomRT_ROI::SetFromBinaryImage(vvImage * image, int n, + std::string name, + std::vector color, + std::string filename) { // ROI number [Referenced ROI Number] @@ -166,6 +219,7 @@ void clitk::DicomRT_ROI::SetFromBinaryImage(vvImage::Pointer image, int n, // ROI Name mName = name; + mFilename = filename; // ROI Color [ROI Display Color] mColor = color; @@ -180,7 +234,7 @@ void clitk::DicomRT_ROI::SetFromBinaryImage(vvImage::Pointer image, int n, //-------------------------------------------------------------------- -const vvImage::Pointer clitk::DicomRT_ROI::GetImage() const +vvImage * clitk::DicomRT_ROI::GetImage() const { return mImage; }