00001 00002 #include "vtkBaseData.h" 00003 00004 vtkBaseData::vtkBaseData() 00005 { 00006 00007 _z = 0; 00008 _t = 0; 00009 _marImageData = 0; 00010 } 00011 00012 //------------------------------------------------------------------- 00013 vtkBaseData::~vtkBaseData() 00014 { 00015 } 00016 00017 //------------------------------------------------------------------- 00018 void vtkBaseData::SetMarImageData(marImageData *marimagedata) 00019 { 00020 _marImageData = marimagedata; 00021 //Configure(); 00022 } 00023 00024 //------------------------------------------------------------------- 00025 vtkImageData* vtkBaseData::GetImageData() 00026 { 00027 if(_marImageData){ 00028 return _marImageData->GetImageDataT(_t); 00029 }else{ 00030 return 0; 00031 } 00032 00033 } 00034 //------------------------------------------------------------------- 00035 marImageData* vtkBaseData::GetMarImageData() 00036 { 00037 return _marImageData; 00038 } 00039 00040 //------------------------------------------------------------------- 00041 00042 void vtkBaseData::Configure() // virtual 00043 { 00044 } 00045 00046 //------------------------------------------------------------------- 00047 void vtkBaseData::SetZ(double z){ 00048 //int maxZ; 00049 00050 // int dim[3]; 00051 // _marImageData->GetDimensions(dim); 00052 // maxZ=dim[2]; 00053 00054 int ext[6]; 00055 double *origin; 00056 00057 00058 vtkImageData* img = _marImageData->GetImageData(); 00059 if(img!=NULL){ 00060 /*img->GetWholeExtent(ext); 00061 maxZ=ext[5]-ext[4]+1; 00062 00063 if (z>=maxZ) 00064 { 00065 //z=maxZ-1; 00066 } 00067 if (z<=0) 00068 { 00069 z=0; 00070 } 00071 00072 _z=z;*/ 00073 img->GetExtent(ext); 00074 origin = img->GetOrigin(); 00075 if (z > ext[5]) 00076 { 00077 z = ext[5] + origin[2]; 00078 } 00079 if (z < ext[4]) 00080 { 00081 z = ext[4] + origin[2]; 00082 } 00083 00084 _z=z; 00085 } 00086 } 00087 //------------------------------------------------------------------- 00088 double vtkBaseData::GetZ() 00089 { 00090 return _z; 00091 } 00092 //------------------------------------------------------------------- 00093 int vtkBaseData::GetT() 00094 { 00095 return _t; 00096 } 00097 //------------------------------------------------------------------- 00098 void vtkBaseData::SetT(double t) 00099 { 00100 int maxT = _marImageData->GetMaxT(); 00101 if (t>=maxT) 00102 { 00103 t=maxT-1; 00104 } 00105 if (t<=0) 00106 { 00107 t=0; 00108 } 00109 _t=(int)t; 00110 } 00111