![]() |
VR-Forces 5.0.2 Developer's Guide
|
DtParticleSystem is implementation of the particle system, vrvOsg communicates with it via DtParticleSystemModelInstance and DtParticleSystemModel.

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) | |
| virtual | ~DtFxParticleSystem (void) |
| virtual void | set_position (double x, double y, double z) |
| virtual void | get_position (double *x, double *y, double *z) |
| virtual void | set_position (int subemitter, double x, double y, double z) |
| virtual void | set_position (const bdiFarPosition &pos) |
| virtual const bdiFarPosition & | get_position (void) |
| virtual void | reset_prev_position_next_update () |
| virtual void | set_rotation (float angle, float x, float y, float z) |
| virtual void | set_orientation_dir (const bdiVec3f &orient) |
| virtual void | set_orientation (float *orientation) |
| virtual void | set_orientation (const bdiMat4f &orientationMat) |
| virtual int | update (float fElapsedTime) |
| float | get_age () |
| virtual void | prep_vbo_for_rendering () |
| virtual void | render_debug_visuals (osg::RenderInfo &renderInfo, int flags) |
| virtual void | render_collision_objects (osg::RenderInfo &renderInfo) |
| virtual void | sort_system (const bdiFarPosition &eyePos) |
| virtual void | restart_particle_system (void) |
| virtual void | set_desc (bdiParticleDesc *desc) |
| virtual bdiParticleDesc * | get_desc () |
| virtual void | stop_emitting () |
| virtual void | start_emitting () |
| virtual void | pause_emitting () |
| virtual int | get_emitting () |
| virtual int | get_active_count () |
| virtual void | stop_all_particles () |
| virtual bool | isEmitTimeInfinite () const |
| const bdiOctTreeBoundingBox & | get_bounding_box () |
| bool | is_visible () |
| bool | is_visible (const bdiCameraFrustum *frustum) |
| virtual void | set_scale (float scale) |
| virtual void | set_scale (float scale_x, float scale_y, float scale_z) |
| virtual void | set_scale (const bdiVec3f &scale) |
| virtual const bdiVec3f & | get_scale () |
| virtual void | set_time_scale (float t) |
| virtual void | setIntensity (float intensity) |
| virtual float | intensity () const |
| virtual void | setIsRotorWash (bool scaleVortexLift) |
| virtual bool | isRotorWash () const |
| virtual void | setRotorDiameter (double diameter) |
| virtual double | rotorDiameter () const |
| virtual void | setRotorWindSpeed (double speed) |
| virtual double | rotorWindSpeed () const |
| virtual void | set_name (const char *name) |
| virtual const char * | get_name () |
| virtual bdiLight * | get_light_object () |
| virtual void | setRandomSeed (unsigned int value) |
| virtual void | setCameraDistance (float distance) |
| virtual float | cameraDistance () |
| virtual void | addChildSystem (DtFxParticleSystem *child, float time_offset) |
| virtual void | removeChildSystem (DtFxParticleSystem *child) |
| virtual void | clearParent () |
| virtual void | set_vbo_start_index (int index) |
| virtual int | get_vbo_start_index () |
| virtual bool | get_sort_system () |
| virtual const bdiVec3f & | get_velocity () |
| virtual void | set_wind (const bdiVec3f &wind) |
| virtual void | addGlobalForces () |
| virtual void | removeGlobalForces () |
| virtual int | artPartOverride () |
| virtual const bdiVec3f & | artPartOffset () |
| virtual void | pauseUpdate () |
| virtual void | resumeUpdate () |
| virtual bool | paused () |
| virtual void | restart_merged_system () |
| virtual void | setAttachedModel (DtOsgArticulatedModel *model) |
| virtual int | getNumGlobalForces () |
| virtual DtFxForceInterface * | getGlobalForce (int index) |
| void | setIsPreviewSystem () |
| void | setSortParticles (bool sort) |
| virtual void | recompileScripts () |
| exprtk::symbol_table< float > & | symbolTable () |
| bdiFarPosition * | positionPtr () |
| 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) |
| virtual void | update_appearance (int start_index) |
| virtual void | update_physics (float quantum, int start_index) |
| virtual void | render_emitter (bdiVec3fArray &verts, bdiVec4fArray &colors, const bdiVec3f &emitter_pos) |
| virtual void | prepCurrentForcesAndObjects () |
| void | add_force_visual (const bdiFarPosition &camPos, bool has_geo, const bdiVec3f &upVec, DtFxParticle &particle, bdiVec3fArray &verts, bdiVec4fArray &colors) |
| 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
|
virtual |
does the system emit forever
| 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, 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 |
removes a system from list of children
|
virtual |
clears the parent pointer (used when parent is destroyed)
|
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 |
makes sure that the system fires at least one time
|
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 |
these are lightweight accessor called multiple times a frame, meant to avoid friends but also avoiding perf hits
|
inline |
these are lightweight accessor called multiple times a frame, meant to avoid friends but also avoiding perf hits
|
inline |
these are lightweight accessor called multiple times a frame, meant to avoid friends but also avoiding perf hits
|
inline |
these are lightweight accessor called multiple times a frame, meant to avoid friends but also avoiding perf hits
|
inline |
these are lightweight accessor called multiple times a frame, meant to avoid friends but also avoiding perf hits
|
inline |
these are lightweight accessor called multiple times a frame, meant to avoid friends but also avoiding perf hits
|
inline |
these are lightweight accessor called multiple times a frame, meant to avoid friends but also avoiding perf hits
|
inline |
these are lightweight accessor called multiple times a frame, meant to avoid friends but also avoiding perf hits
|
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 |
|
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 |
|
protected |
shadow vars for the symbol table
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |