29#ifndef DY_ARTICULATION_UTILS_H
30#define DY_ARTICULATION_UTILS_H
32#include "foundation/PxBitUtils.h"
33#include "foundation/PxVecMath.h"
34#include "CmSpatialVector.h"
36#include "DyVArticulation.h"
43 struct ArticulationCore;
44 struct ArticulationLink;
46#define DY_ARTICULATION_DEBUG_VERIFY 0
50 PxU32 low = PxU32(val&0xffffffff), high = PxU32(val>>32);
51 PxU32 mask = PxU32((!low)-1);
53 PX_ASSERT(val & (PxU64(1)<<result));
54 PX_ASSERT(!(val & ((PxU64(1)<<result)-1)));
58PX_FORCE_INLINE PxU32 ArticulationHighestSetBit(ArticulationBitField val)
60 PxU32 low = PxU32(val & 0xffffffff), high = PxU32(val >> 32);
61 PxU32 mask = PxU32((!high) - 1);
63 PX_ASSERT(val & (PxU64(1) << result));
69PX_FORCE_INLINE Cm::SpatialVector& unsimdRef(Cm::SpatialVectorV& v) {
return reinterpret_cast<Cm::SpatialVector&
>(v); }
70PX_FORCE_INLINE const Cm::SpatialVector& unsimdRef(
const Cm::SpatialVectorV& v) {
return reinterpret_cast<const Cm::SpatialVector&
>(v); }
#define PX_FORCE_INLINE
Definition PxPreprocessor.h:335
Sorts an array of objects in ascending order, assuming that the predicate implements the < operator:
Definition PxBoxController.h:39
PX_INLINE uint32_t PxLowestSetBitUnsafe(uint32_t v)
Definition PxUnixIntrinsics.h:64
PX_INLINE uint32_t PxHighestSetBitUnsafe(uint32_t v)
Definition PxUnixIntrinsics.h:55