summaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/Vector3D.cc4
-rw-r--r--src/main/Vector3D.h10
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) */