PxParticleReadData Class Reference
[Particles]
Data layout descriptor for reading particle data from the SDK.
More...
#include <PxParticleReadData.h>
![Inheritance graph](classPxParticleReadData__inherit__graph.png)
![Collaboration graph](classPxParticleReadData__coll__graph.png)
Public Member Functions | |
virtual PxDataAccessFlags | getDataAccessFlags ()=0 |
Returns PxDataAccessFlag::eREADABLE, since PxParticleReadData is read only data. | |
virtual void | unlock ()=0 |
Unlocks the data. | |
virtual | ~PxParticleReadData () |
virtual destructor | |
Public Attributes | |
PxU32 | numValidParticles |
Number of particles (only including particles with PxParticleFlag.eVALID set). | |
PxU32 | validParticleRange |
Index after the last valid particle (PxParticleFlag.eVALID set). Its 0 if there are no valid particles. | |
const PxU32 * | validParticleBitmap |
Bitmap marking valid particle indices. The bitmap is defined between [0, (PxParticleReadData.validParticleRange-1) >> 5]. | |
PxStrideIterator< const PxVec3 > | positionBuffer |
Particle position data. | |
PxStrideIterator< const PxVec3 > | velocityBuffer |
Particle velocity data. | |
PxStrideIterator< const PxF32 > | restOffsetBuffer |
Particle rest offset data. | |
PxStrideIterator< const PxParticleFlags > | flagsBuffer |
Particle flags. | |
PxStrideIterator< const PxVec3 > | collisionNormalBuffer |
Collision normals of colliding particles. The collision normal buffer is only guaranteed to be valid after the particle system has been simulated. Otherwise collisionNormalBuffer.ptr() is NULL. This also applies to particle systems that are not assigned to a scene. |
Detailed Description
Data layout descriptor for reading particle data from the SDK.PxParticleReadData is used to retrieve information about simulated particles. It can be accessed by calling PxParticleBase.lockParticleReadData().
Each particle is described by its position, velocity, a set of (PxParticleFlag) flags and information on collisions (collision normal). The particle buffers are sparse, i.e. occupied particle indices will have PxParticleFlag.eVALID set in the corresponding entry of PxParticleReadData.flagsBuffer. Alternatively valid particles can be identified with the bitmap PxParticleReadData.validParticleBitmap. If (and only if) the index range of valid particles PxParticleReadData.validParticleRange is greater 0, i.e. any particles are present, data can be read from the particle buffers. Additionally individual particle buffers can only be read if the corresponding PxParticleReadDataFlag in particleReadDataFlags is set.
The particle data buffer are defined in the range [0, PxParticleReadData.validParticleRange-1]. The bitmap words are defined in the range [0, (PxParticleReadData.validParticleRange-1) >> 5].
Constructor & Destructor Documentation
virtual PxParticleReadData::~PxParticleReadData | ( | ) | [inline, virtual] |
virtual destructor
Member Function Documentation
virtual PxDataAccessFlags PxParticleReadData::getDataAccessFlags | ( | ) | [pure virtual] |
Returns PxDataAccessFlag::eREADABLE, since PxParticleReadData is read only data.
- See also:
- PxLockedData
Implements PxLockedData.
virtual void PxParticleReadData::unlock | ( | ) | [pure virtual] |
Member Data Documentation
Collision normals of colliding particles. The collision normal buffer is only guaranteed to be valid after the particle system has been simulated. Otherwise collisionNormalBuffer.ptr() is NULL. This also applies to particle systems that are not assigned to a scene.
Particle flags.
Number of particles (only including particles with PxParticleFlag.eVALID set).
Particle position data.
Particle rest offset data.
Bitmap marking valid particle indices. The bitmap is defined between [0, (PxParticleReadData.validParticleRange-1) >> 5].
- Note:
- Might be NULL if PxParticleReadData.validParticleRange == 0.
Index after the last valid particle (PxParticleFlag.eVALID set). Its 0 if there are no valid particles.
Particle velocity data.
The documentation for this class was generated from the following file:
Copyright © 2008-2012 NVIDIA Corporation, 2701 San Tomas Expressway, Santa Clara, CA 95050 U.S.A. All rights reserved. www.nvidia.com