35#include "PxPhysXConfig.h"
36#include "foundation/PxFlags.h"
46static const PxU32 INVALID_FILTER_PAIR_INDEX = 0xffffffff;
333 eNOTIFY = (1<<3) | eCALLBACK,
382 word0 = word1 = word2 = word3 = 0;
419 return a.word0 == word0 && a.word1 == word1 && a.word2 == word2 && a.word3 == word3;
427 return !(a == *
this);
542 return (attr & PxFilterObjectFlag::eKINEMATIC) != 0;
556 return (attr & PxFilterObjectFlag::eTRIGGER) != 0;
606 PxPairFlags& pairFlags,
const void* constantBlock, PxU32 constantBlockSize);
684 bool objectRemoved) = 0;
773 PX_CUDA_CALLABLE
bool operator==(
const PxParticleRigidFilterPair& other)
const
775 return (
mID0 == other.mID0 &&
mID1 == other.mID1);
PxActor is the base class for the main simulation objects in the physics SDK.
Definition PxActor.h:201
Container for bitfield flag variables associated with a specific enum type.
Definition PxFlags.h:73
Abstract class for collision shapes.
Definition PxShape.h:146
Filter callback to specify handling of collision pairs.
Definition PxFiltering.h:633
virtual void pairLost(PxU32 pairID, PxFilterObjectAttributes attributes0, PxFilterData filterData0, PxFilterObjectAttributes attributes1, PxFilterData filterData1, bool objectRemoved)=0
Callback to inform that a tracked collision pair is gone.
virtual bool statusChange(PxU32 &pairID, PxPairFlags &pairFlags, PxFilterFlags &filterFlags)=0
Callback to give the opportunity to change the filter state of a tracked collision pair.
virtual PxFilterFlags pairFound(PxU32 pairID, PxFilterObjectAttributes attributes0, PxFilterData filterData0, const PxActor *a0, const PxShape *s0, PxFilterObjectAttributes attributes1, PxFilterData filterData1, const PxActor *a1, const PxShape *s1, PxPairFlags &pairFlags)=0
Filter method to specify how a pair of potentially colliding objects should be processed.
#define PX_INLINE
Definition PxPreprocessor.h:320
Sorts an array of objects in ascending order, assuming that the predicate implements the < operator:
Definition PxBoxController.h:39
PxU32 PxFilterObjectAttributes
Structure which gets passed into the collision filtering shader and/or callback providing additional ...
Definition PxFiltering.h:515
PX_INLINE bool PxFilterObjectIsKinematic(PxFilterObjectAttributes attr)
Specifies whether the collision object belongs to a kinematic rigid body.
Definition PxFiltering.h:540
PX_INLINE PxFilterObjectType::Enum PxGetFilterObjectType(PxFilterObjectAttributes attr)
Extract filter object type from the filter attributes of a collision pair object.
Definition PxFiltering.h:526
PxFilterFlags(* PxSimulationFilterShader)(PxFilterObjectAttributes attributes0, PxFilterData filterData0, PxFilterObjectAttributes attributes1, PxFilterData filterData1, PxPairFlags &pairFlags, const void *constantBlock, PxU32 constantBlockSize)
Filter method to specify how a pair of potentially colliding objects should be processed.
Definition PxFiltering.h:604
PxFlags< PxFilterFlag::Enum, PxU16 > PxFilterFlags
Bitfield that contains a set of raised flags defined in PxFilterFlag.
Definition PxFiltering.h:355
PxFlags< PxPairFlag::Enum, PxU16 > PxPairFlags
Bitfield that contains a set of raised flags defined in PxPairFlag.
Definition PxFiltering.h:277
PX_INLINE bool PxFilterObjectIsTrigger(PxFilterObjectAttributes attr)
Specifies whether the collision object is a trigger shape.
Definition PxFiltering.h:554
PxEMPTY
Definition Px.h:87
PxFilterData is user-definable data which gets passed into the collision filtering shader and/or call...
Definition PxFiltering.h:365
PX_INLINE PxFilterData(PxU32 w0, PxU32 w1, PxU32 w2, PxU32 w3)
Constructor to set filter data initially.
Definition PxFiltering.h:393
PX_INLINE void setToDefault()
(re)sets the structure to the default.
Definition PxFiltering.h:398
PX_INLINE PxFilterData()
Default constructor.
Definition PxFiltering.h:380
PX_INLINE PxFilterData(const PxFilterData &fd)
Copy constructor.
Definition PxFiltering.h:388
Collection of flags describing the filter actions to take for a collision pair.
Definition PxFiltering.h:288
Enum
Definition PxFiltering.h:290
Definition PxFiltering.h:501
Identifies each type of filter object.
Definition PxFiltering.h:443
Enum
Definition PxFiltering.h:445
@ eSOFTBODY
A FEM-based soft body.
Definition PxFiltering.h:474
@ eARTICULATION
An articulation.
Definition PxFiltering.h:462
@ eMAX_TYPE_COUNT
internal use only!
Definition PxFiltering.h:491
@ ePARTICLESYSTEM
A particle system.
Definition PxFiltering.h:468
@ eFEMCLOTH
A FEM-based cloth.
Definition PxFiltering.h:481
@ eRIGID_DYNAMIC
A dynamic rigid body.
Definition PxFiltering.h:456
@ eRIGID_STATIC
A static rigid body.
Definition PxFiltering.h:450
@ eHAIRSYSTEM
A hair system.
Definition PxFiltering.h:488
@ eUNDEFINED
internal use only!
Definition PxFiltering.h:494
Definition PxFiltering.h:715
Enum
Definition PxFiltering.h:717
@ eDEFAULT
Default is eSUPPRESS for compatibility with previous PhysX versions.
Definition PxFiltering.h:743
@ eKILL
Don't output pair from BP. Cannot be later switched to regular interaction, needs "resetFiltering" ca...
Definition PxFiltering.h:738
@ eSUPPRESS
Output pair from BP, create interaction marker. Can be later switched to regular interaction.
Definition PxFiltering.h:733
@ eKEEP
Output pair from BP, potentially send to user callbacks, create regular interaction object.
Definition PxFiltering.h:728
Collection of flags describing the actions to take for a collision pair.
Definition PxFiltering.h:54
Enum
Definition PxFiltering.h:56
@ eDETECT_CCD_CONTACT
This flag is used to indicate whether this pair generates CCD contacts.
Definition PxFiltering.h:216
@ eNEXT_FREE
For internal use only.
Definition PxFiltering.h:258
@ ePOST_SOLVER_VELOCITY
Provide post solver velocities in contact reports for this collision pair.
Definition PxFiltering.h:240
@ eCONTACT_EVENT_POSE
Provide rigid body poses in contact reports for this collision pair.
Definition PxFiltering.h:256
@ ePRE_SOLVER_VELOCITY
Provide pre solver velocities in contact reports for this collision pair.
Definition PxFiltering.h:230
@ eCONTACT_DEFAULT
Provided default flag to do simple contact processing for this collision pair.
Definition PxFiltering.h:263
@ eTRIGGER_DEFAULT
Provided default flag to get commonly used trigger behavior for this collision pair.
Definition PxFiltering.h:268
@ eNOTIFY_TOUCH_CCD
Call contact report callback when this collision pair is in contact during CCD passes.
Definition PxFiltering.h:145
@ eNOTIFY_CONTACT_POINTS
Provide contact points in contact reports for this collision pair.
Definition PxFiltering.h:195
@ eNOTIFY_THRESHOLD_FORCE_LOST
Call contact report callback when the contact force between the actors of this collision pair falls b...
Definition PxFiltering.h:184
@ eNOTIFY_TOUCH_LOST
Call contact report callback or trigger callback when this collision pair stops to be in contact.
Definition PxFiltering.h:125
@ eMODIFY_CONTACTS
Call contact modification callback for this collision pair.
Definition PxFiltering.h:71
@ eNOTIFY_THRESHOLD_FORCE_FOUND
Call contact report callback when the contact force between the actors of this collision pair exceeds...
Definition PxFiltering.h:156
@ eNOTIFY_TOUCH_FOUND
Call contact report callback or trigger callback when this collision pair starts to be in contact.
Definition PxFiltering.h:87
@ eNOTIFY_TOUCH_PERSISTS
Call contact report callback while this collision pair is in contact.
Definition PxFiltering.h:107
@ eSOLVE_CONTACT
Process the contacts of this collision pair in the dynamics solver.
Definition PxFiltering.h:62
@ eNOTIFY_THRESHOLD_FORCE_PERSISTS
Call contact report callback when the contact force between the actors of this collision pair continu...
Definition PxFiltering.h:170
@ eDETECT_DISCRETE_CONTACT
This flag is used to indicate whether this pair generates discrete collision detection contacts.
Definition PxFiltering.h:202
Struct for storing a particle/vertex - rigid filter pair with comparison operators.
Definition PxFiltering.h:751
PxU64 mID1
Particle/vertex id.
Definition PxFiltering.h:753
PxU64 mID0
Rigid node index.
Definition PxFiltering.h:752