19 return Point((a.x + b.x) * 0.5f, (a.y + b.y) * 0.5f, (a.z + b.z) * 0.5f);
25 return Vector(a.x - b.x, a.y - b.y, a.z - b.z);
30 return Vector(-v.x, -v.y, -v.z);
35 return Point(a.x + v.x, a.y + v.y, a.z + v.z);
55 return Vector(u.x + v.x, u.y + v.y, u.z + v.z);
60 return Vector(u.x - v.x, u.y - v.y, u.z - v.z);
65 return Vector(k * v.x, k * v.y, k * v.z);
88 (u.y * v.z) - (u.z * v.y),
89 (u.z * v.x) - (u.x * v.z),
90 (u.x * v.y) - (u.y * v.x));
95 return u.x * v.x + u.y * v.y + u.z * v.z;
105 return v.x * v.x + v.y * v.y + v.z * v.z;
Vector operator-(const Point &a, const Point &b)
renvoie le vecteur a - b.
Vector operator/(const Vector &v, const float k)
renvoie le vecteur v/k;
float length(const Vector &v)
renvoie la longueur d'un vecteur.
Vector normalize(const Vector &v)
renvoie un vecteur unitaire / longueur == 1.
float length2(const Vector &v)
renvoie la carre de la longueur d'un vecteur.
representation d'un vecteur 3d.
Vector operator*(const float k, const Vector &v)
renvoie le vecteur k*u;
float dot(const Vector &u, const Vector &v)
renvoie le produit scalaire de 2 vecteurs.
float distance(const Point &a, const Point &b)
renvoie la distance etre 2 points.
representation d'un point 3d.
Vector cross(const Vector &u, const Vector &v)
renvoie le produit vectoriel de 2 vecteurs.
Point center(const Point &a, const Point &b)
renvoie le milieu du segment ab.
Point operator+(const Point &a, const Vector &v)
renvoie le point a+v.
float distance2(const Point &a, const Point &b)
renvoie le carre de la distance etre 2 points.