29#ifndef PX_CONSTRAINT_DESC_H
30#define PX_CONSTRAINT_DESC_H
36#include "PxPhysXConfig.h"
37#include "foundation/PxFlags.h"
38#include "foundation/PxVec3.h"
39#include "common/PxBase.h"
42namespace physx {
namespace pvdsdk {
76typedef PxFlags<Px1DConstraintFlag::Type, PxU16> Px1DConstraintFlags;
91 eROTATIONAL_EQUALITY = 1024,
92 eROTATIONAL_INEQUALITY = 1025,
147 struct SpringModifiers
152 struct RestitutionModifiers
225 PxU32 maxConstraints,
227 const void* constantBlock,
230 bool useExtendedLimits,
324 const void* constantBlock,
Base class for objects that can be members of a PxCollection.
Definition PxBase.h:73
This class connects a custom constraint to the SDK.
Definition PxConstraintDesc.h:354
virtual PxBase * getSerializable()=0
Obtain a reference to a PxBase interface if the constraint has one.
virtual void onComShift(PxU32 actor)=0
Center-of-mass shift callback.
virtual void updateOmniPvdProperties() const =0
this function is called by the SDK to update OmniPVD's view of it
virtual const void * getConstantBlock() const =0
Obtain the pointer to the constraint's constant data.
virtual ~PxConstraintConnector()
virtual destructor
Definition PxConstraintDesc.h:451
virtual void connectToConstraint(PxConstraint *)
Let the connector know it has been connected to a constraint.
Definition PxConstraintDesc.h:446
virtual void * getExternalReference(PxU32 &typeID)=0
Fetches external data for a constraint.
virtual void * prepareData()=0
Pre-simulation data preparation when the constraint is marked dirty, this function is called at the s...
virtual bool updatePvdProperties(physx::pvdsdk::PvdDataStream &pvdConnection, const PxConstraint *c, PxPvdUpdateType::Enum updateType) const =0
this function is called by the SDK to update PVD's view of it
virtual PxConstraintSolverPrep getPrep() const =0
Obtain the shader function pointer used to prep rows for this constraint.
virtual void onOriginShift(const PxVec3 &shift)=0
Origin shift callback.
virtual void onConstraintRelease()=0
Constraint release callback.
API used to visualize details about a constraint.
Definition PxConstraintDesc.h:256
virtual void visualizeAngularLimit(const PxTransform &t0, PxReal lower, PxReal upper, bool active)=0
Visualize joint angular limit.
virtual void visualizeLine(const PxVec3 &p0, const PxVec3 &p1, PxU32 color)=0
Visualize line.
virtual void visualizeLimitCone(const PxTransform &t, PxReal tanQSwingY, PxReal tanQSwingZ, bool active)=0
Visualize limit cone.
virtual void visualizeLinearLimit(const PxTransform &t0, const PxTransform &t1, PxReal value, bool active)=0
Visualize joint linear limit.
virtual void visualizeJointFrames(const PxTransform &parent, const PxTransform &child)=0
Visualize joint frames.
virtual void visualizeDoubleCone(const PxTransform &t, PxReal angle, bool active)=0
Visualize joint double cone.
A plugin class for implementing constraints.
Definition PxConstraint.h:100
A padded version of PxVec3, to safely load its data using SIMD.
Definition PxVec3.h:392
3 Element vector class.
Definition PxVec3.h:50
Definition PxPvdDataStream.h:241
#define PX_FORCE_INLINE
Definition PxPreprocessor.h:335
#define PX_DEPRECATED
Definition PxPreprocessor.h:418
Sorts an array of objects in ascending order, assuming that the predicate implements the < operator:
Definition PxBoxController.h:39
PxU32(* PxConstraintSolverPrep)(Px1DConstraint *constraints, PxVec3p &bodyAWorldOffset, PxU32 maxConstraints, PxConstraintInvMassScale &invMassScale, const void *constantBlock, const PxTransform &bodyAToWorld, const PxTransform &bodyBToWorld, bool useExtendedLimits, PxVec3p &cAtW, PxVec3p &cBtW)
Solver constraint generation shader.
Definition PxConstraintDesc.h:223
void(* PxConstraintVisualize)(PxConstraintVisualizer &visualizer, const void *constantBlock, const PxTransform &body0Transform, const PxTransform &body1Transform, PxU32 flags)
Solver constraint visualization function.
Definition PxConstraintDesc.h:323
PX_DEPRECATED void(* PxConstraintProject)(const void *constantBlock, PxTransform &bodyAToWorld, PxTransform &bodyBToWorld, bool projectToA)
Solver constraint projection shader.
Definition PxConstraintDesc.h:247
Constraint row flags.
Definition PxConstraintDesc.h:60
Type
Definition PxConstraintDesc.h:64
@ eOUTPUT_FORCE
whether to accumulate the force value from this constraint in the force total that is reported for th...
Definition PxConstraintDesc.h:69
@ eANGULAR_CONSTRAINT
whether this is an angular or linear constraint
Definition PxConstraintDesc.h:71
@ eRESTITUTION
whether the restitution model should be applied to generate the target velocity. Mutually exclusive w...
Definition PxConstraintDesc.h:67
@ eKEEPBIAS
whether to keep the error term when solving for velocity. Ignored if restitution generates bounce,...
Definition PxConstraintDesc.h:68
@ eACCELERATION_SPRING
whether the constraint is a force or acceleration spring. Only valid if eSPRING is set.
Definition PxConstraintDesc.h:66
@ eSPRING
whether the constraint is a spring. Mutually exclusive with eRESTITUTION. If set, eKEEPBIAS is ignore...
Definition PxConstraintDesc.h:65
@ eDRIVE_ROW
whether the constraint's geometric error should drive the target velocity
Definition PxConstraintDesc.h:72
@ eHAS_DRIVE_LIMIT
whether the constraint has a drive force limit (which will be scaled by dt unless PxConstraintFlag::e...
Definition PxConstraintDesc.h:70
A one-dimensional constraint.
Definition PxConstraintDesc.h:134
PxReal maxImpulse
maximum impulse the solver may apply to enforce this constraint
Definition PxConstraintDesc.h:143
PxVec3 angular0
angular component of velocity jacobian in world space
Definition PxConstraintDesc.h:137
PxReal minImpulse
minimum impulse the solver may apply to enforce this constraint
Definition PxConstraintDesc.h:141
PxVec3 angular1
angular component of velocity jacobian in world space
Definition PxConstraintDesc.h:142
PxReal forInternalUse
for internal use only
Definition PxConstraintDesc.h:159
PxU16 flags
a set of Px1DConstraintFlags
Definition PxConstraintDesc.h:160
PxReal velocityTarget
velocity target for the constraint along this axis
Definition PxConstraintDesc.h:138
PxReal damping
damping parameter, for spring constraints
Definition PxConstraintDesc.h:150
PxReal stiffness
spring parameter, for spring constraints
Definition PxConstraintDesc.h:149
PxReal geometricError
geometric error of the constraint along this axis
Definition PxConstraintDesc.h:136
PxReal restitution
restitution parameter for determining additional "bounce"
Definition PxConstraintDesc.h:154
PxReal velocityThreshold
minimum impact velocity for bounce
Definition PxConstraintDesc.h:155
PxU16 solveHint
constraint optimization hint, should be an element of PxConstraintSolveHint
Definition PxConstraintDesc.h:161
PxVec3 linear0
linear component of velocity jacobian in world space
Definition PxConstraintDesc.h:135
PxVec3 linear1
linear component of velocity jacobian in world space
Definition PxConstraintDesc.h:140
Struct for specifying mass scaling for a pair of rigids.
Definition PxConstraintDesc.h:184
PxReal angular1
multiplier for inverse MoI of body1
Definition PxConstraintDesc.h:195
PxReal linear0
multiplier for inverse mass of body0
Definition PxConstraintDesc.h:192
PxReal angular0
multiplier for inverse MoI of body0
Definition PxConstraintDesc.h:193
PxReal linear1
multiplier for inverse mass of body1
Definition PxConstraintDesc.h:194
Constraint type hints which the solver uses to optimize constraint handling.
Definition PxConstraintDesc.h:83
Enum
Definition PxConstraintDesc.h:85
Flags for determining which components of the constraint should be visualized.
Definition PxConstraintDesc.h:171
Enum
Definition PxConstraintDesc.h:173
@ eLIMITS
visualize constraint limits
Definition PxConstraintDesc.h:175
@ eLOCAL_FRAMES
visualize constraint frames
Definition PxConstraintDesc.h:174
Flags for determining how PVD should serialize a constraint update.
Definition PxConstraintDesc.h:335
Enum
Definition PxConstraintDesc.h:337
@ RELEASE_INSTANCE
triggers releasePvdInstance call, releases an instance of a constraint
Definition PxConstraintDesc.h:339
@ UPDATE_ALL_PROPERTIES
triggers updatePvdProperties call, updates all properties of a constraint
Definition PxConstraintDesc.h:340
@ CREATE_INSTANCE
triggers createPvdInstance call, creates an instance of a constraint
Definition PxConstraintDesc.h:338
@ UPDATE_SIM_PROPERTIES
triggers simUpdate call, updates all simulation properties of a constraint
Definition PxConstraintDesc.h:341