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_NX_SCENEQUERY
00032 #define PX_PHYSICS_NX_SCENEQUERY
00033
00036 #include "PxPhysXConfig.h"
00037 #include "PxShape.h"
00038 #include "PxBatchQueryDesc.h"
00039 #include "PxQueryFiltering.h"
00040
00041 #if !PX_DOXYGEN
00042 namespace physx
00043 {
00044 #endif
00045
00046 class PxBoxGeometry;
00047 class PxSphereGeometry;
00048 struct PxQueryCache;
00049
00057 class PX_DEPRECATED PxBatchQuery
00058 {
00059 public:
00060
00064 virtual void execute() = 0;
00065
00073 virtual PxBatchQueryPreFilterShader getPreFilterShader() const = 0;
00074
00082 virtual PxBatchQueryPostFilterShader getPostFilterShader() const = 0;
00083
00084
00092 virtual const void* getFilterShaderData() const = 0;
00093
00101 virtual PxU32 getFilterShaderDataSize() const = 0;
00102
00103
00111 PX_DEPRECATED virtual PxClientID getOwnerClient() const = 0;
00112
00120 virtual void setUserMemory(const PxBatchQueryMemory&) = 0;
00121
00127 virtual const PxBatchQueryMemory& getUserMemory() = 0;
00128
00134 virtual void release() = 0;
00135
00159 virtual void raycast(
00160 const PxVec3& origin, const PxVec3& unitDir, PxReal distance = PX_MAX_F32, PxU16 maxTouchHits = 0,
00161 PxHitFlags hitFlags = PxHitFlag::eDEFAULT,
00162 const PxQueryFilterData& filterData = PxQueryFilterData(),
00163 void* userData = NULL, const PxQueryCache* cache = NULL) = 0;
00164
00165
00188 virtual void overlap(
00189 const PxGeometry& geometry, const PxTransform& pose, PxU16 maxTouchHits = 0,
00190 const PxQueryFilterData& filterData = PxQueryFilterData(), void* userData=NULL, const PxQueryCache* cache = NULL) = 0;
00191
00219 virtual void sweep(
00220 const PxGeometry& geometry, const PxTransform& pose, const PxVec3& unitDir, const PxReal distance,
00221 PxU16 maxTouchHits = 0, PxHitFlags hitFlags = PxHitFlag::eDEFAULT,
00222 const PxQueryFilterData& filterData = PxQueryFilterData(), void* userData=NULL, const PxQueryCache* cache = NULL,
00223 const PxReal inflation = 0.f) = 0;
00224
00225 protected:
00226 virtual ~PxBatchQuery() {}
00227 };
00228
00229 #if !PX_DOXYGEN
00230 }
00231 #endif
00232
00234 #endif