8 #ifndef __SIM_DerVector3_h__
9 #define __SIM_DerVector3_h__
199 S(-rhs.
v()) *
D() +
S(
v()) * rhs.
D());
306 return lhs.
cross(rhs);
312 return lhs.
cross(rhs);
UT_Vector3T< T > rowVecMult(const UT_Vector3T< T > &v, const UT_Matrix3T< S > &m)
Mat3< typename promote< S, T >::type > operator*(S scalar, const Mat3< T > &m)
Multiply each element of the given matrix by scalar and return the result.
SIM_DerVector3 & operator-=(const UT_Vector3 &rhs)
SIM_DerVector3 operator+(const SIM_DerVector3 &rhs) const
SIM_DerScalar dot(const SIM_DerVector3 &lhs, const SIM_DerVector3 &rhs)
SIM_DerVector3 & operator+=(const UT_Vector3 &rhs)
SIM_DerVector3 & operator*=(const SIM_DerScalar &rhs)
Mat3< typename promote< T0, T1 >::type > operator+(const Mat3< T0 > &m0, const Mat3< T1 > &m1)
Add corresponding elements of m0 and m1 and return the result.
static UT_Matrix3 S(const UT_Vector3 &v)
constexpr SYS_FORCE_INLINE T & z() noexcept
SIM_DerScalar dot(const SIM_DerVector3 &rhs) const
GLuint GLsizei GLsizei * length
constexpr SYS_FORCE_INLINE T length() const noexcept
SIM_DerScalar inverse() const
SIM_DerVector3(const UT_Vector3 &v)
Initialize to a constant vector, with no derivative.
SIM_DerVector3 normalize() const
SIM_DerVector3 & operator+=(const SIM_DerVector3 &rhs)
SYS_FORCE_INLINE void outerproductUpdate(T b, const UT_Vector3F &v1, const UT_Vector3F &v2)
SIM_DerVector3 operator-() const
UT_Matrix3T< float > UT_Matrix3
SIM_DerScalar length2() const
SIM_DerScalar length() const
Mat3< typename promote< T0, T1 >::type > operator-(const Mat3< T0 > &m0, const Mat3< T1 > &m1)
Subtract corresponding elements of m0 and m1 and return the result.
SIM_DerVector3 operator*(fpreal scalar) const
SIM_DerVector3(const UT_Vector3 &v, const UT_Matrix3 &D)
SIM_DerVector3 & operator*=(const fpreal rhs)
SIM_DerVector3 cross(const SIM_DerVector3 &rhs) const
SIM_DerVector3 & operator-=(const SIM_DerVector3 &rhs)
const UT_Vector3 & D() const
SIM_DerVector3 operator*(const SIM_DerScalar &s, const SIM_DerVector3 &v)
const UT_Matrix3 & D() const
const UT_Vector3 & v() const
The vector v.
SIM_DerVector3 operator*(const SIM_DerScalar &rhs) const
LeafData & operator=(const LeafData &)=delete
SIM_DerVector3 operator+(const UT_Vector3 &rhs) const
constexpr SYS_FORCE_INLINE T & y() noexcept
SIM_DerVector3 operator-(const SIM_DerVector3 &rhs) const
SIM_DerVector3 operator/(const SIM_DerVector3 &v, const SIM_DerScalar &s)
SIM_DerVector3 cross(const SIM_DerVector3 &lhs, const SIM_DerVector3 &rhs)
SIM_DerVector3 operator-(const UT_Vector3 &rhs) const
constexpr T normalize(UT_FixedVector< T, D > &a) noexcept
constexpr SYS_FORCE_INLINE T & x() noexcept