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_SPATIAL_INDEX
00032 #define PX_PHYSICS_SPATIAL_INDEX
00033
00036 #include "PxPhysXConfig.h"
00037 #include "foundation/PxTransform.h"
00038 #include "geometry/PxGeometry.h"
00039 #include "PxQueryReport.h"
00040
00041 #if !PX_DOXYGEN
00042 namespace physx
00043 {
00044 #endif
00045
00046 typedef PxU32 PxSpatialIndexItemId;
00047 static const PxSpatialIndexItemId PX_SPATIAL_INDEX_INVALID_ITEM_ID = 0xffffffff;
00048
00049
00050 class PX_DEPRECATED PxSpatialIndexItem
00051 {
00052 };
00053
00061 struct PX_DEPRECATED PxSpatialOverlapCallback
00062 {
00063
00071 virtual PxAgain onHit(PxSpatialIndexItem& item) = 0;
00072
00073 virtual ~PxSpatialOverlapCallback() {}
00074 };
00075
00083 struct PX_DEPRECATED PxSpatialLocationCallback
00084 {
00096 virtual PxAgain onHit(PxSpatialIndexItem& item, PxReal distance, PxReal& shrunkDistance) = 0;
00097
00098 virtual ~PxSpatialLocationCallback() {}
00099 };
00100
00101
00102
00116 class PX_DEPRECATED PxSpatialIndex
00117 {
00118 public:
00119
00120
00127 virtual PxSpatialIndexItemId insert(PxSpatialIndexItem& item,
00128 const PxBounds3& bounds) = 0;
00129
00136 virtual void update(PxSpatialIndexItemId id,
00137 const PxBounds3& bounds) = 0;
00138
00144 virtual void remove(PxSpatialIndexItemId id) = 0;
00145
00146
00153 virtual void overlap(const PxBounds3 &aabb,
00154 PxSpatialOverlapCallback& callback) const = 0;
00155
00164 virtual void raycast(const PxVec3& origin,
00165 const PxVec3& unitDir,
00166 PxReal maxDist,
00167 PxSpatialLocationCallback& callback) const = 0;
00168
00177 virtual void sweep(const PxBounds3& aabb,
00178 const PxVec3& unitDir,
00179 PxReal maxDist,
00180 PxSpatialLocationCallback& callback) const = 0;
00181
00189 virtual void flush() = 0;
00190
00194 virtual void rebuildFull() = 0;
00195
00207 virtual void setIncrementalRebuildRate(PxU32 rate) = 0;
00208
00212 virtual void rebuildStep() = 0;
00213
00217 virtual void release() = 0;
00218 protected:
00219 virtual ~PxSpatialIndex(){}
00220 };
00221
00229 PX_DEPRECATED PX_PHYSX_CORE_API PxSpatialIndex* PxCreateSpatialIndex();
00230
00231 #if !PX_DOXYGEN
00232 }
00233 #endif
00234
00236 #endif