marImageData.cpp

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003 
00004 =========================================================================*/
00005 #include "marImageData.h"
00006 
00007 // ----------------------------------------------------------------------------------------------
00008 marImageData::marImageData(vtkImageData *imagedata)
00009 {
00010         _spcOriginal[0] = 1;
00011         _spcOriginal[1] = 1;
00012         _spcOriginal[2] = 1;
00013         _voiOriginal[0] = 0;
00014         _voiOriginal[1] = 0;
00015         _voiOriginal[2] = 0;
00016         _voiOriginal[3] = 0;
00017         _voiOriginal[4] = 0;
00018         _voiOriginal[5] = 0;
00019         if(imagedata!=NULL){
00020                 AddImageData(imagedata);
00021         }
00022 }
00023 // ----------------------------------------------------------------------------------------------
00024 marImageData::~marImageData()
00025 {
00026         int i,size=_imagedataLST.size();
00027         for (i=0;i<size;i++)
00028         {
00029         //      _imagedataLST[i]->Delete();
00030         }
00031         _imagedataLST.clear();
00032 }
00033 
00034 // ----------------------------------------------------------------------------------------------
00035 void marImageData::SetSpcOriginal(double spc[3])
00036 {
00037         this->_spcOriginal[0]=spc[0];
00038         this->_spcOriginal[1]=spc[1];
00039         this->_spcOriginal[2]=spc[2];
00040 }
00041 // ----------------------------------------------------------------------------------------------
00042 void marImageData::SetVoiOriginal(int voi[6])
00043 {
00044         int i;
00045         for (i=0;i<6;i++)
00046         {
00047                 this->_voiOriginal[i] = voi[i];
00048         }
00049 }
00050 // ----------------------------------------------------------------------------------------------
00051 void marImageData::AddImageData(vtkImageData *imagedata)
00052 {
00053         if (imagedata!=NULL){
00054                 _imagedataLST.push_back( imagedata );
00055         }
00056 }
00057 // ----------------------------------------------------------------------------------------------
00058 void marImageData::GetSpcOriginal(double spc[3])
00059 {
00060         spc[0] = this->_spcOriginal[0];
00061         spc[1] = this->_spcOriginal[1];
00062         spc[2] = this->_spcOriginal[2];
00063 }
00064 // ----------------------------------------------------------------------------------------------
00065 void marImageData::GetVoiOriginal(int voi[6])
00066 {
00067         int i;
00068         for (i=0;i<6;i++)
00069         {
00070                 voi[i] = this->_voiOriginal[i];
00071         }
00072 }
00073 // ----------------------------------------------------------------------------------------------
00074 vtkImageData *marImageData::GetImageDataT(int t)
00075 {
00076         if(_imagedataLST.size() > t){
00077                 return _imagedataLST[t];
00078         }
00079         return NULL;
00080 }
00081 // ----------------------------------------------------------------------------------------------
00082 vtkImageData *marImageData::GetImageData()
00083 {
00084         if(_imagedataLST.size()>0){
00085                 return _imagedataLST[0];
00086         }
00087         return NULL;
00088 }
00089 
00090 void marImageData::removeImageData(int index)
00091 {
00092         if(index < _imagedataLST.size()){
00093 
00094                 /*vtkImageData* img = _imagedataLST[index];
00095                 if(img->GetReferenceCount()>1){
00096                         img->SetReferenceCount(img->GetReferenceCount()-1);
00097                         //img->Delete();
00098                 }*/
00099                 for(int i = index; i < _imagedataLST.size()-1; i++){                    
00100                         _imagedataLST[i] = _imagedataLST[i+1];
00101                 }
00102                 _imagedataLST.pop_back();
00103                 //delete img;
00104         }       
00105 }
00106 // ----------------------------------------------------------------------------------------------
00107 int marImageData::GetXOriginal(int value)
00108 {
00109         double min=_spcOriginal[0];
00110         if (_spcOriginal[1]<min)
00111         {
00112                 min = _spcOriginal[1];
00113         }
00114         if (_spcOriginal[2]<min)
00115         {
00116                 min = _spcOriginal[2];
00117         }
00118         double result = value / (  _spcOriginal[0] / min ) ;
00119         result=result + _voiOriginal[0];
00120         return (int)result;
00121 }
00122 // ----------------------------------------------------------------------------------------------
00123 int marImageData::GetYOriginal(int value)
00124 {
00125         double min=_spcOriginal[0];
00126         if (_spcOriginal[1]<min)
00127         {
00128                 min = _spcOriginal[1];
00129         }
00130         if (_spcOriginal[2]<min)
00131         {
00132                 min = _spcOriginal[2];
00133         }
00134         double result = value / (  _spcOriginal[1] / min ) ;
00135         result=result + _voiOriginal[2];
00136         return (int)result;
00137 }
00138 // ----------------------------------------------------------------------------------------------
00139 int marImageData::GetZOriginal(int value)
00140 {
00141         double min=_spcOriginal[0];
00142         if (_spcOriginal[1]<min)
00143         {
00144                 min = _spcOriginal[1];
00145         }
00146         if (_spcOriginal[2]<min)
00147         {
00148                 min = _spcOriginal[2];
00149         }
00150         double result = value / (  _spcOriginal[2] / min ) ;
00151         result=result + _voiOriginal[4];
00152         return (int)result;
00153 }
00154 // ----------------------------------------------------------------------------------------------
00155 int marImageData::GetMaxT()
00156 {
00157         return _imagedataLST.size();
00158 }

Generated on 20 Oct 2010 for creaMaracasVisu_lib by  doxygen 1.6.1