129 template <
typename PxMaterialType,
typename NpMaterialType>
130 NpShape* createShapeInternal(
const PxGeometry& geometry,
PxShapeFlags shapeFlags, PxMaterialType*
const* materials, PxU16 materialCount,
bool isExclusive, PxShapeCoreFlag::Enum flag);
132 static void createInstance();
133 static void destroyInstance();
134 static void registerArticulations();
135 static void registerArticulationRCs();
163#if PX_ENABLE_FEATURES_UNDER_CONSTRUCTION
166 void addShape(
PxShape*,
bool lock=
true);
167 void releaseShapeToPool(
NpShape&);
168 PxU32 getNbShapes()
const;
169 PxU32 getShapes(
PxShape** userBuffer, PxU32 bufferSize, PxU32 startIndex)
const;
194 PxSoftBody* createSoftBody(PxCudaContextManager& cudaContextManager);
195 void releaseSoftBodyToPool(
PxSoftBody& softBody);
197#if PX_ENABLE_FEATURES_UNDER_CONSTRUCTION
199 PxFEMCloth* createFEMCloth(PxCudaContextManager& cudaContextManager);
200 void releaseFEMClothToPool(PxFEMCloth& femCloth);
204 PxPBDParticleSystem* createPBDParticleSystem(PxU32 maxNeighborhood, PxCudaContextManager& cudaContexManager);
207#if PX_ENABLE_FEATURES_UNDER_CONSTRUCTION
209 PxFLIPParticleSystem* createFLIPParticleSystem(PxCudaContextManager& cudaContexManager);
210 void releaseFLIPParticleSystemToPool(PxFLIPParticleSystem& particleSystem);
213 PxMPMParticleSystem* createMPMParticleSystem(PxCudaContextManager& cudaContexManager);
214 void releaseMPMParticleSystemToPool(PxMPMParticleSystem& particleSystem);
217 PxCustomParticleSystem* createCustomParticleSystem(PxCudaContextManager& cudaContexManager, PxU32 maxNeighborhood);
218 void releaseCustomParticleSystemToPool(PxCustomParticleSystem& particleSystem);
222 PxParticleBuffer* createParticleBuffer(PxU32 maxParticles, PxU32 maxVolumes, PxCudaContextManager* cudaContextManager);
225 PxParticleAndDiffuseBuffer* createParticleAndDiffuseBuffer(PxU32 maxParticles, PxU32 maxVolumes, PxU32 maxDiffuseParticles, PxCudaContextManager* cudaContextManager);
228 PxParticleClothBuffer* createParticleClothBuffer(PxU32 maxParticles, PxU32 maxNumVolumes, PxU32 maxNumCloths, PxU32 maxNumTriangles, PxU32 maxNumSprings, PxCudaContextManager* cudaContextManager);
231 PxParticleRigidBuffer* createParticleRigidBuffer(PxU32 maxParticles, PxU32 maxNumVolumes, PxU32 maxNumRigids, PxCudaContextManager* cudaContextManager);
233#if PX_ENABLE_FEATURES_UNDER_CONSTRUCTION
235 PxHairSystem* createHairSystem(PxCudaContextManager& cudaContextManager);
236 void releaseHairSystemToPool(PxHairSystem& hairSystem);
240 PxAggregate* createAggregate(PxU32 maxActors, PxU32 maxShapes, PxAggregateFilterHint filterHint);
248 PxMaterial* createMaterial(PxReal staticFriction, PxReal dynamicFriction, PxReal restitution);
249 void releaseMaterialToPool(
NpMaterial& material);
251 PxFEMSoftBodyMaterial* createFEMSoftBodyMaterial(PxReal youngs, PxReal poissons, PxReal dynamicFriction);
254 PxFEMClothMaterial* createFEMClothMaterial(PxReal youngs, PxReal poissons, PxReal dynamicFriction);
257 PxPBDMaterial* createPBDMaterial(PxReal friction, PxReal damping, PxReal adhesion, PxReal viscosity, PxReal vorticityConfinement, PxReal surfaceTension, PxReal cohesion, PxReal lift, PxReal drag, PxReal cflCoefficient, PxReal gravityScale);
260#if PX_ENABLE_FEATURES_UNDER_CONSTRUCTION
261 PxFLIPMaterial* createFLIPMaterial(PxReal friction, PxReal damping, PxReal adhesion, PxReal viscosity, PxReal gravityScale);
265 PxMPMMaterial* createMPMMaterial(PxReal friction, PxReal damping, PxReal adhesion,
bool isPlastic, PxReal youngsModulus, PxReal poissons, PxReal hardening, PxReal criticalCompression, PxReal criticalStretch, PxReal tensileDamageSensitivity, PxReal compressiveDamageSensitivity, PxReal attractiveForceResidual, PxReal gravityScale);
291 void releaseExclusiveShapeUserReferences();
294 PxMutex mConnectorArrayPoolLock;
324 PxMutex mArticulationRCPoolLock;
327 PxMutex mArticulationLinkPoolLock;
331 PxMutex mArticulationJointRCPoolLock;
333#if PX_SUPPORT_GPU_PHYSX
337#if PX_ENABLE_FEATURES_UNDER_CONSTRUCTION
343 PxMutex mPBDParticleSystemPoolLock;
344#if PX_ENABLE_FEATURES_UNDER_CONSTRUCTION
346 PxMutex mFLIPParticleSystemPoolLock;
349 PxMutex mMPMParticleSystemPoolLock;
352 PxMutex mCustomParticleSystemPoolLock;
358#if PX_ENABLE_FEATURES_UNDER_CONSTRUCTION
360 PxMutex mFEMClothMaterialPoolLock;
364#if PX_ENABLE_FEATURES_UNDER_CONSTRUCTION
372 PxMutex mCustomMaterialPoolLock;
Definition NpParticleSystem.h:444
Definition NpSoftBody.h:43
Material class to represent a set of softbody FEM material properties.
Definition PxFEMSoftBodyMaterial.h:49
A particle system that uses the position based dynamics(PBD) solver.
Definition PxPBDParticleSystem.h:57
A particle buffer used to simulate diffuse particles.
Definition PxParticleBuffer.h:283
The shared base class for all particle buffers, can be instantiated directly to simulate granular and...
Definition PxParticleBuffer.h:81
A particle buffer used to simulate particle cloth.
Definition PxParticleBuffer.h:429
A particle buffer used to simulate rigid bodies using shape matching with particles.
Definition PxParticleBuffer.h:491
Represents a FEM softbody including everything to calculate its definition like geometry and material...
Definition PxSoftBody.h:104