29#ifndef DY_TGS_CONTACT_PREP_H
30#define DY_TGS_CONTACT_PREP_H
32#include "foundation/PxPreprocessor.h"
33#include "DySolverConstraintDesc.h"
34#include "PxSceneDesc.h"
35#include "DySolverContact4.h"
41 class PxsConstraintBlockManager;
42 class PxcConstraintBlockStream;
43 struct PxsContactManagerOutput;
44 class FrictionPatchStreamPair;
46 struct PxSolverBodyData;
47 struct PxSolverConstraintDesc;
48 class PxsContactManager;
53 struct CorrelationBuffer;
55 bool createFinalizeSolverContactsStep(PxTGSSolverContactDesc& contactDesc,
56 PxsContactManagerOutput& output,
57 ThreadContext& threadContext,
58 const PxReal invDtF32,
59 const PxReal invTotalDtF32,
60 const PxReal totalDtF32,
62 const PxReal bounceThresholdF32,
63 const PxReal frictionOffsetThreshold,
64 const PxReal correlationDistance,
65 const PxReal biasCoefficient,
66 PxConstraintAllocator& constraintAllocator);
68 bool createFinalizeSolverContactsStep(
69 PxTGSSolverContactDesc& contactDesc,
71 const PxReal invDtF32,
72 const PxReal invTotalDtF32,
73 const PxReal totalDtF32,
75 const PxReal bounceThresholdF32,
76 const PxReal frictionOffsetThreshold,
77 const PxReal correlationDistance,
78 const PxReal biasCoefficient,
79 PxConstraintAllocator& constraintAllocator);
81 SolverConstraintPrepState::Enum setupSolverConstraintStep4
82 (PxTGSSolverConstraintPrepDesc*
PX_RESTRICT constraintDescs,
83 const PxReal dt,
const PxReal totalDt,
const PxReal recipdt,
const PxReal recipTotalDt, PxU32& totalRows,
84 PxConstraintAllocator& allocator, PxU32 maxRows,
85 const PxReal lengthScale,
const PxReal biasCoefficient);
87 PxU32 SetupSolverConstraintStep(SolverConstraintShaderPrepDesc& shaderDesc,
88 PxTGSSolverConstraintPrepDesc& prepDesc,
89 PxConstraintAllocator& allocator,
90 const PxReal dt,
const PxReal totalDt,
const PxReal invdt,
const PxReal invTotalDt,
91 const PxReal lengthScale,
const PxReal biasCoefficient);
93 PxU32 setupSolverConstraintStep(
94 const PxTGSSolverConstraintPrepDesc& prepDesc,
95 PxConstraintAllocator& allocator,
96 const PxReal dt,
const PxReal totalDt,
const PxReal invdt,
const PxReal invTotalDt,
97 const PxReal lengthScale,
const PxReal biasCoefficient);
99 SolverConstraintPrepState::Enum setupSolverConstraintStep4
100 (SolverConstraintShaderPrepDesc*
PX_RESTRICT constraintShaderDescs,
101 PxTGSSolverConstraintPrepDesc*
PX_RESTRICT constraintDescs,
102 const PxReal dt,
const PxReal totalDt,
const PxReal recipdt,
const PxReal recipTotalDt, PxU32& totalRows,
103 PxConstraintAllocator& allocator,
const PxReal lengthScale,
const PxReal biasCoefficient);
105 SolverConstraintPrepState::Enum createFinalizeSolverContacts4Step(
106 PxsContactManagerOutput** cmOutputs,
107 ThreadContext& threadContext,
108 PxTGSSolverContactDesc* blockDescs,
109 const PxReal invDtF32,
110 const PxReal totalDtF32,
111 const PxReal invTotalDtF32,
113 const PxReal bounceThresholdF32,
114 const PxReal frictionOffsetThreshold,
115 const PxReal correlationDistance,
116 const PxReal biasCoefficient,
117 PxConstraintAllocator& constraintAllocator);
119 SolverConstraintPrepState::Enum createFinalizeSolverContacts4Step(
120 Dy::CorrelationBuffer& c,
121 PxTGSSolverContactDesc* blockDescs,
122 const PxReal invDtF32,
123 const PxReal totalDt,
124 const PxReal invTotalDtF32,
126 const PxReal bounceThresholdF32,
127 const PxReal frictionOffsetThreshold,
128 const PxReal correlationDistance,
129 const PxReal biasCoefficient,
130 PxConstraintAllocator& constraintAllocator);
132 typedef void(*TGSSolveBlockMethod) (
const PxConstraintBatchHeader& hdr,
const PxSolverConstraintDesc* desc,
133 const PxTGSSolverBodyTxInertia*
const txInertias,
const PxReal minPenetration,
const PxReal elapsedTime, SolverContext& cache);
135 typedef void (*TGSWriteBackMethod) (
const PxConstraintBatchHeader& hdr,
const PxSolverConstraintDesc* desc, SolverContext* cache);
137 typedef void (*TGSSolveConcludeMethod) (
const PxConstraintBatchHeader& hdr,
const PxSolverConstraintDesc* desc,
138 const PxTGSSolverBodyTxInertia*
const txInertias,
const PxReal elapsedTime, SolverContext& cache);
140 extern TGSSolveBlockMethod g_SolveTGSMethods[];
142 extern TGSWriteBackMethod g_WritebackTGSMethods[];
144 extern TGSSolveConcludeMethod g_SolveConcludeTGSMethods[];
#define PX_RESTRICT
Definition PxPreprocessor.h:355
Sorts an array of objects in ascending order, assuming that the predicate implements the < operator:
Definition PxBoxController.h:39