10 #ifndef INCLUDED_IMATHFRAME_H
11 #define INCLUDED_IMATHFRAME_H
15 IMATH_INTERNAL_NAMESPACE_HEADER_ENTER
18 template <
class T>
class Vec3;
53 Vec3<T>&) IMATH_NOEXCEPT;
58 const
Vec3<T>&) IMATH_NOEXCEPT;
80 const
Vec3<T>& pk) IMATH_NOEXCEPT
89 int i = fabs (t[0]) < fabs (t[1]) ? 0 : 1;
90 if (fabs (t[2]) < fabs (t[i]))
106 M[0][3] = 0.0, M[1][0] = n[0];
109 M[1][3] = 0.0, M[2][0] = b[0];
112 M[2][3] = 0.0, M[3][0] = pi[0];
148 if (ti.length() != 0.0 && tj.length() != 0.0)
167 if (a.
length() != 0.0 && r != 0.0)
176 return Mi * Ti * R * Tj;
214 IMATH_INTERNAL_NAMESPACE_HEADER_EXIT
216 #endif // INCLUDED_IMATHFRAME_H
SYS_API float acosf(float x)
*get result *(waiting if necessary)*A common idiom is to fire a bunch of sub tasks at the and then *wait for them to all complete We provide a helper class
IMATH_HOSTDEVICE T length() const IMATH_NOEXCEPT
Return the Euclidean norm.
GLboolean GLboolean GLboolean GLboolean a
Matrix44< T > constexpr nextFrame(const Matrix44< T > &, const Vec3< T > &, const Vec3< T > &, Vec3< T > &, Vec3< T > &) IMATH_NOEXCEPT
Matrix44< T > constexpr lastFrame(const Matrix44< T > &, const Vec3< T > &, const Vec3< T > &) IMATH_NOEXCEPT
fpreal64 dot(const CE_VectorT< T > &a, const CE_VectorT< T > &b)
const Vec3 & normalizeExc()
Normalize in place. If length()==0, throw an exception.
IMATH_HOSTDEVICE IMATH_CONSTEXPR14 const Matrix44 & translate(const Vec3< S > &t) IMATH_NOEXCEPT
GLboolean GLboolean GLboolean b
Matrix44< T > constexpr firstFrame(const Vec3< T > &, const Vec3< T > &, const Vec3< T > &) IMATH_NOEXCEPT
__hostdev__ constexpr T pi()
Pi constant taken from Boost to match old behaviour.
IMATH_HOSTDEVICE IMATH_CONSTEXPR14 const Matrix44 & setAxisAngle(const Vec3< S > &ax, S ang) IMATH_NOEXCEPT
IMATH_HOSTDEVICE constexpr Vec3 cross(const Vec3 &v) const IMATH_NOEXCEPT
Right-handed cross product.
IMATH_HOSTDEVICE const Vec3 & normalize() IMATH_NOEXCEPT
Normalize in place. If length()==0, return a null vector.