![]() |
Divide Framework 0.1
A free and open-source 3D Framework under heavy development
|
Container to store data for a given set of particles. More...
#include <ParticleData.h>
Public Member Functions | |
void | setParticleGeometry (const vector< vec3< F32 > > &particleGeometryVertices, const vector< U32 > &particleGeometryIndices, PrimitiveTopology particleGeometryType) |
void | setBillboarded (bool state) noexcept |
PrimitiveTopology | particleGeometryType () const noexcept |
const vector< vec3< F32 > > & | particleGeometryVertices () const noexcept |
const vector< U32 > & | particleGeometryIndices () const noexcept |
bool | isBillboarded () const noexcept |
PROPERTY_RW (U32, optionsMask, 0u) | |
ParticleData (GFXDevice &context, U32 particleCount, U32 optionsMask) | |
~ParticleData () | |
void | generateParticles (U32 particleCount, U32 optionsMask) |
void | kill (U32 index) |
void | wake (U32 index) |
void | swapData (U32 indexA, U32 indexB) |
U32 | aliveCount () const noexcept |
U32 | totalCount () const noexcept |
void | sort () |
Sort ALIVE particles only. | |
Public Attributes | |
vector< std::pair< U32, F32 > > | _indices |
helper array used for sorting | |
vector< vec4< F32 > > | _renderingPositions |
vector< UColour4 > | _renderingColours |
vector< vec4< F32 > > | _position |
x,y,z = position; w = size | |
vector< vec4< F32 > > | _velocity |
x,y,z = _velocity; w = angle; | |
vector< vec4< F32 > > | _acceleration |
x,y,z = _acceleration; w = weight; | |
vector< vec4< F32 > > | _misc |
x = time; y = interpolation; z = 1 / time; w = distance to camera sq; | |
vector< FColour4 > | _colour |
r,g,b,a = colour and transparency | |
vector< FColour4 > | _startColour |
r,g,b,a = colour and transparency | |
vector< FColour4 > | _endColour |
r,g,b,a = colour and transparency | |
string | _textureFileName |
Location of the texture file. Leave blank for colour only. | |
Static Public Attributes | |
static constexpr U32 | g_threadPartitionSize = 256 |
Protected Attributes | |
U32 | _totalCount = 0u |
U32 | _aliveCount = 0u |
bool | _isBillboarded = true |
vector< vec3< F32 > > | _particleGeometryVertices |
vector< U32 > | _particleGeometryIndices |
PrimitiveTopology | _particleGeometryType = PrimitiveTopology::COUNT |
GFXDevice & | _context |
Container to store data for a given set of particles.
Definition at line 59 of file ParticleData.h.
|
explicit |
Definition at line 11 of file ParticleData.cpp.
Divide::ParticleData::~ParticleData | ( | ) |
Definition at line 26 of file ParticleData.cpp.
|
inlinenoexcept |
Definition at line 117 of file ParticleData.h.
Definition at line 30 of file ParticleData.cpp.
|
inlinenoexcept |
Definition at line 103 of file ParticleData.h.
void Divide::ParticleData::kill | ( | U32 | index | ) |
Definition at line 70 of file ParticleData.cpp.
Definition at line 99 of file ParticleData.h.
|
inlinenoexcept |
Definition at line 91 of file ParticleData.h.
|
inlinenoexcept |
Definition at line 95 of file ParticleData.h.
Divide::ParticleData::PROPERTY_RW | ( | U32 | , |
optionsMask | , | ||
0u | |||
) |
|
noexcept |
Definition at line 154 of file ParticleData.cpp.
void Divide::ParticleData::setParticleGeometry | ( | const vector< vec3< F32 > > & | particleGeometryVertices, |
const vector< U32 > & | particleGeometryIndices, | ||
PrimitiveTopology | particleGeometryType | ||
) |
Definition at line 146 of file ParticleData.cpp.
void Divide::ParticleData::sort | ( | ) |
Sort ALIVE particles only.
Definition at line 80 of file ParticleData.cpp.
Definition at line 121 of file ParticleData.cpp.
|
inlinenoexcept |
Definition at line 118 of file ParticleData.h.
void Divide::ParticleData::wake | ( | U32 | index | ) |
Definition at line 75 of file ParticleData.cpp.
x,y,z = _acceleration; w = weight;
Definition at line 72 of file ParticleData.h.
|
protected |
Definition at line 125 of file ParticleData.h.
r,g,b,a = colour and transparency
Definition at line 76 of file ParticleData.h.
|
protected |
Definition at line 132 of file ParticleData.h.
r,g,b,a = colour and transparency
Definition at line 80 of file ParticleData.h.
helper array used for sorting
Definition at line 64 of file ParticleData.h.
|
protected |
Definition at line 127 of file ParticleData.h.
x = time; y = interpolation; z = 1 / time; w = distance to camera sq;
Definition at line 74 of file ParticleData.h.
Definition at line 129 of file ParticleData.h.
|
protected |
Definition at line 130 of file ParticleData.h.
Definition at line 128 of file ParticleData.h.
x,y,z = position; w = size
Definition at line 68 of file ParticleData.h.
Definition at line 66 of file ParticleData.h.
Definition at line 65 of file ParticleData.h.
r,g,b,a = colour and transparency
Definition at line 78 of file ParticleData.h.
string Divide::ParticleData::_textureFileName |
Location of the texture file. Leave blank for colour only.
Definition at line 82 of file ParticleData.h.
|
protected |
Definition at line 124 of file ParticleData.h.
x,y,z = _velocity; w = angle;
Definition at line 70 of file ParticleData.h.
|
staticconstexpr |
Definition at line 61 of file ParticleData.h.