29#ifndef DY_SOLVER_CONSTRAINT_DESC_H
30#define DY_SOLVER_CONSTRAINT_DESC_H
33#include "DySolverConstraintTypes.h"
34#include "foundation/PxUtilities.h"
35#include "PxConstraintDesc.h"
36#include "solver/PxSolverDefs.h"
41struct PxsContactManagerOutput;
49struct PxSolverBodyData;
53class FeatherstoneArticulation;
61 PxU32 numSelfConstraints;
63 PxU16 requiredSolverProgress;
72 PxU16 mReducedContactCount;
73 PxU16 originalContactCount;
74 PxU8 originalPatchCount;
75 PxU8 originalStatusFlags;
78 PxsContactManagerOutput* cmOutput;
79 PxU8* originalContactPatches;
80 PxU8* originalContactPoints;
82 PxReal* originalForceBuffer;
83 PxU16* forceBufferList;
98 return (desc.
linkIndexA != PxSolverConstraintDesc::RIGID_BODY ) ||
99 (desc.
linkIndexB != PxSolverConstraintDesc::RIGID_BODY);
105 PX_ASSERT(0==(constraintLength & 0x0f));
106 PX_ASSERT(constraintLength <= PX_MAX_U16 * 16);
110PX_FORCE_INLINE PxU32 getConstraintLength(
const PxSolverConstraintDesc& desc)
112 return PxU32(desc.constraintLengthOver16 << 4);
115PX_FORCE_INLINE Dy::FeatherstoneArticulation* getArticulationA(
const PxSolverConstraintDesc& desc)
117 return reinterpret_cast<Dy::FeatherstoneArticulation*
>(desc.articulationA);
120PX_FORCE_INLINE Dy::FeatherstoneArticulation* getArticulationB(
const PxSolverConstraintDesc& desc)
122 return reinterpret_cast<Dy::FeatherstoneArticulation*
>(desc.articulationB);
127#define MAX_PERMITTED_SOLVER_PROGRESS 0xFFFF
#define PX_FORCE_INLINE
Definition PxPreprocessor.h:335
#define PX_COMPILE_TIME_ASSERT(exp)
Definition PxPreprocessor.h:428
Sorts an array of objects in ascending order, assuming that the predicate implements the < operator:
Definition PxBoxController.h:39
Definition DySolverConstraintDesc.h:59
Definition DySolverConstraintDesc.h:87
Constraint descriptor used inside the solver.
Definition PxSolverDefs.h:108
PxU16 constraintLengthOver16
constraintLength/16, max constraint length is 1MB, allows PxSolverConstraintDesc to fit in 32 bytes
Definition PxSolverDefs.h:140
PxU32 linkIndexB
Link index defining which link in Articulation B this constraint affects. If not an articulation,...
Definition PxSolverDefs.h:134
PxU32 linkIndexA
Link index defining which link in Articulation A this constraint affects. If not an articulation,...
Definition PxSolverDefs.h:133
Definition PxcNpWorkUnit.h:81