X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcreaVtk%2FcreaVtkHeartAngles.cpp;h=cceaa643963d809df8312c2a1a8e1cc48986a0de;hb=ebac11ff6732523c5d24859e67cec41210e6fc2f;hp=916f0b7190426d90c60115b3165941541a03a609;hpb=d1bdee9512bbd9129786ad6cd9f1b147624a7f8f;p=creaVtk.git diff --git a/lib/creaVtk/creaVtkHeartAngles.cpp b/lib/creaVtk/creaVtkHeartAngles.cpp index 916f0b7..cceaa64 100644 --- a/lib/creaVtk/creaVtkHeartAngles.cpp +++ b/lib/creaVtk/creaVtkHeartAngles.cpp @@ -37,6 +37,16 @@ creaVtkHeartAngles::~creaVtkHeartAngles() { } +vtkImageData* creaVtkHeartAngles::getAlphaImage () +{ + return alphaImage; +} + +vtkImageData* creaVtkHeartAngles::getBetaImage () +{ + return betaImage; +}; + double creaVtkHeartAngles::alpha (double P0a, double P0b,double P0c, double vx, double vy, double vz, double vxp, double vyp, double vzp) { double a=P0a,b=P0b,c=P0c; @@ -161,55 +171,60 @@ double *creaVtkHeartAngles::intersectionPlaneLine(double plx1, double ply1, doub return puntoCorte; } -vtkImageData* creaVtkHeartAngles::calculateAngleAlpha (vtkImageData* image, double Px, double Py, double Pz, double Vx, double Vy, double Vz, double Nx, double Ny, double Nz /*, double* pPlane*/) +void creaVtkHeartAngles::calculateImages (vtkImageData* image, double Px, double Py, double Pz, double Vx, double Vy, double Vz, double Nx, double Ny, double Nz, double p2x, double p2y, double p2z) { - unsigned char* pPix; - pPix = (unsigned char*)image->GetScalarPointer(); - - for(int i=0;i<1041;i=i+3){ - int p1 = pPix[i]; - int p2 = pPix[i+1]; - int p3 = pPix[i+2]; - - double* vecProj; - vecProj = vectorProjection (Px, Py, Pz, Nx, Ny, Nz, p1, p2, p3); - double a, b; - - //double* cutPoint; - //cutPoint = intersectionPlaneLine(pPlane[0], pPlane[1], pPlane[2], pPlane[3], pPlane[4], pPlane[5], pPlane[6], pPlane[7], pPlane[8], px1, py1, pz1, px2, py2, pz2); - - a = alpha (p1, p2, p3, - p1, p2, p3, //?? es el vector? - vecProj[0], vecProj[1], vecProj[2]); - - } - - -} + alphaImage = image; + alphaImage->SetExtent( image->GetExtent() ); + alphaImage->SetOrigin( image->GetOrigin() ); + alphaImage->SetSpacing( image->GetSpacing() ); + alphaImage->SetScalarTypeToUnsignedChar(); + alphaImage->SetNumberOfScalarComponents( image->GetNumberOfScalarComponents() ); + alphaImage->AllocateScalars(); + + betaImage = image; + betaImage->SetExtent( image->GetExtent() ); + betaImage->SetOrigin( image->GetOrigin() ); + betaImage->SetSpacing( image->GetSpacing() ); + betaImage->SetScalarTypeToUnsignedChar(); + betaImage->SetNumberOfScalarComponents( image->GetNumberOfScalarComponents() ); + betaImage->AllocateScalars(); -vtkImageData* creaVtkHeartAngles::calculateAngleBeta (vtkImageData* image, double Px, double Py, double Pz, double Vx, double Vy, double Vz, double Nx, double Ny, double Nz /*, double* pPlane*/) -{ unsigned char* pPix; pPix = (unsigned char*)image->GetScalarPointer(); + double a; + double b; + + for( int i = 0 ; i < image->GetExtent()[1] ; i++ ) + { + for( int j = 0 ; j < image->GetExtent()[3] ; j++ ) + { + for( int k = 0 ; k < image->GetExtent()[5] ; k++ ) + { + unsigned char* pPix = (unsigned char *)image->GetScalarPointer( i , j , k ); + int p1 = pPix[0]; + int p2 = pPix[1]; + int p3 = pPix[2]; + + double* vecProj; + vecProj = vectorProjection (Px, Py, Pz, + Nx, Ny, Nz, + p1, p2, p3); + a = alpha (Px, Py, Pz, + p1, p2, p3, + vecProj[0], vecProj[1], vecProj[2]); + + b = beta (Px, Py, Pz, + p2x, p2y, p2z, + vecProj[0], vecProj[1], vecProj[2]); + + unsigned char *zPtr1 = (unsigned char *) alphaImage->GetScalarPointer( i , j , k ); + *zPtr1 = a; + unsigned char *zPtr2 = (unsigned char *) betaImage->GetScalarPointer( i , j , k ); + *zPtr2 = b; + } + } + } +} - for(int i=0;i<1041;i=i+3){ - int p1 = pPix[i]; - int p2 = pPix[i+1]; - int p3 = pPix[i+2]; - - double* vecProj; - vecProj = vectorProjection (Px, Py, Pz, Nx, Ny, Nz, p1, p2, p3); - double a, b; - - //double* cutPoint; - //cutPoint = intersectionPlaneLine(pPlane[0], pPlane[1], pPlane[2], pPlane[3], pPlane[4], pPlane[5], pPlane[6], pPlane[7], pPlane[8], px1, py1, pz1, px2, py2, pz2); - b = beta (0, 0, 0, - p1, p2, p3, //?? es el vector? - vecProj[0], vecProj[1], vecProj[2]); - - } - - -}