30#ifndef PXD_ARTICULATION_TENDON_H
31#define PXD_ARTICULATION_TENDON_H
33#include "foundation/PxVec3.h"
34#include "foundation/PxQuat.h"
35#include "foundation/PxTransform.h"
36#include "foundation/PxVecMath.h"
37#include "foundation/PxUtilities.h"
40#include "solver/PxSolverDefs.h"
47 typedef PxU64 ArticulationAttachmentBitField;
49#define DY_ARTICULATION_ATTACHMENT_NONE 0xffffffff
65 ArticulationAttachmentBitField children;
72 ArticulationTendon() : mStiffness(0.f), mDamping(0.f), mOffset(0.f), mLimitStiffness(0.f)
78 PxReal mLimitStiffness;
87 mAttachments.reserve(64);
88 mAttachments.forceSize_Unsafe(64);
96 PX_FORCE_INLINE PxU32 getNumAttachments() {
return mIDPool.getNumUsedID(); }
100 const PxU32 index = mIDPool.getNewID();
101 if (mAttachments.capacity() <= index)
103 mAttachments.resize(index * 2 + 1);
110 mIDPool.freeID(index);
115 PX_FORCE_INLINE void setTendonIndex(
const PxU32 index) { mIndex = index; }
128 PxU16 startJointOffset;
130 PxReal recipCoefficient;
131 PxU32 mConstraintInd;
135 ArticulationAttachmentBitField children;
144 mTendonJoints.reserve(64);
145 mTendonJoints.forceSize_Unsafe(64);
154 PX_FORCE_INLINE PxU32 getNumJoints() {
return mIDPool.getNumUsedID(); }
158 const PxU32 index = mIDPool.getNewID();
159 if (mTendonJoints.capacity() <= index)
161 mTendonJoints.resize(index * 2 + 1);
168 mIDPool.freeID(index);
173 PX_FORCE_INLINE void setTendonIndex(
const PxU32 index) { mIndex = index; }
Definition CmIDPool.h:177
Definition DyArticulationTendon.h:139
Definition DyArticulationTendon.h:82
Definition DyArticulationTendon.h:125
Definition DyArticulationTendon.h:69
3 Element vector class.
Definition PxVec3.h:50
#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
Definition DyArticulationTendon.h:52