mantaflow
0.10
A framework for fluid simulation
|
#include <particle.h>
Public Types | |
enum | SystemType { BASE =0, PARTICLE, VORTEX, FILAMENT, FLIP, TURBULENCE, INDEX } |
enum | ParticleStatus { PNONE = 0, PNEW = (1<<1), PDELETE = (1<<10), PINVALID = (1<<30) } |
Public Member Functions | |
PYTHON () ParticleBase(FluidSolver *parent) | |
virtual void | cloneParticleData (ParticleBase *nm) |
copy all the particle data thats registered with the other particle system to this one | |
virtual SystemType | getType () const |
virtual std::string | infoString () const |
virtual ParticleBase * | clone () |
virtual IndexInt | getSizeSlow () const |
slow virtual function to query size, do not use in kernels! use size() instead | |
void | addBuffered (const Vec3 &pos) |
add a position as potential candidate for new particle (todo, make usable from parallel threads) | |
PYTHON () PbClass *create(PbType type | |
particle data functions More... | |
void | registerPdata (ParticleDataBase *pdata) |
add a particle data field, set its parent particle-system pointer | |
void | registerPdataReal (ParticleDataImpl< Real > *pdata) |
void | registerPdataVec3 (ParticleDataImpl< Vec3 > *pdata) |
void | registerPdataInt (ParticleDataImpl< int > *pdata) |
void | deregister (ParticleDataBase *pdata) |
remove a particle data entry | |
void | addAllPdata () |
add one zero entry to all data fields | |
IndexInt | getNumPdata () const |
how many are there? | |
ParticleDataBase * | getPdata (int i) |
access one of the fields | |
Public Attributes | |
PbTypeVec | T =PbTypeVec() |
PbTypeVec const std::string & | name = "") |
Protected Attributes | |
std::vector< Vec3 > | mNewBuffer |
new particle candidates | |
bool | mAllowCompress |
allow automatic compression / resize? disallowed for, eg, flip particle systems | |
std::vector< ParticleDataBase * > | mPartData |
store particle data , each pointer has its own storage vector of a certain type (int, real, vec3) | |
std::vector< ParticleDataImpl< Real > * > | mPdataReal |
lists of different types, for fast operations w/o virtual function calls (all calls necessary per particle) | |
std::vector< ParticleDataImpl< Vec3 > * > | mPdataVec3 |
std::vector< ParticleDataImpl< int > * > | mPdataInt |
bool | mFreePdata |
indicate that pdata of this particle system is copied, and needs to be freed | |
Baseclass for particle systems. Does not implement any data
Manta::ParticleBase::PYTHON | ( | ) |
particle data functions
create a particle data object