From: ctorres Date: Tue, 26 Nov 2013 14:44:10 +0000 (+0100) Subject: 2187 BBTK Feature New Normal New feature creaVtk X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?p=creaVtk.git;a=commitdiff_plain;h=358f33d53518be04af03a355ba3e31bf2a611140 2187 BBTK Feature New Normal New feature creaVtk --- diff --git a/lib/creaVtk/creaVtkHeartAngles.cpp b/lib/creaVtk/creaVtkHeartAngles.cpp index a51007a..916f0b7 100644 --- a/lib/creaVtk/creaVtkHeartAngles.cpp +++ b/lib/creaVtk/creaVtkHeartAngles.cpp @@ -44,7 +44,7 @@ double creaVtkHeartAngles::alpha (double P0a, double P0b,double P0c, double vx, double xp=vxp,yp=vyp,zp=vzp; double alpha; -//Calcular el ángulo que forman las rectas, sabiendo sus vectores directores. + //Calcular el ángulo que forman las rectas, sabiendo sus vectores directores. double cosAlpha = ( ( (x-a)*(xp-a) )+( (y-b)*(yp-b) )+( (z-c)*(zp-c) ) )/sqrt((( (pow(x,2.0)-pow(a,2.0)) + (pow(y,2.0)-pow(b,2.0)) + (pow(z,2.0)-pow(c,2.0)) )*( (pow(xp,2.0)-pow(a,2.0)) + (pow(yp,2.0)-pow(b,2.0)) + (pow(zp,2.0)-pow(c,2.0)) ) )); alpha = (180 * acos(fabs(cosAlpha)))/M_PI; @@ -64,7 +64,7 @@ double creaVtkHeartAngles::beta (double P0a, double P0b,double P0c, double P3x, double xp=P4x,yp=P4y,zp=P4z; double beta; -//Calcular el ángulo que forman las rectas, sabiendo sus vectores directores. + //Calcular el ángulo que forman las rectas, sabiendo sus vectores directores. double cosBeta = ( ( (x-a)*(xp-a) )+( (y-b)*(yp-b) )+( (z-c)*(zp-c) ) )/sqrt((( (pow(x,2.0)-pow(a,2.0)) + (pow(y,2.0)-pow(b,2.0)) + (pow(z,2.0)-pow(c,2.0)) )*( (pow(xp,2.0)-pow(a,2.0)) + (pow(yp,2.0)-pow(b,2.0)) + (pow(zp,2.0)-pow(c,2.0)) ) )); beta = (180 * acos(fabs(cosBeta)))/M_PI; @@ -161,13 +161,55 @@ double *creaVtkHeartAngles::intersectionPlaneLine(double plx1, double ply1, doub return puntoCorte; } -//--------------------------------------------- -//Method template -//--------------------------------------------- -/* -void creaVtkHeartAngles::FunctionName(int& parameterA) +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*/) { - parameterA = 2 * parameterA; - return; + 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]); + + } + + } -*/ + +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(); + + 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]); + + } + + +} +