![]() |
VR-Forces 4.8 Class Documentation
|
DtParticleSystem is implementation of the particle system, vrvOsg communicates with it via DtParticleSystemModelInstance and DtParticleSystemModel. More...

Classes | |
| struct | ParticleSortLocation |
Public Types | |
| enum | DebugFlags { Lights = 0x00000001, Forces = 0x00000010, Force3DVectors = 0x00000100, Force2DVectors = 0x00001000, BoundingBoxes = 0x00010000, Objects = 0x00100000, Velocities = 0x01000000, All = Lights | Forces | Force2DVectors | BoundingBoxes | Objects | Velocities } |
Public Member Functions | |
| DtFxParticleSystem (DtFxParticleSystemManager *manager, DtFxParticleDesc *desc) | |
| CTOR. More... | |
| virtual | ~DtFxParticleSystem (void) |
| DTOR. More... | |
| virtual void | set_position (double x, double y, double z) |
| note includes the xform from vrv to diguy More... | |
| virtual void | get_position (double *x, double *y, double *z) |
| doesn't include diguy to vrv xform but don't think it's used More... | |
| virtual void | set_position (int subemitter, double x, double y, double z) |
| note includes the xform from vrv to diguy More... | |
| virtual void | set_position (const bdiFarPosition &pos) |
| compatibility with diguy sdk More... | |
| virtual const bdiFarPosition & | get_position (void) |
| gets position More... | |
| virtual void | reset_prev_position_next_update () |
| called after starting the system More... | |
| virtual void | set_rotation (float angle, float x, float y, float z) |
| quat representation of rotation, this is the main API VRV uses More... | |
| virtual void | set_orientation_dir (const bdiVec3f &orient) |
| unuse diguy sdk support More... | |
| virtual void | set_orientation (float *orientation) |
| unused diguy sdk support More... | |
| virtual void | set_orientation (const bdiMat4f &orientationMat) |
| used for child systems More... | |
| virtual int | update (float fElapsedTime) |
| updates the psystem time More... | |
| float | get_age () |
| age of the particle system More... | |
| virtual void | prep_vbo_for_rendering () |
| renders the particle system More... | |
| virtual void | render_debug_visuals (osg::RenderInfo &renderInfo, int flags) |
| draws other helper visuals More... | |
| virtual void | render_collision_objects (osg::RenderInfo &renderInfo) |
| renders the collision planes More... | |
| virtual void | sort_system (const bdiFarPosition &eyePos) |
| sorts the system based on the distance to the eye More... | |
| virtual void | restart_particle_system (void) |
| restart the particle system and resets state More... | |
| virtual void | set_desc (bdiParticleDesc *desc) |
| sets the current description to use More... | |
| virtual bdiParticleDesc * | get_desc () |
| gets the particlription More... | |
| virtual void | stop_emitting () |
| stops the system emitting More... | |
| virtual void | start_emitting () |
| starts the system emitting More... | |
| virtual void | pause_emitting () |
| unsupported it's the same as stop More... | |
| virtual int | get_emitting () |
| is the system currently emitting More... | |
| virtual int | get_active_count () |
| how many particles does the system have More... | |
| virtual void | stop_all_particles () |
| needed for diguy api compatibility. clears all particles in the system More... | |
| const bdiOctTreeBoundingBox & | get_bounding_box () |
| gets the current bounding box, might have precision issues in geocentric More... | |
| bool | is_visible () |
| unused More... | |
| bool | is_visible (const bdiCameraFrustum *frustum) |
| unused More... | |
| virtual void | set_scale (float scale) |
| unused More... | |
| virtual void | set_scale (float scale_x, float scale_y, float scale_z) |
| unused More... | |
| virtual void | set_scale (const bdiVec3f &scale) |
| unused More... | |
| virtual const bdiVec3f & | get_scale () |
| unused More... | |
| virtual void | set_time_scale (float t) |
| scales the systems time More... | |
| virtual void | setIntensity (float intensity) |
| Multiply age of particles so they appear to fade out faster 1 -> original system, -0 -> particles fade out immediately. More... | |
| virtual float | intensity () const |
| Retrieve the current intensity of the particle system. More... | |
| virtual void | setGroundDist (float groundDist) |
| For rotorwash type effects, give the particle system an idea how far away the helicopter is. More... | |
| virtual float | groundDist () const |
| For rotorwash, get the distance from the helicopter. More... | |
| virtual void | setIsRotorWash (bool scaleVortexLift) |
| For rotorwash type effects, set whether the vortex lift force will scale it's force down and expand it's radius up depending on the intensity of the particle system. More... | |
| virtual bool | isRotorWash () const |
| For rotorwash type effects, get whether vortex lift force/radius is scaled based on intensity of the effect. More... | |
| virtual void | setRotorDiameter (double diameter) |
| For rotorwash type effects, set the diameter of the helicoper rotor blades (rotor disk) More... | |
| virtual double | rotorDiameter () const |
| For rotorwash type effects, get the diameter of the helicoper rotor blades (rotor disk) More... | |
| virtual void | setRotorWindSpeed (double speed) |
| For rotorwash type effects, set the speed of the helicoper rotor blade rotation. More... | |
| virtual double | rotorWindSpeed () const |
| For rotorwash type effects, get the speed of the helicoper rotor blade rotation. More... | |
| virtual void | set_name (const char *name) |
| gives particle system a name More... | |
| virtual const char * | get_name () |
| gets the particle system's name More... | |
| virtual bdiLight * | get_light_object () |
| gets the diguy light object associated with psystem More... | |
| virtual void | setRandomSeed (unsigned int value) |
| random number seed More... | |
| virtual void | setCameraDistance (float distance) |
| how far system is from current camera, used for sorting More... | |
| virtual float | cameraDistance () |
| get how far system is from current camera, used for sorting More... | |
| virtual void | addChildSystem (DtFxParticleSystem *child, float time_offset) |
| adds a child particle system More... | |
| virtual void | set_vbo_start_index (int index) |
| where in the vbo the particle system data starts More... | |
| virtual int | get_vbo_start_index () |
| where in the vbo the particle system data starts More... | |
| virtual bool | get_sort_system () |
| should this system get per frame sorted More... | |
| virtual const bdiVec3f & | get_velocity () |
| current system velocity More... | |
| virtual void | set_wind (const bdiVec3f &wind) |
| current wind More... | |
| virtual void | addGlobalForces () |
| adds the forces from this system to the particle manager More... | |
| virtual void | removeGlobalForces () |
| removes the forces from this system from the particle manager More... | |
| virtual int | artPartOverride () |
| debugging aid allows the editor to feed back to the renderer More... | |
| virtual const bdiVec3f & | artPartOffset () |
| virtual void | pauseUpdate () |
| compatibility with ParticleSystemModelInstance More... | |
| virtual void | resumeUpdate () |
| compatibility with ParticleSystemModelInstance More... | |
| virtual bool | paused () |
| is the system frozen More... | |
| virtual void | setAttachedModel (DtOsgArticulatedModel *model) |
| lets the editor know a model to use for testing More... | |
| virtual int | getNumGlobalForces () |
| how many global forces are there More... | |
| virtual DtFxForceInterface * | getGlobalForce (int index) |
| returns global force More... | |
| void | setIsPreviewSystem () |
| void | setSortParticles (bool sort) |
| sets if particles should sort or not More... | |
| virtual void | recompileScripts () |
| recompiles scripts More... | |
| exprtk::symbol_table< float > & | symbolTable () |
| script support More... | |
| bdiFarPosition * | positionPtr () |
| these are lightweight accessor called multiple times a frame, meant to avoid friends but also avoiding perf hits More... | |
| float * | systemScalePtr () |
| float * | systemIntensityPtr () |
| const DtOsgArticulatedModel * | attachedModel () const |
| std::vector < DtFxParticleSystem * > & | getChildSystems () |
| DtFxParticleDesc * | desc () |
| DtFxParticleDrawDesc & | currentDrawDesc () |
| const bdiMat4f & | geocentricMat () const |
| const bdiMat4f & | geocentricMatInv () const |
Protected Member Functions | |
| virtual void | emit_particles (float quantum) |
| emit particles for this time step More... | |
| virtual void | update_appearance (int start_index) |
| update colors of the particles starting from start_index More... | |
| virtual void | update_physics (float quantum, int start_index) |
| update physics of the particles starting from start_index More... | |
| virtual void | render_emitter (bdiVec3fArray &verts, bdiVec4fArray &colors, const bdiVec3f &emitter_pos) |
| renders the emitter visual More... | |
| virtual void | prepCurrentForcesAndObjects () |
| culls out relevant forces More... | |
| void | add_force_visual (const bdiFarPosition &camPos, bool has_geo, const bdiVec3f &upVec, DtFxParticle &particle, bdiVec3fArray &verts, bdiVec4fArray &colors) |
| helper function for visualizing particle force More... | |
DtParticleSystem is implementation of the particle system, vrvOsg communicates with it via DtParticleSystemModelInstance and DtParticleSystemModel.
| makVrv::DtFxParticleSystem::DtFxParticleSystem | ( | DtFxParticleSystemManager * | manager, |
| DtFxParticleDesc * | desc | ||
| ) |
CTOR.
|
virtual |
DTOR.
note includes the xform from vrv to diguy
|
virtual |
doesn't include diguy to vrv xform but don't think it's used
|
virtual |
note includes the xform from vrv to diguy
|
virtual |
compatibility with diguy sdk
|
virtual |
gets position
|
virtual |
called after starting the system
|
virtual |
quat representation of rotation, this is the main API VRV uses
|
virtual |
unuse diguy sdk support
|
virtual |
unused diguy sdk support
|
virtual |
used for child systems
|
virtual |
updates the psystem time
| float makVrv::DtFxParticleSystem::get_age | ( | ) |
age of the particle system
|
virtual |
renders the particle system
|
virtual |
draws other helper visuals
|
virtual |
renders the collision planes
|
virtual |
sorts the system based on the distance to the eye
|
virtual |
restart the particle system and resets state
|
virtual |
sets the current description to use
|
virtual |
gets the particlription
|
virtual |
stops the system emitting
|
virtual |
starts the system emitting
|
inlinevirtual |
unsupported it's the same as stop
|
virtual |
is the system currently emitting
|
virtual |
how many particles does the system have
|
virtual |
needed for diguy api compatibility. clears all particles in the system
| const bdiOctTreeBoundingBox& makVrv::DtFxParticleSystem::get_bounding_box | ( | ) |
gets the current bounding box, might have precision issues in geocentric
| bool makVrv::DtFxParticleSystem::is_visible | ( | ) |
unused
| bool makVrv::DtFxParticleSystem::is_visible | ( | const bdiCameraFrustum * | frustum | ) |
unused
|
virtual |
unused
|
virtual |
unused
|
virtual |
unused
|
virtual |
unused
|
virtual |
scales the systems time
|
virtual |
Multiply age of particles so they appear to fade out faster 1 -> original system, -0 -> particles fade out immediately.
|
virtual |
Retrieve the current intensity of the particle system.
|
virtual |
For rotorwash type effects, give the particle system an idea how far away the helicopter is.
|
virtual |
For rotorwash, get the distance from the helicopter.
|
virtual |
For rotorwash type effects, set whether the vortex lift force will scale it's force down and expand it's radius up depending on the intensity of the particle system.
|
virtual |
For rotorwash type effects, get whether vortex lift force/radius is scaled based on intensity of the effect.
|
virtual |
For rotorwash type effects, set the diameter of the helicoper rotor blades (rotor disk)
|
virtual |
For rotorwash type effects, get the diameter of the helicoper rotor blades (rotor disk)
|
virtual |
For rotorwash type effects, set the speed of the helicoper rotor blade rotation.
|
virtual |
For rotorwash type effects, get the speed of the helicoper rotor blade rotation.
|
virtual |
gives particle system a name
|
virtual |
gets the particle system's name
|
virtual |
gets the diguy light object associated with psystem
random number seed
|
virtual |
how far system is from current camera, used for sorting
|
virtual |
get how far system is from current camera, used for sorting
|
virtual |
adds a child particle system
|
virtual |
where in the vbo the particle system data starts
|
virtual |
where in the vbo the particle system data starts
|
virtual |
should this system get per frame sorted
|
virtual |
current system velocity
|
virtual |
current wind
|
virtual |
adds the forces from this system to the particle manager
|
virtual |
removes the forces from this system from the particle manager
|
virtual |
debugging aid allows the editor to feed back to the renderer
|
virtual |
|
virtual |
compatibility with ParticleSystemModelInstance
|
virtual |
compatibility with ParticleSystemModelInstance
|
virtual |
is the system frozen
|
virtual |
lets the editor know a model to use for testing
|
virtual |
how many global forces are there
|
virtual |
returns global force
|
inline |
|
inline |
sets if particles should sort or not
|
inline |
these are lightweight accessor called multiple times a frame, meant to avoid friends but also avoiding perf hits
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
virtual |
recompiles scripts
|
inline |
script support
|
protectedvirtual |
emit particles for this time step
|
protectedvirtual |
update colors of the particles starting from start_index
|
protectedvirtual |
update physics of the particles starting from start_index
|
protectedvirtual |
renders the emitter visual
|
protectedvirtual |
culls out relevant forces
|
protected |
helper function for visualizing particle force
|
protected |
|
protected |
the description of the particle system
|
protected |
array of cpu particles
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
a list of forces that this systems owns, cloned from templates in the description
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
shadow vars for the symbol table
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |