diff options
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) */ |