]> Creatis software - bbtk.git/blob - packages/gdcmvtk/src/bbgdcmvtkGetInfoGdcmReader.cxx
Add package vtkgdcm
[bbtk.git] / packages / gdcmvtk / src / bbgdcmvtkGetInfoGdcmReader.cxx
1 #include "bbgdcmvtkGetInfoGdcmReader.h"
2 #include "bbgdcmvtkPackage.h"
3
4 #include "gdcmFile.h"
5 #include "gdcmFileHelper.h"
6 #include "vtkImageData.h"
7 #include "vtkGdcmReader.h"
8 #include <vtkIndent.h>
9
10 namespace bbgdcmvtk
11 {
12
13 BBTK_ADD_BLACK_BOX_TO_PACKAGE(gdcmvtk,GetInfoGdcmReader)
14 BBTK_BLACK_BOX_IMPLEMENTATION(GetInfoGdcmReader,bbtk::AtomicBlackBox);
15 void GetInfoGdcmReader::Process()
16 {
17 std::cout << "Entree ds GetInfoGdcmReader::Process()" << std::endl;
18     
19    f = GDCM_NAME_SPACE::File::New();
20    f->SetFileName( bbGetInputIn() );
21    bool res = f->Load();  
22    if ( !res )
23    {
24 std::cout << " f->Load() failed ..." << std::endl;
25       
26       f->Delete();
27       bbSetOutputOut(0);
28       return;
29    }
30 std::cout << "apres f->Load()" << std::endl;
31
32    int i;
33    std::vector<double> v_iop;
34    float iop[6];
35    f->GetImageOrientationPatient(iop);
36    for(i=0; i< 6; i++)
37       v_iop.push_back(iop[i]);
38    bbSetOutputIOP(v_iop );
39  
40    std::vector<double> v_ipp;
41    float ipp[3];
42    f->GetImagePositionPatient(ipp);
43    for(i=0; i< 3; i++)
44       v_ipp.push_back(ipp[i]);
45    bbSetOutputIPP(v_ipp );
46
47    std::vector<double> v_pixelspacing;
48    v_pixelspacing.push_back(f->GetXSpacing());
49    v_pixelspacing.push_back(f->GetYSpacing());
50    if (f->GetZSize() != 1) {
51       v_pixelspacing.push_back(f->GetZSpacing());
52    }
53    bbSetOutputPixelSpacing(v_pixelspacing);
54    
55    //double interslice;
56     bbSetOutputInterSlice(f->GetZSpacing());
57    
58    reader = vtkGdcmReader::New();
59    reader->SetFileName( bbGetInputIn().c_str() );
60    reader->Update();
61    reader->GetOutput();
62
63    vtkIndent indent ;
64    reader->GetOutput()->PrintSelf(std::cout, indent);
65    bbSetOutputOut( reader->GetOutput() );
66 }
67
68 void GetInfoGdcmReader::bbUserConstructor()
69 {
70 std::cout << "entree ds GetInfoGdcmReader::bbUserConstructor()" << std::endl;
71     bbSetInputIn("");  
72 }
73
74 void GetInfoGdcmReader::bbUserCopyConstructor(bbtk::BlackBox::Pointer)
75 {
76   
77 }
78 void GetInfoGdcmReader::bbUserDestructor()
79 {
80    if(reader)
81       reader->Delete();
82    if(f)
83       f->Delete();
84 }
85
86 }
87 // EO namespace bbgdcmvtk
88
89