From a7f2ebf06c857482a20f1e73f17f7b38a3013756 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Sat, 27 Aug 2005 12:45:29 +0000 Subject: Second commit for Brecht's IK work. (Moto needs 'make install' before you can do IK lib btw) --- intern/moto/include/MT_Matrix3x3.h | 9 +++++++++ intern/moto/include/MT_Transform.h | 19 ++++++++++++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) (limited to 'intern/moto/include') diff --git a/intern/moto/include/MT_Matrix3x3.h b/intern/moto/include/MT_Matrix3x3.h index 712d48b8a64..fb899a7da96 100755 --- a/intern/moto/include/MT_Matrix3x3.h +++ b/intern/moto/include/MT_Matrix3x3.h @@ -79,6 +79,15 @@ public: MT_Vector3& operator[](int i) { return m_el[i]; } const MT_Vector3& operator[](int i) const { return m_el[i]; } + + MT_Vector3 getColumn(int i) const { + return MT_Vector3(m_el[0][i], m_el[1][i], m_el[2][i]); + } + void setColumn(int i, const MT_Vector3& v) { + m_el[0][i] = v[0]; + m_el[1][i] = v[1]; + m_el[2][i] = v[2]; + } void setValue(const float *m) { m_el[0][0] = *m++; m_el[1][0] = *m++; m_el[2][0] = *m++; m++; diff --git a/intern/moto/include/MT_Transform.h b/intern/moto/include/MT_Transform.h index 5b95f81b9dd..ee5ae29dc41 100644 --- a/intern/moto/include/MT_Transform.h +++ b/intern/moto/include/MT_Transform.h @@ -75,6 +75,12 @@ public: setBasis(m); } + static MT_Transform Identity() + { + MT_Transform t; + t.setIdentity(); + return t; + } MT_Point3 operator()(const MT_Point3& p) const { @@ -82,11 +88,22 @@ public: MT_dot(m_basis[1], p) + m_origin[1], MT_dot(m_basis[2], p) + m_origin[2]); } + + MT_Vector3 operator()(const MT_Vector3& p) const { + return MT_Vector3(MT_dot(m_basis[0], p) + m_origin[0], + MT_dot(m_basis[1], p) + m_origin[1], + MT_dot(m_basis[2], p) + m_origin[2]); + } MT_Point3 operator*(const MT_Point3& p) const { return (*this)(p); } - + + MT_Vector3 operator*(const MT_Vector3& p) const { + return (*this)(p); + } + + MT_Matrix3x3& getBasis() { return m_basis; } const MT_Matrix3x3& getBasis() const { return m_basis; } MT_Point3& getOrigin() { return m_origin; } -- cgit v1.2.3