diff options
Diffstat (limited to 'intern/moto/include/MT_Tuple4.h')
-rw-r--r-- | intern/moto/include/MT_Tuple4.h | 42 |
1 files changed, 15 insertions, 27 deletions
diff --git a/intern/moto/include/MT_Tuple4.h b/intern/moto/include/MT_Tuple4.h index aa3b60f1c9b..34564ca8359 100644 --- a/intern/moto/include/MT_Tuple4.h +++ b/intern/moto/include/MT_Tuple4.h @@ -53,8 +53,8 @@ class MT_Tuple4 { public: MT_Tuple4() {} - MT_Tuple4(const float *v) { setValue(v); } - MT_Tuple4(const double *v) { setValue(v); } + template <typename T> + MT_Tuple4(const T *v) { setValue(v); } MT_Tuple4(MT_Scalar xx, MT_Scalar yy, MT_Scalar zz, MT_Scalar ww) { setValue(xx, yy, zz, ww); } @@ -78,32 +78,20 @@ public: const MT_Scalar *getValue() const { return m_co; } - void getValue(float *v) const { - v[0] = float(m_co[0]); - v[1] = float(m_co[1]); - v[2] = float(m_co[2]); - v[3] = float(m_co[3]); + template <typename T> + void getValue(T *v) const { + v[0] = (T)m_co[0]; + v[1] = (T)m_co[1]; + v[2] = (T)m_co[2]; + v[3] = (T)m_co[3]; } - - void getValue(double *v) const { - v[0] = double(m_co[0]); - v[1] = double(m_co[1]); - v[2] = double(m_co[2]); - v[3] = double(m_co[3]); - } - - void setValue(const float *v) { - m_co[0] = MT_Scalar(v[0]); - m_co[1] = MT_Scalar(v[1]); - m_co[2] = MT_Scalar(v[2]); - m_co[3] = MT_Scalar(v[3]); - } - - void setValue(const double *v) { - m_co[0] = MT_Scalar(v[0]); - m_co[1] = MT_Scalar(v[1]); - m_co[2] = MT_Scalar(v[2]); - m_co[3] = MT_Scalar(v[3]); + + template <typename T> + void setValue(const T *v) { + m_co[0] = (MT_Scalar)v[0]; + m_co[1] = (MT_Scalar)v[1]; + m_co[2] = (MT_Scalar)v[2]; + m_co[3] = (MT_Scalar)v[3]; } void setValue(MT_Scalar xx, MT_Scalar yy, MT_Scalar zz, MT_Scalar ww) { |