#include #include #include #include #include #include #include #include #include "wxMPRBaseData.h" #include "pPlotter/HistogramDialog.h" #ifdef _DEBUG #define new DEBUG_NEW #endif //------------------------------------------------------------------- //------------------------------------------------------------------- //------------------------------------------------------------------- //------------------------------------------------------------------- //------------------------------------------------------------------- //------------------------------------------------------------------- vtkMPRBaseData::vtkMPRBaseData() { _x=0; _y=0; _z=0; _x1 = 0; _x2 = 0; _y1 = 0; _y2 = 0; _z1 = 0; _z2 = 0; _transformOrientation = NULL; _marImageData = NULL; } //------------------------------------------------------------------- vtkMPRBaseData::~vtkMPRBaseData() { if (_marImageData) delete _marImageData; if (_transformOrientation) _transformOrientation ->Delete(); } //------------------------------------------------------------------- void vtkMPRBaseData::Configure() { vtkImageData* img = _marImageData->GetImageData(); if(img !=NULL){ img->GetExtent (_x1,_x2,_y1,_y2,_z1,_z2); //std::cout<<"vtkMPRBaseData::Configure() _x1= "<<_x1<<" _x2= "<<_x2<<" _y1= "<<_y1<<" _y2= "<<_y2<<" _z1= "<<_z1<<" _z2= "<<_z2<Identity(); } //------------------------------------------------------------------- void vtkMPRBaseData::GetDimensionExtention(int *x1,int *x2,int *y1,int *y2,int *z1,int *z2) { *x1=_x1; *x2=_x2; *y1=_y1; *y2=_y2; *z1=_z1; *z2=_z2; } //------------------------------------------------------------------------ int vtkMPRBaseData::GetMaxPositionX( ) { return _x2; } //------------------------------------------------------------------------ int vtkMPRBaseData::GetMaxPositionY( ) { return _y2; } //------------------------------------------------------------------------ int vtkMPRBaseData::GetMaxPositionZ( ) { return _z2; } //------------------------------------------------------------------- double vtkMPRBaseData::GetX() { return _x; } //------------------------------------------------------------------- double vtkMPRBaseData::GetY() { return _y; } //------------------------------------------------------------------- /** ** Calculates the value of the slider and the layer in the image that is spouse to show **/ void vtkMPRBaseData::SetX(double x) { //int dim[3]; int ext[6]; double* origin; vtkImageData* img = _marImageData->GetImageData(); if(img!=NULL){ /*img->GetDimensions(dim); if (x<0) { x=0; } if (x>=dim[0]) { x=dim[0]-1; } _x=x;*/ img->GetExtent(ext); origin = img->GetOrigin(); if (x < ext[0]) { x=ext[0] + origin[0]; } if (x > ext[1]) { x=ext[1] + origin[0]; } _x=x; } } //------------------------------------------------------------------- /** ** Calculates the value of the slider and the layer in the image that is spouse to show **/ void vtkMPRBaseData::SetY(double y) { //int dim[3]; int ext[6]; double* origin; vtkImageData* img = _marImageData->GetImageData(); if(img!=NULL){ /*img->GetDimensions(dim); if (y<0) { y=0; } if (y>=dim[1]) { y=dim[1]-1; } _y=y;*/ img->GetExtent(ext); origin = img->GetOrigin(); if (y ext[3]) { y=ext[3] + origin[1]; } _y=y; } } //------------------------------------------------------------------- vtkTransform *vtkMPRBaseData::GetTransformOrientation() { return _transformOrientation; } //------------------------------------------------------------------- void vtkMPRBaseData::SetNormal(double nx, double ny, double nz) { double alfa = atan2(ny,nx) * 180.0 / 3.1416; double beta = atan2( nz, sqrt( nx*nx + ny*ny ) ) * 180.0 / 3.1416; _transformOrientation->Identity(); _transformOrientation->RotateWXYZ(alfa,0,0,1); _transformOrientation->RotateWXYZ(-beta,0,1,0); } //------------------------------------------------------------------- void vtkMPRBaseData::InitTransformOrientation(vtkTransform *trans) { _transformOrientation->SetMatrix( trans->GetMatrix() ); } //------------------------------------------------------------------- //------------------------------------------------------------------- //-------------------------------------------------------------------