summaryrefslogtreecommitdiff
path: root/src/main/Vector3D.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/Vector3D.h')
-rw-r--r--src/main/Vector3D.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/main/Vector3D.h b/src/main/Vector3D.h
index 3c41147..ee7ffcc 100644
--- a/src/main/Vector3D.h
+++ b/src/main/Vector3D.h
@@ -8,7 +8,7 @@
#ifndef VECTOR3D_H_
#define VECTOR3D_H_
-#include <math.h>
+#include <limits>
#include "Printable.h"
namespace vhc {
@@ -93,9 +93,12 @@ public:
/** Retourne le vecteur unitaire */
Vector3D unit() const;
- /** Retourne la norme du vecteur. */
+ /** Retourne la norme euclidienne du vecteur. */
double norm() const;
+ /** Retourne la norme de ce vecteur correspondant au minimum des composantes. */
+ double minNorm() const;
+
/** Retourne la norme du vecteur au carre. */
double normSquare() const;
@@ -112,6 +115,9 @@ public:
* le vecteur de l'axe, et en <code>t</code>, l'angle de rotation. */
Vector3D rotate(const Vector3D& axis, double t) const;
+ /** Verifie si les vecteurs <code>u</code> et <code>v</code> sont approximativement égaux, i.e. que la norme de leur difference est plus petit qu'un epsilon. */
+ static bool ae(const Vector3D& u, const Vector3D& v, double epsilon = std::numeric_limits<double>::epsilon());
+
/** Vecteur nul. (0,0,0) */
static const Vector3D Null;