29#ifndef PX_GEOMETRY_QUERY_H
30#define PX_GEOMETRY_QUERY_H
38#define PX_MAX_SWEEP_DISTANCE 1e8f
44#include "common/PxPhysXCommonConfig.h"
45#include "geometry/PxGeometryHit.h"
46#include "geometry/PxGeometryQueryFlags.h"
47#include "geometry/PxGeometryQueryContext.h"
87 PxReal maxDist, PxHitFlags hitFlags,
88 PxU32 maxHits,
PxGeomRaycastHit*
PX_RESTRICT rayHits, PxU32 stride, PxGeometryQueryFlags queryFlags = PxGeometryQueryFlag::eDEFAULT,
98 PxReal maxDist, PxHitFlags hitFlags,
101 return raycast(origin, unitDir, geom, pose, maxDist, hitFlags, maxHits, rayHits,
sizeof(HitT));
126 PxGeometryQueryFlags queryFlags = PxGeometryQueryFlag::eDEFAULT,
PxOverlapThreadContext* threadContext=NULL);
154 PX_PHYSX_COMMON_API
static bool sweep(
const PxVec3& unitDir,
const PxReal maxDist,
157 PxGeomSweepHit& sweepHit, PxHitFlags hitFlags = PxHitFlag::eDEFAULT,
158 const PxReal inflation = 0.0f, PxGeometryQueryFlags queryFlags = PxGeometryQueryFlag::eDEFAULT,
196 PxGeometryQueryFlags queryFlags = PxGeometryQueryFlag::eDEFAULT);
216 PxVec3* closestPoint=NULL, PxU32* closestIndex=NULL,
217 PxGeometryQueryFlags queryFlags = PxGeometryQueryFlag::eDEFAULT);
Class representing 3D range or axis aligned bounding box.
Definition PxBounds3.h:58
Collection of geometry object queries (sweeps, raycasts, overlaps, ...).
Definition PxGeometryQuery.h:61
static PX_PHYSX_COMMON_API bool computePenetration(PxVec3 &direction, PxF32 &depth, const PxGeometry &geom0, const PxTransform &pose0, const PxGeometry &geom1, const PxTransform &pose1, PxGeometryQueryFlags queryFlags=PxGeometryQueryFlag::eDEFAULT)
Compute minimum translational distance (MTD) between two geometry objects.
Definition GuGeometryQuery.cpp:331
PX_DEPRECATED static PX_FORCE_INLINE PxU32 raycast(const PxVec3 &origin, const PxVec3 &unitDir, const PxGeometry &geom, const PxTransform &pose, PxReal maxDist, PxHitFlags hitFlags, PxU32 maxHits, HitT *PX_RESTRICT rayHits)
Backward compatibility helper.
Definition PxGeometryQuery.h:96
static PX_PHYSX_COMMON_API bool isValid(const PxGeometry &geom)
Checks if provided geometry is valid.
Definition GuGeometryQuery.cpp:71
static PX_PHYSX_COMMON_API PxU32 raycast(const PxVec3 &origin, const PxVec3 &unitDir, const PxGeometry &geom, const PxTransform &pose, PxReal maxDist, PxHitFlags hitFlags, PxU32 maxHits, PxGeomRaycastHit *PX_RESTRICT rayHits, PxU32 stride, PxGeometryQueryFlags queryFlags=PxGeometryQueryFlag::eDEFAULT, PxRaycastThreadContext *threadContext=NULL)
Raycast test against a geometry object.
Definition GuGeometryQuery.cpp:184
static PX_PHYSX_COMMON_API PxReal pointDistance(const PxVec3 &point, const PxGeometry &geom, const PxTransform &pose, PxVec3 *closestPoint=NULL, PxU32 *closestIndex=NULL, PxGeometryQueryFlags queryFlags=PxGeometryQueryFlag::eDEFAULT)
Computes distance between a point and a geometry object.
Definition GuGeometryQuery.cpp:205
static PX_PHYSX_COMMON_API bool generateTriangleContacts(const PxGeometry &geom, const PxTransform &pose, const PxVec3 triangleVertices[3], PxU32 triangleIndex, PxReal contactDistance, PxReal meshContactMargin, PxReal toleranceLength, PxContactBuffer &contactBuffer)
Generate collision contacts between a convex geometry and a single triangle.
Definition GuGeometryQuery.cpp:358
static PX_PHYSX_COMMON_API void computeGeomBounds(PxBounds3 &bounds, const PxGeometry &geom, const PxTransform &pose, float offset=0.0f, float inflation=1.0f, PxGeometryQueryFlags queryFlags=PxGeometryQueryFlag::eDEFAULT)
computes the bounds for a geometry object
Definition GuGeometryQuery.cpp:307
PX_DEPRECATED static PX_PHYSX_COMMON_API PxBounds3 getWorldBounds(const PxGeometry &geom, const PxTransform &pose, float inflation=1.01f)
get the bounds for a geometry object
Definition GuGeometryQuery.cpp:316
static PX_PHYSX_COMMON_API bool overlap(const PxGeometry &geom0, const PxTransform &pose0, const PxGeometry &geom1, const PxTransform &pose1, PxGeometryQueryFlags queryFlags=PxGeometryQueryFlag::eDEFAULT, PxOverlapThreadContext *threadContext=NULL)
Overlap test for two geometry objects.
Definition GuGeometryQuery.cpp:174
static PX_PHYSX_COMMON_API bool sweep(const PxVec3 &unitDir, const PxReal maxDist, const PxGeometry &geom0, const PxTransform &pose0, const PxGeometry &geom1, const PxTransform &pose1, PxGeomSweepHit &sweepHit, PxHitFlags hitFlags=PxHitFlag::eDEFAULT, const PxReal inflation=0.0f, PxGeometryQueryFlags queryFlags=PxGeometryQueryFlag::eDEFAULT, PxSweepThreadContext *threadContext=NULL)
Sweep a specified geometry object in space and test for collision with a given object.
Definition GuGeometryQuery.cpp:92
A geometry object.
Definition PxGeometry.h:79
3 Element vector class.
Definition PxVec3.h:50
#define PX_RESTRICT
Definition PxPreprocessor.h:355
#define PX_FORCE_INLINE
Definition PxPreprocessor.h:335
#define PX_DEPRECATED
Definition PxPreprocessor.h:418
Sorts an array of objects in ascending order, assuming that the predicate implements the < operator:
Definition PxBoxController.h:39
Stores results of raycast queries.
Definition PxGeometryHit.h:151
Stores results of sweep queries.
Definition PxGeometryHit.h:175
A per-thread context passed to low-level query functions.
Definition PxGeometryQueryContext.h:52