29#ifndef PX_VEC_TRANSFORM_H
30#define PX_VEC_TRANSFORM_H
32#include "foundation/PxVecMath.h"
33#include "foundation/PxTransform.h"
52 q = QuatVLoadXYZW(orientation.q.x, orientation.q.y, orientation.q.z, orientation.q.w);
54 p = V3LoadU(orientation.p);
59 PX_ASSERT(isSaneQuatV(q0));
64 PX_ASSERT(x.isSane());
72 return PxTransformV(QuatRotateInv(q, V3Neg(p)), QuatConjugate(q));
91 return QuatTransform(q, p, input);
98 return QuatRotateInv(q, V3Sub(input, p));
105 return QuatRotate(q, input);
112 return QuatRotateInv(q, input);
122 return PxTransformV(V3Add(QuatRotate(q, src.p), p), QuatMul(q, src.q));
125#if PX_LINUX && PX_CLANG
126#pragma clang diagnostic push
127#pragma clang diagnostic ignored "-Wbitwise-instead-of-logical"
136 return isFiniteVec3V(p) & isFiniteQuatV(q) & isValidQuatV(q);
156 return isFiniteVec3V(p) & isFiniteQuatV(q);
159#if PX_LINUX && PX_CLANG
160#pragma clang diagnostic pop
171 const QuatV qinv = QuatConjugate(q);
172 const Vec3V v = QuatRotate(qinv, V3Sub(src.p, p));
173 const QuatV rot = QuatMul(qinv, src.q);
183PX_FORCE_INLINE PxTransformV loadTransformA(
const PxTransform& transform)
185 const QuatV q0 = QuatVLoadA(&transform.q.x);
186 const Vec3V p0 = V3LoadA(&transform.p.x);
188 return PxTransformV(p0, q0);
191PX_FORCE_INLINE PxTransformV loadTransformU(
const PxTransform& transform)
193 const QuatV q0 = QuatVLoadU(&
transform.q.x);
194 const Vec3V p0 = V3LoadU(&
transform.p.x);
196 return PxTransformV(p0, q0);
219 QuatGetMat33V(other.q, rot.col0, rot.col1, rot.col2);
225 QuatGetMat33V(quat, rot.col0, rot.col1, rot.col2);
260 return V3Add(p, M33MulV3(rot, input));
265 return M33TrnspsMulV3(rot, V3Sub(input, p));
270 return M33MulV3(rot, input);
275 return M33TrnspsMulV3(rot, input);
281 const Vec3V v = M33TrnspsMulV3(rot, V3Sub(src.p, p));
282 const Mat33V mat = M33MulM33(M33Trnsps(rot), src.rot);
#define PX_FORCE_INLINE
Definition PxPreprocessor.h:335
transform(pattern)
Definition docopt.py:72
Sorts an array of objects in ascending order, assuming that the predicate implements the < operator:
Definition PxBoxController.h:39
Definition PxVecMathAoSScalar.h:101
Definition PxVecMathAoSScalar.h:77
Definition PxVecMathAoSScalar.h:65