diff options
author | Christian Vazquez <christian.vazquez@epfl.ch> | 2011-03-17 15:12:23 +0000 |
---|---|---|
committer | Christian Vazquez <christian.vazquez@epfl.ch> | 2011-03-17 15:12:23 +0000 |
commit | 6fba1dde5cb6c9de4475af385a247c9e4167b8dd (patch) | |
tree | 334aca2dc4b13b69441c44d473453243b67b9207 /src/main | |
parent | cd21ed5dd14012a61f83c696ab765995a4fad624 (diff) | |
download | vhc-6fba1dde5cb6c9de4475af385a247c9e4167b8dd.tar.gz vhc-6fba1dde5cb6c9de4475af385a247c9e4167b8dd.tar.bz2 vhc-6fba1dde5cb6c9de4475af385a247c9e4167b8dd.zip |
implémenté le produit mixte
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/Vector3D.cc | 4 | ||||
-rw-r--r-- | src/main/Vector3D.h | 10 |
2 files changed, 11 insertions, 3 deletions
diff --git a/src/main/Vector3D.cc b/src/main/Vector3D.cc index 9cca834..a97765b 100644 --- a/src/main/Vector3D.cc +++ b/src/main/Vector3D.cc @@ -17,6 +17,10 @@ Vector3D const Vector3D::i = Vector3D(1.0, 0.0, 0.0); Vector3D const Vector3D::j = Vector3D(0.0, 1.0, 0.0); Vector3D const Vector3D::k = Vector3D(0.0, 0.0, 1.0); +double Vector3D::tripleproduct(const Vector3D& v, const Vector3D& w) const { + return this->dot(v.cross(w)); + }; + Vector3D operator* (double n, const Vector3D& v) { return v * n; } diff --git a/src/main/Vector3D.h b/src/main/Vector3D.h index 4e2acb4..bb32b47 100644 --- a/src/main/Vector3D.h +++ b/src/main/Vector3D.h @@ -88,9 +88,9 @@ public: /** Vecteur unitaire de ce vecteur. */ Vector3D operator~() const { if (getNorm() != 0.0) return (*this) / getNorm(); - else throw std::domain_error("Unit vector."); + else throw std::domain_error("Zero vector does not have a unit vector."); }; - + /** retourne le vecteur unitaire */ Vector3D getUnit() const {return ~(*this);} /** Retourne la norme du vecteur. */ @@ -103,7 +103,11 @@ public: return s.str(); }; - /** Vecteur nulle. (0,0,0) */ + /** Retourne le produit mixte de 3 vecteurs (Le vecteur fait un produit scalaire + * avec le produit vectoriel de deux vecteurs passés en argument)*/ + double tripleproduct(const Vector3D& v, const Vector3D& w) const; + + /** Vecteur nul. (0,0,0) */ static const Vector3D Null; /** Vecteur unitaire, d'axe x. (1, 0, 0) */ |