2 # ---------------------------------------------------------------------
4 # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
6 # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
7 # Previous Authors : Laurent Guigues, Jean-Pierre Roux
8 # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
10 # This software is governed by the CeCILL-B license under French law and
11 # abiding by the rules of distribution of free software. You can use,
12 # modify and/ or redistribute the software under the terms of the CeCILL-B
13 # license as circulated by CEA, CNRS and INRIA at the following URL
14 # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
15 # or in the file LICENSE.txt.
17 # As a counterpart to the access to the source code and rights to copy,
18 # modify and redistribute granted by the license, users are provided only
19 # with a limited warranty and the software's author, the holder of the
20 # economic rights, and the successive licensors have only limited
23 # The fact that you are presently reading this means that you have had
24 # knowledge of the CeCILL-B license and that you accept its terms.
25 # ------------------------------------------------------------------------ */
28 #include "PlanesOperations.h"
30 /********************************************************************************************
31 ** Start of data viewmanagerData
32 *********************************************************************************************/
34 PlanesOperations::PlanesOperations()
39 PlanesOperations::~PlanesOperations()
45 double* PlanesOperations::getCrossProduct(double* vect0,double* vect1)
48 vectCross = new double[3];
49 vectCross[0] = vect0[1]*vect1[2]-(vect0[2]*vect1[1]);
50 vectCross[1] = -(vect0[0]*vect1[2]-(vect0[2]*vect1[0]));
51 vectCross[2] = vect0[0]*vect1[1]-(vect0[1]*vect1[0]);
56 double PlanesOperations::getDotProduct(double* vect0,double* vect1)
59 vectDot = vect0[0]*vect1[0] + vect0[1]*vect1[1] + vect0[2]*vect1[2];
64 ** Returns the magnitud of the given vector
66 double PlanesOperations::getMagnitud(double* vect)
70 mag = sqrt(pow(vect[0],2) + pow(vect[1],2) + pow(vect[2],2));
75 ** returns the unitary vector of the given vector
76 ** u = 1/|vect| . vect
78 double* PlanesOperations::getNormal(double* vect)
82 double mag = getMagnitud(vect);
84 vectnorm = new double[3];
87 vectnorm[0] = vect[0]/mag;
88 vectnorm[1] = vect[1]/mag;
89 vectnorm[2] = vect[2]/mag;
98 double* PlanesOperations::makeVector(double podouble0[3], double podouble1[3])
101 vect = new double[3];
103 vect[0]= podouble1[0]-podouble0[0];
104 vect[1]= podouble1[1]-podouble0[1];
105 vect[2]= podouble1[2]-podouble0[2];