diff --git a/MathLib/Vector3.cpp b/MathLib/Vector3.cpp index b4a12364a2a68a01d9b58c23258fcb9074892cbf..040b473a9ab7eb2b2e7fc8e779e71cd4f15866d3 100644 --- a/MathLib/Vector3.cpp +++ b/MathLib/Vector3.cpp @@ -24,10 +24,10 @@ double scalarTriple(MathLib::Vector3 const& u, MathLib::Vector3 const& v, return pu.cross(pv).dot(pw); } -//double scalarTriple(EigenLib::Vector3d const& u, EigenLib::Vector3d const& v, -// EigenLib::Vector3d const& w) -//{ -// return (u.cross(v).dot(w))(0,0); -//} +double scalarTriple(Eigen::Vector3d const& u, Eigen::Vector3d const& v, + Eigen::Vector3d const& w) +{ + return u.cross(v).dot(w); +} } // end namespace MathLib diff --git a/MathLib/Vector3.h b/MathLib/Vector3.h index 7d982e87209555ebc523358841f7daf2b1e72c38..d7b35db9a4a5d125205902db3a1493de186e3bf8 100644 --- a/MathLib/Vector3.h +++ b/MathLib/Vector3.h @@ -16,6 +16,7 @@ #pragma once +#include <Eigen/Eigen> #include <cmath> #include "TemplatePoint.h" @@ -200,4 +201,7 @@ using Vector3 = TemplateVector3<double>; double scalarTriple(MathLib::Vector3 const& u, MathLib::Vector3 const& v, MathLib::Vector3 const& w); +/// Calculates the scalar triple (u x v) . w using Eigen functionality +double scalarTriple(Eigen::Vector3d const& u, Eigen::Vector3d const& v, + Eigen::Vector3d const& w); } // namespace MathLib