From ed09b4af8d28c71bdc4f17be71b46960b68738e9 Mon Sep 17 00:00:00 2001 From: Eric Wasylishen Date: Sun, 23 Apr 2017 01:40:23 -0600 Subject: [PATCH] common: qvec: add qplane. fix dot(). --- include/common/qvec.hh | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/include/common/qvec.hh b/include/common/qvec.hh index b1596263..1f847508 100644 --- a/include/common/qvec.hh +++ b/include/common/qvec.hh @@ -154,7 +154,7 @@ qvec<3,T> cross(const qvec<3,T> &v1, const qvec<3,T> &v2) { } template -qvec dot(const qvec &v1, const qvec &v2) { +T dot(const qvec &v1, const qvec &v2) { T result = 0; for (int i=0; i; using qvec3d = qvec<3, double>; using qvec4d = qvec<4, double>; +template +class qplane3 { +private: + qvec<3, T> m_normal; + T m_dist; + +public: + qplane3(const qvec<3, T> &normal, const T &dist) + : m_normal(normal), + m_dist(dist) {} + + T distAbove(const qvec<3, T> &pt) const { return dot(pt, m_normal) - m_dist; } + const qvec<3, T> &normal() const { return m_normal; } + const T dist() const { return m_dist; } +}; + +using qplane3f = qplane3; +using qplane3d = qplane3; + /** * M row, N column matrix */