Page tree
Skip to end of metadata
Go to start of metadata
IPhysicalWorld::SPWIParams

#include <physinterface.h>

Public Attributes

void * pForeignData
 
int iForeignData
 
int(* OnEvent )(const EventPhysPWIResult *)
 
int itype
 
const primitives::primitive * pprim
 
Vec3 sweepDir
 
int entTypes
 
geom_contact ** ppcontact
 
int geomFlagsAll
 
int geomFlagsAny
 
intersection_params * pip
 
int nSkipEnts
 
IPhysicalEntity ** pSkipEnts
 
SCollisionClass collclass
 
WriteLockCond lockContacts
 

Detailed Description

PrimitiveWorldIntersection - similar to RayWorldIntersection, but does a primitive sweep (or overlap) check unlike RWI, it doesn't trace enitity cells along the path, but checks all of them in the swept volume's bounding box, so long PWIs are not recommended ppcontact - pointer to the pointer to the resulting contacts array, since it uses shared data it gets locked with lockContacts geomFlagsAll - flags that must all be present in an entity part geomFlagsAny - flags at least one of which must be present in an entity part pip - custom intersection parameters, overrides the sweepDir setting if any. if not specified, the function performs a simple true/false overlap check if sweepDir is 0, and a sweep check otherwise if specified and pip->bThreadSafe==false, lockContacts will keep the lock while in scope OnEvent - optional personal callback to be called instead of the global one returns distance to the first hit for sweep checks and the number of hits for intersection checks (as float) special note: if specified, **ppcontact has the collider entity id in iPrim[0], partid in iPrim[1], matid in id[1] special note #2: if nSkipEnts<0, pSkipEnts is used as a fixed list of entities to only test collisions against (the world is ignored) special note #3: if applicable, contacts stored in ppcontact will have their iNode[0] filled with the index to the feature's primitive. collclass is the collision filter for ignoring entities

  • No labels