00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 #ifndef PX_PHYSICS_EXTENSIONS_SCENE_QUERY_H
00032 #define PX_PHYSICS_EXTENSIONS_SCENE_QUERY_H
00033
00037 #include "PxPhysXConfig.h"
00038
00039 #include "PxScene.h"
00040
00041 #if !PX_DOXYGEN
00042 namespace physx
00043 {
00044 #endif
00045
00046
00047 typedef PxQueryHit PxSceneQueryHit;
00048 typedef PxQueryFilterData PxSceneQueryFilterData;
00049 typedef PxQueryFilterCallback PxSceneQueryFilterCallback;
00050 typedef PxQueryCache PxSceneQueryCache;
00051 typedef PxHitFlag PxSceneQueryFlag;
00052 typedef PxHitFlags PxSceneQueryFlags;
00053
00062 class PxSceneQueryExt
00063 {
00064 public:
00065
00090 static bool raycastAny( const PxScene& scene,
00091 const PxVec3& origin, const PxVec3& unitDir, const PxReal distance,
00092 PxSceneQueryHit& hit, const PxSceneQueryFilterData& filterData = PxSceneQueryFilterData(),
00093 PxSceneQueryFilterCallback* filterCall = NULL, const PxSceneQueryCache* cache = NULL,
00094 PX_DEPRECATED PxClientID queryClient = PX_DEFAULT_CLIENT);
00095
00121 static bool raycastSingle( const PxScene& scene,
00122 const PxVec3& origin, const PxVec3& unitDir, const PxReal distance,
00123 PxSceneQueryFlags outputFlags, PxRaycastHit& hit,
00124 const PxSceneQueryFilterData& filterData = PxSceneQueryFilterData(),
00125 PxSceneQueryFilterCallback* filterCall = NULL, const PxSceneQueryCache* cache = NULL,
00126 PX_DEPRECATED PxClientID queryClient = PX_DEFAULT_CLIENT);
00127
00158 static PxI32 raycastMultiple( const PxScene& scene,
00159 const PxVec3& origin, const PxVec3& unitDir, const PxReal distance,
00160 PxSceneQueryFlags outputFlags,
00161 PxRaycastHit* hitBuffer, PxU32 hitBufferSize, bool& blockingHit,
00162 const PxSceneQueryFilterData& filterData = PxSceneQueryFilterData(),
00163 PxSceneQueryFilterCallback* filterCall = NULL, const PxSceneQueryCache* cache = NULL,
00164 PX_DEPRECATED PxClientID queryClient = PX_DEFAULT_CLIENT);
00165
00193 static bool sweepAny( const PxScene& scene,
00194 const PxGeometry& geometry, const PxTransform& pose, const PxVec3& unitDir, const PxReal distance,
00195 PxSceneQueryFlags queryFlags,
00196 PxSceneQueryHit& hit,
00197 const PxSceneQueryFilterData& filterData = PxSceneQueryFilterData(),
00198 PxSceneQueryFilterCallback* filterCall = NULL,
00199 const PxSceneQueryCache* cache = NULL,
00200 PX_DEPRECATED PxClientID queryClient = PX_DEFAULT_CLIENT,
00201 PxReal inflation = 0.0f);
00202
00230 static bool sweepSingle(const PxScene& scene,
00231 const PxGeometry& geometry, const PxTransform& pose, const PxVec3& unitDir, const PxReal distance,
00232 PxSceneQueryFlags outputFlags,
00233 PxSweepHit& hit,
00234 const PxSceneQueryFilterData& filterData = PxSceneQueryFilterData(),
00235 PxSceneQueryFilterCallback* filterCall = NULL,
00236 const PxSceneQueryCache* cache = NULL,
00237 PX_DEPRECATED PxClientID queryClient = PX_DEFAULT_CLIENT, PxReal inflation=0.0f);
00238
00271 static PxI32 sweepMultiple( const PxScene& scene,
00272 const PxGeometry& geometry, const PxTransform& pose, const PxVec3& unitDir, const PxReal distance,
00273 PxSceneQueryFlags outputFlags, PxSweepHit* hitBuffer, PxU32 hitBufferSize, bool& blockingHit,
00274 const PxSceneQueryFilterData& filterData = PxSceneQueryFilterData(),
00275 PxSceneQueryFilterCallback* filterCall = NULL, const PxSceneQueryCache* cache = NULL,
00276 PX_DEPRECATED PxClientID queryClient = PX_DEFAULT_CLIENT, PxReal inflation = 0.0f);
00277
00299 static PxI32 overlapMultiple( const PxScene& scene,
00300 const PxGeometry& geometry, const PxTransform& pose,
00301 PxOverlapHit* hitBuffer, PxU32 hitBufferSize,
00302 const PxSceneQueryFilterData& filterData = PxSceneQueryFilterData(),
00303 PxSceneQueryFilterCallback* filterCall = NULL,
00304 PX_DEPRECATED PxClientID queryClient = PX_DEFAULT_CLIENT);
00305
00326 static bool overlapAny( const PxScene& scene,
00327 const PxGeometry& geometry, const PxTransform& pose,
00328 PxOverlapHit& hit,
00329 const PxSceneQueryFilterData& filterData = PxSceneQueryFilterData(),
00330 PxSceneQueryFilterCallback* filterCall = NULL,
00331 PX_DEPRECATED PxClientID queryClient = PX_DEFAULT_CLIENT);
00332 };
00333
00334 #if !PX_DOXYGEN
00335 }
00336 #endif
00337
00339 #endif