X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=common%2FclitkDicomRT_ROI.cxx;h=6c9e9777bebfd372168c55d1dbee3caf8b0b21ab;hb=109fbd68b9c171a4fa18d6c58b311718b418d181;hp=fb7b0ca21dec0739d6d1b90be03d041ccdbf2dfd;hpb=0f41173383ece2736e285fb44e8b06569bd8d201;p=clitk.git diff --git a/common/clitkDicomRT_ROI.cxx b/common/clitkDicomRT_ROI.cxx index fb7b0ca..6c9e977 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; } //-------------------------------------------------------------------- @@ -110,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) { @@ -129,10 +148,24 @@ 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(); + } } } //-------------------------------------------------------------------- @@ -155,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()