X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=common%2FclitkDicomRT_ROI.cxx;h=7a2d4fcb83888d2a50e65c67b29ebaa2a31a0e5a;hb=refs%2Fheads%2FrtStruct;hp=7bec8c51f47b1be17104b0fb16da56c22f3e9317;hpb=d6a6a206c0a533a60519e9b3e82fba48d1240c3e;p=clitk.git diff --git a/common/clitkDicomRT_ROI.cxx b/common/clitkDicomRT_ROI.cxx index 7bec8c5..7a2d4fc 100644 --- a/common/clitkDicomRT_ROI.cxx +++ b/common/clitkDicomRT_ROI.cxx @@ -25,7 +25,7 @@ #include #include -#if GDCM_MAJOR_VERSION == 2 +#if GDCM_MAJOR_VERSION >= 2 #include "gdcmAttribute.h" #include "gdcmItem.h" #endif @@ -73,6 +73,14 @@ int clitk::DicomRT_ROI::GetROINumber() const //-------------------------------------------------------------------- +//-------------------------------------------------------------------- +void clitk::DicomRT_ROI::SetROINumber(int number) +{ + mNumber = number; +} +//-------------------------------------------------------------------- + + //-------------------------------------------------------------------- const std::string & clitk::DicomRT_ROI::GetName() const { @@ -140,10 +148,10 @@ double clitk::DicomRT_ROI::GetForegroundValueLabelImage() const //-------------------------------------------------------------------- -#if GDCM_MAJOR_VERSION == 2 -bool clitk::DicomRT_ROI::Read(gdcm::Item * itemInfo, gdcm::Item * itemContour) +#if GDCM_MAJOR_VERSION >= 2 +bool clitk::DicomRT_ROI::Read(gdcm::Item * itemInfo, gdcm::Item * itemContour, double tol) { - FATAL("Error : compile vv with itk4 + external gdcm"); + //FATAL("Error : compile vv with itk4 + external gdcm"); // Keep dicom item mItemInfo = itemInfo; mItemContour = itemContour; @@ -203,6 +211,8 @@ bool clitk::DicomRT_ROI::Read(gdcm::Item * itemInfo, gdcm::Item * itemContour) { gdcm::Item & j = sqi2->GetItem(i+1); // Item start at #1 DicomRT_Contour::Pointer c = DicomRT_Contour::New(); + c->SetTolerance(tol); + c->SetTransformMatrix(mTransformMatrix); bool b = c->Read(&j); if (b) { mListOfContours.push_back(c); @@ -212,7 +222,7 @@ bool clitk::DicomRT_ROI::Read(gdcm::Item * itemInfo, gdcm::Item * itemContour) return true; } #else -void clitk::DicomRT_ROI::Read(std::map & rois, gdcm::SQItem * item) +void clitk::DicomRT_ROI::Read(std::map & rois, gdcm::SQItem * item, double tol) { // ROI number [Referenced ROI Number] mNumber = atoi(item->GetEntryValue(0x3006,0x0084).c_str()); @@ -229,6 +239,8 @@ void clitk::DicomRT_ROI::Read(std::map & rois, gdcm::SQItem * int i=0; for(gdcm::SQItem* j=contours->GetFirstSQItem(); j!=0; j=contours->GetNextSQItem()) { DicomRT_Contour::Pointer c = DicomRT_Contour::New(); + c->SetTolerance(tol); + c->SetTransformMatrix(mTransformMatrix); bool b = c->Read(j); if (b) { mListOfContours.push_back(c); @@ -292,7 +304,7 @@ void clitk::DicomRT_ROI::ComputeMeshFromContour() //-------------------------------------------------------------------- -#if GDCM_MAJOR_VERSION == 2 +#if GDCM_MAJOR_VERSION >= 2 //-------------------------------------------------------------------- void clitk::DicomRT_ROI::UpdateDicomItem() { @@ -352,7 +364,6 @@ void clitk::DicomRT_ROI::SetFromBinaryImage(vvImage::Pointer image, int n, std::vector color, std::string filename) { - // ROI number [Referenced ROI Number] mNumber = n; @@ -380,6 +391,14 @@ vvImage * clitk::DicomRT_ROI::GetImage() const //-------------------------------------------------------------------- +//-------------------------------------------------------------------- +void clitk::DicomRT_ROI::SetTransformMatrix(vtkMatrix4x4* matrix) +{ + mTransformMatrix = matrix; +} +//-------------------------------------------------------------------- + + //-------------------------------------------------------------------- void clitk::DicomRT_ROI::ComputeContoursFromImage() { @@ -488,7 +507,7 @@ void clitk::DicomRT_ROI::ComputeContoursFromImage() //-------------------------------------------------------------------- #if CLITK_USE_SYSTEM_GDCM == 1 -void clitk::DicomRT_ROI::Read(vtkSmartPointer & reader, int roiindex) +void clitk::DicomRT_ROI::Read(vtkSmartPointer & reader, int roiindex, double tol) { vtkRTStructSetProperties * p = reader->GetRTStructSetProperties(); @@ -511,6 +530,8 @@ void clitk::DicomRT_ROI::Read(vtkSmartPointer & reader, i // Get the contour mMesh = reader->GetOutput(roiindex); DicomRT_Contour::Pointer c = DicomRT_Contour::New(); + c->SetTolerance(tol); + c->SetTransformMatrix(mTransformMatrix); c->SetMesh(mMesh); // FIXME no GetZ, not GetPoints mMeshIsUpToDate = true; mListOfContours.push_back(c);