29#ifndef DY_CONTACT_PREP_H
30#define DY_CONTACT_PREP_H
32#include "DySolverConstraintDesc.h"
33#include "PxSceneDesc.h"
34#include "DySolverContact4.h"
40class PxsConstraintBlockManager;
41class PxcConstraintBlockStream;
42struct PxsContactManagerOutput;
43class FrictionPatchStreamPair;
45struct PxSolverBodyData;
46struct PxSolverConstraintDesc;
47class PxsContactManager;
52 struct CorrelationBuffer;
54#define CREATE_FINALIZE_SOLVER_CONTACT_METHOD_ARGS \
55 PxSolverContactDesc& contactDesc, \
56 PxsContactManagerOutput& output, \
57 ThreadContext& threadContext, \
58 const PxReal invDtF32, \
60 PxReal bounceThresholdF32, \
61 PxReal frictionOffsetThreshold, \
62 PxReal correlationDistance, \
63 PxConstraintAllocator& constraintAllocator, \
66#define CREATE_FINALIZE_SOVLER_CONTACT_METHOD_ARGS_4 \
67 PxsContactManagerOutput** outputs, \
68 ThreadContext& threadContext, \
69 PxSolverContactDesc* blockDescs, \
70 const PxReal invDtF32, \
72 PxReal bounceThresholdF32, \
73 PxReal frictionThresholdF32, \
74 PxReal correlationDistanceF32, \
75 PxConstraintAllocator& constraintAllocator
86typedef SolverConstraintPrepState::Enum (*PxcCreateFinalizeSolverContactMethod4)(CREATE_FINALIZE_SOVLER_CONTACT_METHOD_ARGS_4);
88extern PxcCreateFinalizeSolverContactMethod4 createFinalizeMethods4[3];
92 PxsContactManagerOutput& output,
94 const PxReal invDtF32,
96 PxReal bounceThresholdF32,
97 PxReal frictionOffsetThreshold,
98 PxReal correlationDistance,
104 const PxReal invDtF32,
106 PxReal bounceThresholdF32,
107 PxReal frictionOffsetThreshold,
108 PxReal correlationDistance,
112SolverConstraintPrepState::Enum createFinalizeSolverContacts4( PxsContactManagerOutput** outputs,
115 const PxReal invDtF32,
117 PxReal bounceThresholdF32,
118 PxReal frictionOffsetThreshold,
119 PxReal correlationDistance,
124 const PxReal invDtF32,
126 PxReal bounceThresholdF32,
127 PxReal frictionOffsetThreshold,
128 PxReal correlationDistance,
134 PxsContactManagerOutput& output,
136 const PxReal invDtF32,
138 PxReal bounceThresholdF32,
139 PxReal frictionOffsetThreshold,
140 PxReal correlationDistance,
145 PxsContactManagerOutput& output,
147 const PxReal invDtF32,
149 PxReal bounceThresholdF32,
150 PxReal frictionOffsetThreshold,
151 PxReal correlationDistance,
156SolverConstraintPrepState::Enum createFinalizeSolverContacts4Coulomb1D( PxsContactManagerOutput** outputs,
159 const PxReal invDtF32,
161 PxReal bounceThresholdF32,
162 PxReal frictionOffsetThreshold,
163 PxReal correlationDistance,
166SolverConstraintPrepState::Enum createFinalizeSolverContacts4Coulomb2D(PxsContactManagerOutput** outputs,
169 const PxReal invDtF32,
171 PxReal bounceThresholdF32,
172 PxReal frictionOffsetThreshold,
173 PxReal correlationDistance,
184 PxU32& mTotalConstraintByteSize;
188 PxU32& totalConstraintByteSize) :
189 mConstraintBlockManager(constraintBlockManager), mConstraintBlockStream(constraintBlockStream), mFrictionPatchStreamPair(frictionPatchStreamPair),
190 mTotalConstraintByteSize(totalConstraintByteSize)
198 virtual PxU8* findInputPatches(PxU8* frictionCookie)
200 return frictionCookie;
Definition DyContactPrep.h:180
virtual PxU8 * reserveConstraintData(const PxU32 size)
Allocates constraint data. It is the application's responsibility to release this memory after PxSolv...
Definition DyDynamics.cpp:2909
virtual PxU8 * reserveFrictionData(const PxU32 size)
Allocates friction data. Friction data can be retained by the application for a given pair and provid...
Definition DyDynamics.cpp:2915
Definition DyThreadContext.h:65
Definition DyFrictionPatchStreamPair.h:57
Definition PxSolverDefs.h:227
Definition PxcConstraintBlockStream.h:60
Definition PxcConstraintBlockStream.h:40
bool(* PxcCreateFinalizeSolverContactMethod)(CREATE_FINALIZE_SOLVER_CONTACT_METHOD_ARGS)
Definition DyContactPrep.h:82
Sorts an array of objects in ascending order, assuming that the predicate implements the < operator:
Definition PxBoxController.h:39
Definition CmSpatialVector.h:134
Definition DyCorrelationBuffer.h:51
Constraint descriptor used inside the solver.
Definition PxSolverDefs.h:108