wxMPRBaseData.cxx

Go to the documentation of this file.
00001 
00002 
00003 #include <vtkPlanes.h>
00004 #include <vtkProperty.h> 
00005 #include <vtkPolyData.h> 
00006 #include <vtkDataSet.h> 
00007 #include <vtkCellArray.h>
00008 #include <vtkTransform.h>
00009 #include <vtkTransformFilter.h>
00010 #include <vtkDataSetReader.h>
00011 
00012 #include "wxMPRBaseData.h"
00013 #include "pPlotter/HistogramDialog.h"
00014 
00015 
00016 
00017 //-------------------------------------------------------------------
00018 //-------------------------------------------------------------------
00019 //-------------------------------------------------------------------
00020 
00021 
00022 //-------------------------------------------------------------------
00023 //-------------------------------------------------------------------
00024 //-------------------------------------------------------------------
00025 vtkMPRBaseData::vtkMPRBaseData()
00026 {
00027   _x=0;
00028   _y=0;
00029   _z=0;
00030   _transformOrientation = NULL;
00031   _marImageData = NULL;
00032 }
00033 //-------------------------------------------------------------------
00034 vtkMPRBaseData::~vtkMPRBaseData()
00035 {
00036         if (_marImageData)                      delete _marImageData;
00037         if (_transformOrientation)      _transformOrientation ->Delete();
00038 }
00039 //-------------------------------------------------------------------
00040 void vtkMPRBaseData::Configure()
00041 {
00042         vtkImageData* img = _marImageData->GetImageData();
00043         if(img !=NULL){
00044                 img->GetExtent (_x1,_x2,_y1,_y2,_z1,_z2);
00045         //std::cout<<"vtkMPRBaseData::Configure() _x1= "<<_x1<<" _x2= "<<_x2<<" _y1= "<<_y1<<" _y2= "<<_y2<<" _z1= "<<_z1<<" _z2= "<<_z2<<std::endl;
00046                 if(_transformOrientation==NULL){
00047                         _transformOrientation=vtkTransform::New();
00048                 }
00049                 _transformOrientation->Identity();
00050         }
00051 }
00052 //-------------------------------------------------------------------
00053 void vtkMPRBaseData::GetDimensionExtention(int *x1,int *x2,int *y1,int *y2,int *z1,int *z2)
00054 {
00055         *x1=_x1;
00056         *x2=_x2;
00057         *y1=_y1;
00058         *y2=_y2;
00059         *z1=_z1;
00060         *z2=_z2;
00061 }
00062 
00063 
00064 //------------------------------------------------------------------------
00065 int vtkMPRBaseData::GetMaxPositionX( )
00066 {
00067         return _x2;
00068 }
00069 //------------------------------------------------------------------------
00070 int vtkMPRBaseData::GetMaxPositionY( )
00071 {
00072         return _y2;
00073 }
00074 //------------------------------------------------------------------------
00075 int vtkMPRBaseData::GetMaxPositionZ( )
00076 {
00077         return _z2;
00078 }
00079 //-------------------------------------------------------------------
00080 double vtkMPRBaseData::GetX()
00081 {
00082 
00083         return _x;
00084 }
00085 //-------------------------------------------------------------------
00086 double  vtkMPRBaseData::GetY()
00087 {
00088         return _y;
00089 }
00090 //-------------------------------------------------------------------
00094 void vtkMPRBaseData::SetX(double x)
00095 {
00096         //int dim[3];
00097         int ext[6];
00098 
00099         vtkImageData* img = _marImageData->GetImageData();
00100         if(img!=NULL){
00101                 /*img->GetDimensions(dim);
00102                 if (x<0)
00103                 {
00104                         x=0;
00105                 }
00106                 if (x>=dim[0])
00107                 {
00108                         x=dim[0]-1;
00109                 }
00110                 _x=x;*/
00111                 img->GetExtent(ext);
00112                 if (x < ext[0])
00113                 {
00114                         x=ext[0];
00115                 }
00116                 if (x > ext[1])
00117                 {
00118                         x=ext[1];
00119                 }
00120                 _x=x;
00121         }
00122 }
00123 //-------------------------------------------------------------------
00127 void vtkMPRBaseData::SetY(double y)
00128 {
00129         //int dim[3];
00130         int ext[6];
00131         vtkImageData* img = _marImageData->GetImageData();
00132         if(img!=NULL){
00133                 /*img->GetDimensions(dim);
00134                 if (y<0)
00135                 {
00136                         y=0;
00137                 }
00138                 if (y>=dim[1])
00139                 {
00140                         y=dim[1]-1;
00141                 }
00142                 _y=y;*/
00143                 img->GetExtent(ext);
00144                 if (y<ext[2])
00145                 {
00146                         y=ext[2];
00147                 }
00148                 if (y > ext[3])
00149                 {
00150                         y=ext[3];
00151                 }
00152                 _y=y;
00153         }
00154 }
00155 //-------------------------------------------------------------------
00156 vtkTransform *vtkMPRBaseData::GetTransformOrientation()
00157 {       
00158         return _transformOrientation; 
00159 }
00160 //-------------------------------------------------------------------
00161 void vtkMPRBaseData::SetNormal(double nx, double ny, double nz)
00162 {
00163         double alfa = atan2(ny,nx) * 180.0 / 3.1416;
00164         double beta = atan2( nz, sqrt( nx*nx + ny*ny )  ) * 180.0 / 3.1416;
00165         _transformOrientation->Identity();              
00166         _transformOrientation->RotateWXYZ(alfa,0,0,1);
00167         _transformOrientation->RotateWXYZ(-beta,0,1,0);
00168 }
00169 //-------------------------------------------------------------------
00170 void vtkMPRBaseData::InitTransformOrientation(vtkTransform *trans)
00171 {
00172         _transformOrientation->SetMatrix( trans->GetMatrix() );
00173 }
00174 
00175 
00176 
00177 //-------------------------------------------------------------------
00178 //-------------------------------------------------------------------
00179 //-------------------------------------------------------------------
00180 

Generated on 18 Mar 2010 for creaMaracasVisu_lib by  doxygen 1.6.1