1 /*=========================================================================
4 =========================================================================*/
5 #include "marImageData.h"
7 // ----------------------------------------------------------------------------------------------
8 marImageData::marImageData(vtkImageData *imagedata)
19 AddImageData(imagedata);
21 // ----------------------------------------------------------------------------------------------
22 marImageData::~marImageData()
24 int i,size=_imagedataLST.size();
27 _imagedataLST[i]->Delete();
29 _imagedataLST.clear();
32 // ----------------------------------------------------------------------------------------------
33 void marImageData::SetSpcOriginal(double spc[3])
35 this->_spcOriginal[0]=spc[0];
36 this->_spcOriginal[1]=spc[1];
37 this->_spcOriginal[2]=spc[2];
39 // ----------------------------------------------------------------------------------------------
40 void marImageData::SetVoiOriginal(int voi[6])
45 this->_voiOriginal[i] = voi[i];
48 // ----------------------------------------------------------------------------------------------
49 void marImageData::AddImageData(vtkImageData *imagedata)
52 _imagedataLST.push_back( imagedata );
55 // ----------------------------------------------------------------------------------------------
56 void marImageData::GetSpcOriginal(double spc[3])
58 spc[0] = this->_spcOriginal[0];
59 spc[1] = this->_spcOriginal[1];
60 spc[2] = this->_spcOriginal[2];
62 // ----------------------------------------------------------------------------------------------
63 void marImageData::GetVoiOriginal(int voi[6])
68 voi[i] = this->_voiOriginal[i];
71 // ----------------------------------------------------------------------------------------------
72 vtkImageData *marImageData::GetImageDataT(int t)
74 return _imagedataLST[t];
76 // ----------------------------------------------------------------------------------------------
77 vtkImageData *marImageData::GetImageData()
79 return _imagedataLST[0];
82 void marImageData::removeImageData(int index)
84 if(index < _imagedataLST.size()){
86 //vtkImageData* img = _imagedataLST[index];
87 for(int i = index; i < _imagedataLST.size()-1; i++){
88 _imagedataLST[i] = _imagedataLST[i+1];
90 _imagedataLST.pop_back();
94 // ----------------------------------------------------------------------------------------------
95 int marImageData::GetXOriginal(int value)
97 double min=_spcOriginal[0];
98 if (_spcOriginal[1]<min)
100 min = _spcOriginal[1];
102 if (_spcOriginal[2]<min)
104 min = _spcOriginal[2];
106 double result = value / ( _spcOriginal[0] / min ) ;
107 result=result + _voiOriginal[0];
110 // ----------------------------------------------------------------------------------------------
111 int marImageData::GetYOriginal(int value)
113 double min=_spcOriginal[0];
114 if (_spcOriginal[1]<min)
116 min = _spcOriginal[1];
118 if (_spcOriginal[2]<min)
120 min = _spcOriginal[2];
122 double result = value / ( _spcOriginal[1] / min ) ;
123 result=result + _voiOriginal[2];
126 // ----------------------------------------------------------------------------------------------
127 int marImageData::GetZOriginal(int value)
129 double min=_spcOriginal[0];
130 if (_spcOriginal[1]<min)
132 min = _spcOriginal[1];
134 if (_spcOriginal[2]<min)
136 min = _spcOriginal[2];
138 double result = value / ( _spcOriginal[2] / min ) ;
139 result=result + _voiOriginal[4];
142 // ----------------------------------------------------------------------------------------------
143 int marImageData::GetMaxT()
145 return _imagedataLST.size();