]> Creatis software - creaVtk.git/commitdiff
2187 BBTK Feature New Normal New feature creaVtk
authorctorres <carlos.torres@creatis.insa-lyon.fr>
Tue, 26 Nov 2013 14:44:10 +0000 (15:44 +0100)
committerctorres <carlos.torres@creatis.insa-lyon.fr>
Tue, 26 Nov 2013 14:44:10 +0000 (15:44 +0100)
lib/creaVtk/creaVtkHeartAngles.cpp

index a51007a904625425a8db7c04307f365aed092b2b..916f0b7190426d90c60115b3165941541a03a609 100644 (file)
@@ -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]);
+               
+       }
+       
+       
+}
+