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   _x1 = 0;
00031   _x2 = 0;
00032   _y1 = 0;
00033   _y2 = 0;
00034   _z1 = 0;
00035   _z2 = 0;
00036   _transformOrientation = NULL;
00037   _marImageData = NULL;
00038 }
00039 //-------------------------------------------------------------------
00040 vtkMPRBaseData::~vtkMPRBaseData()
00041 {
00042         if (_marImageData)                      delete _marImageData;
00043         if (_transformOrientation)      _transformOrientation ->Delete();
00044 }
00045 //-------------------------------------------------------------------
00046 void vtkMPRBaseData::Configure()
00047 {
00048         vtkImageData* img = _marImageData->GetImageData();
00049         if(img !=NULL){
00050                 img->GetExtent (_x1,_x2,_y1,_y2,_z1,_z2);
00051         //std::cout<<"vtkMPRBaseData::Configure() _x1= "<<_x1<<" _x2= "<<_x2<<" _y1= "<<_y1<<" _y2= "<<_y2<<" _z1= "<<_z1<<" _z2= "<<_z2<<std::endl;
00052                 
00053         }
00054         if(_transformOrientation==NULL){
00055                 _transformOrientation=vtkTransform::New();
00056         }
00057         _transformOrientation->Identity();
00058 }
00059 //-------------------------------------------------------------------
00060 void vtkMPRBaseData::GetDimensionExtention(int *x1,int *x2,int *y1,int *y2,int *z1,int *z2)
00061 {
00062         *x1=_x1;
00063         *x2=_x2;
00064         *y1=_y1;
00065         *y2=_y2;
00066         *z1=_z1;
00067         *z2=_z2;
00068 }
00069 
00070 
00071 //------------------------------------------------------------------------
00072 int vtkMPRBaseData::GetMaxPositionX( )
00073 {
00074         return _x2;
00075 }
00076 //------------------------------------------------------------------------
00077 int vtkMPRBaseData::GetMaxPositionY( )
00078 {
00079         return _y2;
00080 }
00081 //------------------------------------------------------------------------
00082 int vtkMPRBaseData::GetMaxPositionZ( )
00083 {
00084         return _z2;
00085 }
00086 //-------------------------------------------------------------------
00087 double vtkMPRBaseData::GetX()
00088 {
00089 
00090         return _x;
00091 }
00092 //-------------------------------------------------------------------
00093 double  vtkMPRBaseData::GetY()
00094 {
00095         return _y;
00096 }
00097 //-------------------------------------------------------------------
00101 void vtkMPRBaseData::SetX(double x)
00102 {
00103         //int dim[3];
00104         int ext[6];
00105         double* origin;
00106         vtkImageData* img = _marImageData->GetImageData();
00107         if(img!=NULL){
00108                 /*img->GetDimensions(dim);
00109                 if (x<0)
00110                 {
00111                         x=0;
00112                 }
00113                 if (x>=dim[0])
00114                 {
00115                         x=dim[0]-1;
00116                 }
00117                 _x=x;*/
00118                 img->GetExtent(ext);
00119                 origin = img->GetOrigin();
00120                 if (x < ext[0])
00121                 {
00122                         x=ext[0] + origin[0];
00123                 }
00124                 if (x > ext[1])
00125                 {
00126                         x=ext[1] + origin[0];
00127                 }
00128                 
00129                 _x=x;
00130         }
00131 }
00132 //-------------------------------------------------------------------
00136 void vtkMPRBaseData::SetY(double y)
00137 {
00138         //int dim[3];
00139         int ext[6];
00140         double* origin;
00141         vtkImageData* img = _marImageData->GetImageData();
00142         if(img!=NULL){
00143                 /*img->GetDimensions(dim);
00144                 if (y<0)
00145                 {
00146                         y=0;
00147                 }
00148                 if (y>=dim[1])
00149                 {
00150                         y=dim[1]-1;
00151                 }
00152                 _y=y;*/
00153                 img->GetExtent(ext);
00154                 origin = img->GetOrigin();
00155                 if (y<ext[2])
00156                 {
00157                         y=ext[2] + origin[1];
00158                 }
00159                 if (y > ext[3])
00160                 {
00161                         y=ext[3] + origin[1];
00162                 }
00163                 _y=y;
00164         }
00165 }
00166 //-------------------------------------------------------------------
00167 vtkTransform *vtkMPRBaseData::GetTransformOrientation()
00168 {       
00169         return _transformOrientation; 
00170 }
00171 //-------------------------------------------------------------------
00172 void vtkMPRBaseData::SetNormal(double nx, double ny, double nz)
00173 {
00174         double alfa = atan2(ny,nx) * 180.0 / 3.1416;
00175         double beta = atan2( nz, sqrt( nx*nx + ny*ny )  ) * 180.0 / 3.1416;
00176         _transformOrientation->Identity();              
00177         _transformOrientation->RotateWXYZ(alfa,0,0,1);
00178         _transformOrientation->RotateWXYZ(-beta,0,1,0);
00179 }
00180 //-------------------------------------------------------------------
00181 void vtkMPRBaseData::InitTransformOrientation(vtkTransform *trans)
00182 {
00183         _transformOrientation->SetMatrix( trans->GetMatrix() );
00184 }
00185 
00186 
00187 
00188 //-------------------------------------------------------------------
00189 //-------------------------------------------------------------------
00190 //-------------------------------------------------------------------
00191 

Generated on 20 Oct 2010 for creaMaracasVisu_lib by  doxygen 1.6.1