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_PARTICLESYSTEM_NXPARTICLEREADDATA
00032 #define PX_PARTICLESYSTEM_NXPARTICLEREADDATA
00033
00037 #include "foundation/PxStrideIterator.h"
00038 #include "foundation/PxFlags.h"
00039 #include "PxLockedData.h"
00040 #include "PxParticleFlag.h"
00041
00042 #if !PX_DOXYGEN
00043 namespace physx
00044 {
00045 #endif
00046
00053 struct PX_DEPRECATED PxParticleReadDataFlag
00054 {
00055 enum Enum
00056 {
00061 ePOSITION_BUFFER = (1<<0),
00062
00067 eVELOCITY_BUFFER = (1<<1),
00068
00076 eREST_OFFSET_BUFFER = (1<<2),
00077
00082 eFLAGS_BUFFER = (1<<3),
00083
00088 eCOLLISION_NORMAL_BUFFER = (1<<4),
00089
00094 eCOLLISION_VELOCITY_BUFFER = (1<<5),
00095
00100 eDENSITY_BUFFER = (1<<6)
00101 };
00102 };
00103
00111 typedef PX_DEPRECATED PxFlags<PxParticleReadDataFlag::Enum, PxU16> PxParticleReadDataFlags;
00112 PX_FLAGS_OPERATORS(PxParticleReadDataFlag::Enum,PxU16)
00113
00114
00121 typedef PX_DEPRECATED PxFlags<PxParticleFlag::Enum, PxU16> PxParticleFlags;
00122 PX_FLAGS_OPERATORS(PxParticleFlag::Enum,PxU16)
00123
00143 class PX_DEPRECATED PxParticleReadData : public PxLockedData
00144 {
00145 public:
00146
00150 PxU32 nbValidParticles;
00151
00155 PxU32 validParticleRange;
00156
00161 const PxU32* validParticleBitmap;
00162
00166 PxStrideIterator<const PxVec3> positionBuffer;
00167
00171 PxStrideIterator<const PxVec3> velocityBuffer;
00172
00176 PxStrideIterator<const PxF32> restOffsetBuffer;
00177
00181 PxStrideIterator<const PxParticleFlags> flagsBuffer;
00182
00189 PxStrideIterator<const PxVec3> collisionNormalBuffer;
00190
00198 PxStrideIterator<const PxVec3> collisionVelocityBuffer;
00199
00204 virtual PxDataAccessFlags getDataAccessFlags() = 0;
00205
00210 virtual void unlock() = 0;
00211
00215 virtual ~PxParticleReadData() {}
00216
00217 };
00218
00219 #if !PX_DOXYGEN
00220 }
00221 #endif
00222
00224 #endif