From 02e7f2ab41e9164badfb25d8a7acd6561b8ee11b Mon Sep 17 00:00:00 2001 From: Philip Trettner <Philip.Trettner@rwth-aachen.de> Date: Tue, 3 Sep 2019 14:00:38 +0200 Subject: [PATCH] quadric ctor --- src/typed-geometry/types/quadric.hh | 32 +++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/typed-geometry/types/quadric.hh b/src/typed-geometry/types/quadric.hh index e837456c..97de0837 100644 --- a/src/typed-geometry/types/quadric.hh +++ b/src/typed-geometry/types/quadric.hh @@ -122,6 +122,37 @@ public: // TODO: operator== and != + static constexpr quadric from_coefficients(scalar_t A00, scalar_t A01, scalar_t A02, scalar_t A11, scalar_t A12, scalar_t A22, scalar_t b0, scalar_t b1, scalar_t b2, scalar_t c) + { + quadric q; + q.A00 = A00; + q.A01 = A01; + q.A02 = A02; + q.A11 = A11; + q.A12 = A12; + q.A22 = A22; + q.r.x = b0; + q.r.y = b1; + q.r.z = b2; + q.d_sqr = c; + return q; + } + static constexpr quadric from_coefficients(tg::mat3 const& A, tg::vec3 const& b, float c) + { + quadric q; + q.A00 = A[0][0]; + q.A01 = A[0][1]; + q.A02 = A[0][2]; + q.A11 = A[1][1]; + q.A12 = A[1][2]; + q.A22 = A[2][2]; + q.r.x = b[0]; + q.r.y = b[1]; + q.r.z = b[2]; + q.d_sqr = c; + return q; + } + public: constexpr mat<3, 3, ScalarT> A() const { @@ -138,6 +169,7 @@ public: return m; } constexpr vec<3, ScalarT> b() const { return r; } + constexpr scalar_t c() const { return d_sqr; } // TODO: find better place for these? public: -- GitLab