1 /*=========================================================================
4 =========================================================================*/
5 #include "marImageData.h"
7 // ----------------------------------------------------------------------------------------------
8 marImageData::marImageData(vtkImageData *imagedata)
20 AddImageData(imagedata);
23 // ----------------------------------------------------------------------------------------------
24 marImageData::~marImageData()
26 int i,size=_imagedataLST.size();
29 // _imagedataLST[i]->Delete();
31 _imagedataLST.clear();
34 // ----------------------------------------------------------------------------------------------
35 void marImageData::SetSpcOriginal(double spc[3])
37 this->_spcOriginal[0]=spc[0];
38 this->_spcOriginal[1]=spc[1];
39 this->_spcOriginal[2]=spc[2];
41 // ----------------------------------------------------------------------------------------------
42 void marImageData::SetVoiOriginal(int voi[6])
47 this->_voiOriginal[i] = voi[i];
50 // ----------------------------------------------------------------------------------------------
51 void marImageData::AddImageData(vtkImageData *imagedata)
54 _imagedataLST.push_back( imagedata );
57 // ----------------------------------------------------------------------------------------------
58 void marImageData::GetSpcOriginal(double spc[3])
60 spc[0] = this->_spcOriginal[0];
61 spc[1] = this->_spcOriginal[1];
62 spc[2] = this->_spcOriginal[2];
64 // ----------------------------------------------------------------------------------------------
65 void marImageData::GetVoiOriginal(int voi[6])
70 voi[i] = this->_voiOriginal[i];
73 // ----------------------------------------------------------------------------------------------
74 vtkImageData *marImageData::GetImageDataT(int t)
76 if(_imagedataLST.size() > t){
77 return _imagedataLST[t];
81 // ----------------------------------------------------------------------------------------------
82 vtkImageData *marImageData::GetImageData()
84 if(_imagedataLST.size()>0){
85 return _imagedataLST[0];
90 void marImageData::removeImageData(int index)
92 if(index < _imagedataLST.size()){
94 //vtkImageData* img = _imagedataLST[index];
95 for(int i = index; i < _imagedataLST.size()-1; i++){
96 _imagedataLST[i] = _imagedataLST[i+1];
98 _imagedataLST.pop_back();
102 // ----------------------------------------------------------------------------------------------
103 int marImageData::GetXOriginal(int value)
105 double min=_spcOriginal[0];
106 if (_spcOriginal[1]<min)
108 min = _spcOriginal[1];
110 if (_spcOriginal[2]<min)
112 min = _spcOriginal[2];
114 double result = value / ( _spcOriginal[0] / min ) ;
115 result=result + _voiOriginal[0];
118 // ----------------------------------------------------------------------------------------------
119 int marImageData::GetYOriginal(int value)
121 double min=_spcOriginal[0];
122 if (_spcOriginal[1]<min)
124 min = _spcOriginal[1];
126 if (_spcOriginal[2]<min)
128 min = _spcOriginal[2];
130 double result = value / ( _spcOriginal[1] / min ) ;
131 result=result + _voiOriginal[2];
134 // ----------------------------------------------------------------------------------------------
135 int marImageData::GetZOriginal(int value)
137 double min=_spcOriginal[0];
138 if (_spcOriginal[1]<min)
140 min = _spcOriginal[1];
142 if (_spcOriginal[2]<min)
144 min = _spcOriginal[2];
146 double result = value / ( _spcOriginal[2] / min ) ;
147 result=result + _voiOriginal[4];
150 // ----------------------------------------------------------------------------------------------
151 int marImageData::GetMaxT()
153 return _imagedataLST.size();