Allink  v0.1
MatematicaPlane.h
1 #ifndef MATEMATICAPLANE_H
2 #define MATEMATICAPLANE_H
3 #include <stdio.h>
4 #include <stdlib.h>
5 #include <math.h>
6 #include "MatematicaVect.h"
7 
8 //-----------------Piano-----------------
10 class Piano{
11  public:
13  Piano(Vettore *P1,Vettore *P2,Vettore *P3);
15  ~Piano();
17  double Distance(Vettore *P);
19  int Impact(Vettore *P,Vettore *V);
21  Vettore GetVertex(int i);
27  int SameSide(Vettore *P,Vettore *A,Vettore *B,Vettore *C);
29  double Inv(double x);
31  int IsOnSurf(Vettore *P);
33  int IsOnSurf1(Vettore *P);
35  int IsOnSurf2(Vettore *P);
39  Vettore P1,P2,P3,P4;
41  Vettore Dir21, Dir31, Dir23;
43  Vettore Norm,InvNorm;
45  double Bound[6];
47  int IsInf[3];
49  double dPar;
51  double Rad;
53  double mxy[3],mxz[3];
55  double qxy[3],qxz[3];
56 };
57 #endif //MATEMATICA_H
Vettore Norm
Normal and inverse to the normal.
Vettore P1
Points defining the plane.
double dPar
d of ax+by+cz+d=0
Vettore GetVertex(int i)
Get vertex.
Geometrical operations on vectors.
Definition: MatematicaVect.h:9
Vettore ProjOnNorm(Vettore *v)
Project on normal (vector)
int IsOnSurf1(Vettore *P)
If the point is inside the triangle first method.
int IsInf[3]
If the inverse to the normal is infinite.
Piano(Vettore *P1, Vettore *P2, Vettore *P3)
Allocates.
~Piano()
Frees.
int SameSide(Vettore *P, Vettore *A, Vettore *B, Vettore *C)
Is the orientation of the difference vectors on the same side?
double mxy[3]
Slope.
Define a plane.
double Distance(Vettore *P)
Distance.
double Bound[6]
Boundaries.
Vettore Dir21
Direction vectors.
Vettore Reflect(Vettore *V)
Reflect a vector by the normal.
int IsOnSurf2(Vettore *P)
If the point is inside the triangle second method.
double Rad
Radius of the contact.
double Inv(double x)
Calculate the inverse.
int Impact(Vettore *P, Vettore *V)
Reflect velocity.
double qxy[3]
Intercept.
int IsOnSurf(Vettore *P)
If the point is inside the triangle.
Vettore ProjOnSurf(Vettore *Pos)
Project on surface (point)