Several compilation fixes for MSVC and NVCC, basically:

- added explicit enum to int conversion where needed
- if a function is not defined as declared and the return type is "tricky"
  then the type must be typedefined somewhere. A "tricky return type" can be:
  * a template class with a default parameter which depends on another template parameter
  * a nested template class, or type of a nested template class
This commit is contained in:
Gael Guennebaud
2008-07-29 16:33:07 +00:00
parent e0215ee510
commit 842c4f8bfa
17 changed files with 219 additions and 207 deletions

View File

@@ -356,10 +356,10 @@ Quaternion<Scalar> Quaternion<Scalar>::slerp(Scalar t, const Quaternion& other)
// 2 - Quaternion slerp(Scalar t, const Quaternion& other) const
// which returns the s-lerp between this and other
// ??
if (*this == other)
if (m_coeffs == other.m_coeffs)
return *this;
Scalar d = this->dot(other);
Scalar d = m_coeffs.dot(other.m_coeffs);
// theta is the angle between the 2 quaternions
Scalar theta = std::acos(ei_abs(d));
@@ -370,7 +370,7 @@ Quaternion<Scalar> Quaternion<Scalar>::slerp(Scalar t, const Quaternion& other)
if (d<0)
scale1 = -scale1;
return scale0 * (*this) + scale1 * other;
return Quaternion(scale0 * m_coeffs + scale1 * other.m_coeffs);
}
// set from a rotation matrix