14 #ifndef PX_PHYSICS_NX_CLOTH
15 #define PX_PHYSICS_NX_CLOTH
78 PxReal stiffnessMultiplier_=1.0f,
PxReal compressionLimit_=1.0f,
PxReal stretchLimit_=1.0f)
80 , stiffnessMultiplier(stiffnessMultiplier_)
81 , compressionLimit(compressionLimit_)
82 , stretchLimit(stretchLimit_)
114 :
stiffness(stiffness_), stretchLimit(stretchLimit_)
154 : scale(radiiScale), bias(radiiBias),
stiffness(consStiffness)
179 virtual void release() = 0;
192 virtual PxBounds3 getWorldBounds(
float inflation=1.01f)
const = 0;
198 virtual PxU32 getNbParticles()
const = 0;
226 virtual PxClothParticleData* lockParticleData()
const = 0;
269 virtual void setTargetPose(
const PxTransform& pose) = 0;
278 virtual void setGlobalPose(
const PxTransform& pose) = 0;
292 virtual void setSolverFrequency(
PxReal frequency) = 0;
297 virtual PxReal getSolverFrequency()
const = 0;
304 virtual PxReal getPreviousTimeStep()
const = 0;
317 virtual void setStiffnessFrequency(
PxReal frequency) = 0;
323 virtual PxReal getStiffnessFrequency()
const = 0;
332 virtual void setLinearInertiaScale(
PxVec3 scale) = 0;
337 virtual PxVec3 getLinearInertiaScale()
const = 0;
345 virtual void setAngularInertiaScale(
PxVec3 scale) = 0;
350 virtual PxVec3 getAngularInertiaScale()
const = 0;
358 virtual void setCentrifugalInertiaScale(
PxVec3 scale) = 0;
363 virtual PxVec3 getCentrifugalInertiaScale()
const = 0;
368 virtual void setInertiaScale(
PxReal scale) = 0;
377 virtual void setDampingCoefficient(
PxVec3 dampingCoefficient) = 0;
382 virtual PxVec3 getDampingCoefficient()
const = 0;
392 virtual void setLinearDragCoefficient(
PxVec3 dragCoefficient) = 0;
397 virtual PxVec3 getLinearDragCoefficient()
const = 0;
406 virtual void setAngularDragCoefficient(
PxVec3 dragCoefficient) = 0;
411 virtual PxVec3 getAngularDragCoefficient()
const = 0;
416 virtual void setDragCoefficient(
PxReal scale) = 0;
423 virtual void setExternalAcceleration(
PxVec3 acceleration) = 0;
428 virtual PxVec3 getExternalAcceleration()
const = 0;
436 virtual void setParticleAccelerations(
const PxVec4* particleAccelerations) = 0;
442 virtual bool getParticleAccelerations(
PxVec4* particleAccelerationsBuffer)
const = 0;
447 virtual PxU32 getNbParticleAccelerations()
const = 0;
474 virtual PxU32 getNbMotionConstraints()
const = 0;
504 virtual PxU32 getNbSeparationConstraints()
const = 0;
512 virtual void clearInterpolation() = 0;
556 virtual void removeCollisionSphere(
PxU32 index) = 0;
570 virtual PxU32 getNbCollisionSpheres()
const = 0;
581 virtual void addCollisionCapsule(
PxU32 first,
PxU32 second) = 0;
587 virtual void removeCollisionCapsule(
PxU32 index) = 0;
592 virtual PxU32 getNbCollisionCapsules()
const = 0;
608 virtual void removeCollisionPlane(
PxU32 index) = 0;
622 virtual PxU32 getNbCollisionPlanes()
const = 0;
631 virtual void addCollisionConvex(
PxU32 mask) = 0;
638 virtual void removeCollisionConvex(
PxU32 index) = 0;
643 virtual PxU32 getNbCollisionConvexes()
const = 0;
656 virtual void removeCollisionTriangle(
PxU32 index) = 0;
670 virtual PxU32 getNbCollisionTriangles()
const = 0;
702 virtual void setVirtualParticles(
PxU32 numVirtualParticles,
const PxU32* indices,
PxU32 numWeights,
const PxVec3* weights) = 0;
707 virtual PxU32 getNbVirtualParticles()
const = 0;
713 virtual void getVirtualParticles(
PxU32* indicesBuffer)
const = 0;
718 virtual PxU32 getNbVirtualParticleWeights()
const = 0;
723 virtual void getVirtualParticleWeights(
PxVec3* weightsBuffer)
const = 0;
730 virtual void setFrictionCoefficient(
PxReal frictionCoefficient) = 0;
735 virtual PxReal getFrictionCoefficient()
const = 0;
745 virtual void setCollisionMassScale(
PxReal scalingCoefficient) = 0;
750 virtual PxReal getCollisionMassScale()
const = 0;
764 virtual void setSelfCollisionDistance(
PxReal distance) = 0;
769 virtual PxReal getSelfCollisionDistance()
const = 0;
781 virtual PxReal getSelfCollisionStiffness()
const = 0;
793 virtual void setSelfCollisionIndices(
const PxU32* indices,
PxU32 nbIndices) = 0;
799 virtual bool getSelfCollisionIndices(
PxU32* indices)
const = 0;
805 virtual PxU32 getNbSelfCollisionIndices()
const = 0;
818 virtual void setRestPositions(
const PxVec4* restPositions) = 0;
824 virtual bool getRestPositions(
PxVec4* restPositions)
const = 0;
829 virtual PxU32 getNbRestPositions()
const = 0;
845 virtual void setSimulationFilterData(
const PxFilterData& data) = 0;
852 virtual PxFilterData getSimulationFilterData()
const = 0;
868 virtual void setContactOffset(
PxReal offset) = 0;
874 virtual PxReal getContactOffset()
const = 0;
883 virtual void setRestOffset(
PxReal offset) = 0;
889 virtual PxReal getRestOffset()
const = 0;
905 virtual void setSleepLinearVelocity(
PxReal threshold) = 0;
910 virtual PxReal getSleepLinearVelocity()
const = 0;
920 virtual void setWakeCounter(
PxReal wakeCounterValue) = 0;
926 virtual PxReal getWakeCounter()
const = 0;
933 virtual void wakeUp() = 0;
938 virtual void putToSleep() = 0;
944 virtual bool isSleeping()
const = 0;