X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvMeshReader.cxx;h=b04163853d202f14f1a435f89b50c9444f38a036;hb=7d4e77191e55f668f316ba3ddf0fddb63e59bd25;hp=736dbcf0ba5bd9475fed3b92db4d32a17a2a6bb4;hpb=3d1a811fcee80cb36cb8938a529d69c482f4fea2;p=clitk.git diff --git a/vv/vvMeshReader.cxx b/vv/vvMeshReader.cxx index 736dbcf..b041638 100644 --- a/vv/vvMeshReader.cxx +++ b/vv/vvMeshReader.cxx @@ -24,7 +24,7 @@ // gdcm #include -#if GDCM_MAJOR_VERSION == 2 +#if GDCM_MAJOR_VERSION >= 2 #include #include #include @@ -34,6 +34,7 @@ #endif // vtk +#include #include #include #include @@ -61,8 +62,6 @@ vtk_mode(false) //------------------------------------------------------------------------------ void vvMeshReader::Update() { - DD("vvMeshReader::Update"); - //Show a progress bar only when opening a DC-struct (ie. multiple contours) vvProgressDialog progress("Opening " + filename,(!vtk_mode) && (selected_contours.size()>1)); this->start(); @@ -107,25 +106,17 @@ std::vector > vvMeshReader::GetROINames() { assert(filename!=""); std::vector > roi_names; - DD(GDCM_MAJOR_VERSION); - DD(CLITK_USE_SYSTEM_GDCM); -#if GDCM_MAJOR_VERSION == 2 +#if CLITK_USE_SYSTEM_GDCM == 1 // Read RT-struct data - DD("before read"); - vtkSmartPointer reader = vtkGDCMPolyDataReader::New(); - reader->SetFileName(filename.c_str()); - reader->Update(); - DD("after read"); + vtkSmartPointer areader = vtkGDCMPolyDataReader::New(); + areader->SetFileName(filename.c_str()); + areader->Update(); // get info on roi names - vtkRTStructSetProperties * p = reader->GetRTStructSetProperties(); - DD(p->GetNumberOfStructureSetROIs()); - DD(p->GetStructureSetROIName(0)); - DD(p->GetStructureSetROINumber(0)); + vtkRTStructSetProperties * p = areader->GetRTStructSetProperties(); int n = p->GetNumberOfStructureSetROIs(); - DD(n); for(unsigned int i=0; iGetStructureSetROIName(i); @@ -133,20 +124,16 @@ std::vector > vvMeshReader::GetROINames() roi_names.push_back(make_pair(nb,name)); } - // ==================== +#else +#if GDCM_MAJOR_VERSION >= 2 - if (false) { // duplicate code from clitk::DicomRT_StructureSet::Read gdcm::Reader * reader = new gdcm::Reader; reader->SetFileName( filename.c_str() ); reader->Read(); - DD("after gdcm read"); const gdcm::DataSet &ds = reader->GetFile().GetDataSet(); - DD("after ds"); - DD(ds.IsEmpty()); - // Check file type //Verify if the file is a RT-Structure-Set dicom file gdcm::File * mFile = &(reader->GetFile()); @@ -172,7 +159,6 @@ std::vector > vvMeshReader::GetROINames() gdcm::Attribute<0x20,0x10> studyid; studyid.SetFromDataSet( ds ); - DD(studyid.GetValue()); gdcm::Tag tssroisq(0x3006,0x0020); // 0x3006,0x0020 = [ Structure Set ROI Sequence ] @@ -182,38 +168,29 @@ std::vector > vvMeshReader::GetROINames() } const gdcm::DataElement &ssroisq = ds.GetDataElement( tssroisq ); - DD("after ssroisq"); gdcm::SmartPointer roi_seq = ssroisq.GetValueAsSQ(); assert(roi_seq); // FIXME error message - DD(roi_seq->GetNumberOfItems()); - for(unsigned int ridx = 0; ridx < roi_seq->GetNumberOfItems(); ++ridx) { - DD(ridx); - gdcm::Item & item = roi_seq->GetItem( ridx + 1); // Item starts at 1 + gdcm::Item & item = roi_seq->GetItem( ridx + 1); // Item starts at 1 const gdcm::Item & sitem = roi_seq->GetItem(ridx+1); // Item start at #1 const gdcm::DataSet& snestedds = sitem.GetNestedDataSet(); const gdcm::DataSet& nestedds = item.GetNestedDataSet(); - DD(nestedds.IsEmpty()); - if( snestedds.FindDataElement( gdcm::Tag(0x3006,0x22) ) ) { - DD("tag found"); // const gdcm::DataElement & a = nestedds.GetDataElement(gdcm::Tag(0x3006,0x26)); // DD(a.GetValue()); gdcm::Attribute<0x3006,0x26> roiname; roiname.SetFromDataSet( snestedds ); std::string name = roiname.GetValue(); // 0x3006,0x0026 = [ROI Name] - DD(name); gdcm::Attribute<0x3006,0x0022> roinumber; roinumber.SetFromDataSet( snestedds ); int nb = roinumber.GetValue(); // 0x3006,0x0022 = [ROI Number] - DD(nb); roi_names.push_back(make_pair(nb,name)); } @@ -221,8 +198,6 @@ std::vector > vvMeshReader::GetROINames() delete reader; - } - #else gdcm::File reader; reader.SetFileName(filename.c_str()); @@ -237,6 +212,8 @@ std::vector > vvMeshReader::GetROINames() if (i->GetEntryValue(0x3006,0x0022)!= gdcm::GDCM_UNFOUND) roi_names.push_back(make_pair(atoi(i->GetEntryValue(0x3006,0x0022).c_str()),i->GetEntryValue(0x3006,0x0026))); #endif +#endif + return roi_names; } //------------------------------------------------------------------------------ @@ -246,7 +223,7 @@ std::vector > vvMeshReader::GetROINames() std::vector vvMeshReader::readSelectedContours() { std::vector result; -#if GDCM_MAJOR_VERSION == 2 +#if GDCM_MAJOR_VERSION >= 2 gdcm::Reader reader; reader.SetFileName(filename.c_str()); reader.Read(); @@ -314,7 +291,11 @@ std::vector vvMeshReader::readSelectedContours() ids[1] = (ids[0] + 1) % tpoint_number.GetValue(); //0-1,1-2,...,n-1-0 contour->GetLines()->InsertNextCell(2, ids); } +#if VTK_MAJOR_VERSION <= 5 append->AddInput(contour); +#else + append->AddInputData(contour); +#endif } else if (contour_type == "POINT ")