12 #include <tbb/mutex.h>
14 #include <osg/Texture2D>
22 #include <bdiKeyFrames.h>
23 #include <declspec_bdiutil.h>
24 #include <libvecmat_float.h>
25 #include <bdiFarPosition.h>
26 #include <bdiOctTreeBoundingBox.h>
27 #include <bdi_vector_arrays.h>
29 #include <bdiString.h>
30 #include <diguy_constants.h>
31 #include <bdi_simple_templates.h>
32 #include <bdiParticleDesc.h>
34 #include <diguyMaterialType.h>
35 #include <diguyParticleSystem.h>
45 #undef LIBBDIOBJECT_ARRAY_TYPE
46 #undef LIBBDIOBJECT_ARRAY_CLASS_NAME
47 #define LIBBDIOBJECT_ARRAY_TYPE bdiVec3f
48 #define LIBBDIOBJECT_ARRAY_CLASS_NAME bdiVec3fPtrArray
52 #undef LIBBDIOBJECT_ARRAY_TYPE
53 #undef LIBBDIOBJECT_ARRAY_CLASS_NAME
75 #define LIBBDIOBJECT_ARRAY_TYPE makVrv::DtFxChildSystem
76 #define LIBBDIOBJECT_ARRAY_CLASS_NAME DtFxChildSystemArray
77 #define LIBBDIOBJECT_ARRAY_INLINE
78 #define LIBBDIOBJECT_ARRAY_DISABLE_BOUNDS_CHECKING
83 #undef LIBBDIOBJECT_ARRAY_DISABLE_BOUNDS_CHECKING
84 #undef LIBBDIOBJECT_ARRAY_INLINE
85 #undef LIBBDIOBJECT_ARRAY_TYPE
86 #undef LIBBDIOBJECT_ARRAY_CLASS_NAME
102 class DtFxOsgParticleDrawable;
103 struct DtFxParticleVertex;
106 class DtFxParticleSystemManager;
107 class DtOsgArticulatedModel;
128 virtual void reset();
131 virtual int read_cfg_entries(bdiCfgEntry* cfg_entry);
134 virtual int write_cfg_entries(bdiCfgReader* cfg_reader);
137 virtual bdiCfgEntry* create_cfg_entry();
140 virtual void set_texture_name(
const char* chTexFile);
143 virtual void set_normal_texture_name(
const char* chTexFile);
146 virtual void setFileSouce(
const char* file_source);
149 virtual void setEdited(
bool edited);
152 virtual bool edited();
155 virtual void setDiffuseTexture(osg::Texture2D* osg_diffuse_texture);
158 virtual void setNormalTexture(osg::Texture2D* osg_normal_texture);
190 inline const bdiString&
fileSouce() {
return myFileSouce; }
193 inline const DtFxChildSystemArray&
childSystems() {
return m_child_system_descs; }
197 static float smooth_interpolate_keys(FloatKeyFrameArray& array,
char* prev_keyframe,
float time);
199 static bdiVec4f smooth_interpolate_keys(ColorKeyFrameArray& array,
char* prev_keyframe,
float time);
202 static float smooth_interpolate_keys(FloatKeyFrameArray& array,
float speed);
204 static bdiVec4f smooth_interpolate_keys(ColorKeyFrameArray& array,
float speed);
360 unsigned char m_color[4];
370 m_vertex[0] = m_vertex[1] = m_vertex[2] = 0.0f;
371 m_color[0] = m_color[1] = m_color[2] = m_color[3] = 0;
396 Force3DVectors = 0x00000100,
397 Force2DVectors = 0x00001000,
398 BoundingBoxes = 0x00010000,
399 Objects = 0x00100000,
400 Velocities = 0x01000000,
402 All = Lights | Forces | Force2DVectors | BoundingBoxes | Objects | Velocities,
421 virtual void set_position(
double x,
double y,
double z);
423 virtual void get_position(
double* x,
double* y,
double* z);
426 virtual void set_position(
int subemitter,
double x,
double y,
double z);
429 virtual void set_position(
const bdiFarPosition& pos);
431 virtual const bdiFarPosition& get_position(
void);
434 virtual void reset_prev_position_next_update();
437 virtual void set_rotation(
float angle,
float x,
float y,
float z);
440 virtual void set_orientation_dir(
const bdiVec3f& orient);
442 virtual void set_orientation(
float* orientation);
445 virtual void set_orientation(
const bdiMat4f& orientationMat);
448 virtual int update(
float fElapsedTime);
454 virtual void prep_vbo_for_rendering();
456 virtual void render_debug_visuals(osg::RenderInfo& renderInfo,
int flags);
459 virtual void render_collision_objects(osg::RenderInfo& renderInfo);
462 virtual void sort_system(
const bdiFarPosition& eyePos);
465 virtual void restart_particle_system(
void);
473 virtual void stop_emitting();
475 virtual void start_emitting();
480 virtual int get_emitting();
482 virtual int get_active_count();
484 virtual void stop_all_particles();
487 const bdiOctTreeBoundingBox& get_bounding_box();
493 bool is_visible(
const bdiCameraFrustum* frustum);
496 virtual void set_scale(
float scale);
498 virtual void set_scale(
float scale_x,
float scale_y,
float scale_z);
500 virtual void set_scale(
const bdiVec3f& scale);
502 virtual const bdiVec3f& get_scale();
505 virtual void set_time_scale(
float t);
508 virtual void setIntensity(
float intensity);
510 virtual float intensity()
const;
515 virtual void setIsRotorWash(
bool scaleVortexLift);
518 virtual bool isRotorWash()
const;
522 virtual void setRotorDiameter(
double diameter);
525 virtual double rotorDiameter()
const;
529 virtual void setRotorWindSpeed(
double speed);
532 virtual double rotorWindSpeed()
const;
535 virtual void set_name(
const char*name);
537 virtual const char* get_name();
539 virtual bdiLight* get_light_object();
542 virtual void setRandomSeed(
unsigned int value);
545 virtual void setCameraDistance(
float distance);
547 virtual float cameraDistance();
553 virtual void set_vbo_start_index(
int index);
555 virtual int get_vbo_start_index();
557 virtual bool get_sort_system();
560 virtual const bdiVec3f& get_velocity();
563 virtual void set_wind(
const bdiVec3f& wind);
566 virtual void addGlobalForces();
568 virtual void removeGlobalForces();
571 virtual int artPartOverride();
572 virtual const bdiVec3f& artPartOffset();
575 virtual void pauseUpdate();
577 virtual void resumeUpdate();
579 virtual bool paused();
585 virtual int getNumGlobalForces();
603 inline std::vector<DtFxParticleSystem*>&
getChildSystems() {
return m_child_systems; }
611 virtual void recompileScripts();
614 exprtk::symbol_table<float>&
symbolTable() {
return mySymbolTable; }
618 virtual void emit_particles(
float quantum);
620 virtual void update_appearance(
int start_index);
622 virtual void update_physics(
float quantum,
int start_index);
625 virtual void render_emitter(bdiVec3fArray& verts, bdiVec4fArray& colors,
const bdiVec3f& emitter_pos);
628 virtual void prepCurrentForcesAndObjects();
631 void add_force_visual(
const bdiFarPosition& camPos,
bool has_geo,
const bdiVec3f& upVec,
632 DtFxParticle &particle, bdiVec3fArray &verts, bdiVec4fArray &colors);
733 #define LIBBDIOBJECT_NAMED_ARRAY_TYPE makVrv::DtFxParticleSystem
734 #define LIBBDIOBJECT_NAMED_ARRAY_CLASS_NAME DtFxParticleSystemArray
735 #undef LIBBDIOBJECT_NAMED_ARRAY_DECLSPEC_bdiutil
736 #define LIBBDIOBJECT_NAMED_ARRAY_INLINE
739 # ifdef vrvFx_EXPORTS
740 # define BDI_DECLSPEC_custom __declspec ( dllexport )
742 # define BDI_DECLSPEC_custom __declspec ( dllimport )
746 #include "libbdiobject_named_array_declaration_template.h"
747 #include "libbdiobject_named_array_definition_template.h"
749 #undef LIBBDIOBJECT_NAMED_ARRAY_INLINE
750 #undef LIBBDIOBJECT_NAMED_ARRAY_TYPE
751 #undef LIBBDIOBJECT_NAMED_ARRAY_CLASS_NAME
752 #undef LIBBDIOBJECT_NAMED_ARRAY_DECLSPEC_bdiutil
775 #define LIBBDIOBJECT_NAMED_ARRAY_TYPE makVrv::DtFxParticleSystemHolder
776 #define LIBBDIOBJECT_NAMED_ARRAY_CLASS_NAME DtFxParticleSystemHolderArray
777 #undef LIBBDIOBJECT_NAMED_ARRAY_DECLSPEC_bdiutil
778 #define LIBBDIOBJECT_NAMED_ARRAY_INLINE
781 # ifdef vrvFx_EXPORTS
782 # define BDI_DECLSPEC_custom __declspec ( dllexport )
784 # define BDI_DECLSPEC_custom __declspec ( dllimport )
788 #include "libbdiobject_named_array_declaration_template.h"
789 #include "libbdiobject_named_array_definition_template.h"
791 #undef LIBBDIOBJECT_NAMED_ARRAY_INLINE
792 #undef LIBBDIOBJECT_NAMED_ARRAY_TYPE
793 #undef LIBBDIOBJECT_NAMED_ARRAY_CLASS_NAME
794 #undef LIBBDIOBJECT_NAMED_ARRAY_DECLSPEC_bdiutil
float m_rotation_speed
Definition: DtFxParticleSystem.h:343
ExtendedNoiseType
/ingroup vrvFx
Definition: DtFxParticleSystem.h:92
bdiVec4f m_cur_color
Definition: DtFxParticleSystem.h:333
int m_num_to_release_var
variable release rate
Definition: DtFxParticleSystem.h:263
float meterialMetallicness()
how metallics is the system
Definition: DtFxParticleSystem.h:170
bdiMat4f m_current_orientation
Definition: DtFxParticleSystem.h:669
class that allows clients to add global forces (no export of virtual base class)
Definition: DtFxForceInterface.h:19
DtFxParticleSystemHolder & operator=(const DtFxParticleSystemHolder &)
Assignment Operator not implemented – Copy not allowed.
float emissivityFactor()
these are lightweight accessor called multiple times a frame, meant to avoid friends but also avoidin...
Definition: DtFxParticleSystem.h:164
DtFxParticleVertex * m_data
pointer to vertex data to fill out
Definition: DtFxParticleSystem.h:316
float translucency()
modifies the amount of light that passes through the particles
Definition: DtFxParticleSystem.h:176
Core particle editing class.
Definition: bdiQWidgetParticleSystem.h:52
float m_light_in_fade_time
Definition: DtFxParticleSystem.h:271
char m_velocity_var_index
Definition: DtFxParticleSystem.h:348
bool m_looked_up_normal_texture
Definition: DtFxParticleSystem.h:208
void setIsPreviewSystem()
Definition: DtFxParticleSystem.h:590
DtFxParticleSystemManager is the manager for all the particle systems and descriptions diguy sdk comm...
Definition: DtFxParticleSystemManager.h:41
bdiString m_name
Definition: DtFxParticleSystem.h:66
Implementation independent random number generator.
Definition: DtRandomNumberGenerator.h:20
DtOsgArticulatedModel * myAttachedModel
Definition: DtFxParticleSystem.h:697
int m_rotate_system
Definition: DtFxParticleSystem.h:666
char m_subtexture_index
Definition: DtFxParticleSystem.h:349
unsigned char m_frame
Definition: DtFxParticleSystem.h:365
float m_life_time
Definition: DtFxParticleSystem.h:341
std::vector< const DtFxForce * > myCurrentForces
Definition: DtFxParticleSystem.h:676
bdiString mySizeScript
scripts
Definition: DtFxParticleSystem.h:297
float * systemIntensityPtr()
Definition: DtFxParticleSystem.h:601
bdiVec4f m_color_var
Definition: DtFxParticleSystem.h:335
DtFxScriptData myLifetimeScript
Definition: DtFxParticleSystem.h:702
float myScriptSystemWindSpeed
Definition: DtFxParticleSystem.h:720
float myScriptNumParticles
shadow vars for the symbol table
Definition: DtFxParticleSystem.h:713
a cpu side particle representation
Definition: DtFxParticleSystem.h:321
bdiFarPosition * positionPtr()
these are lightweight accessor called multiple times a frame, meant to avoid friends but also avoidin...
Definition: DtFxParticleSystem.h:599
bool myPaused
Definition: DtFxParticleSystem.h:694
float m_size_var
Definition: DtFxParticleSystem.h:339
char m_streak_index
Definition: DtFxParticleSystem.h:346
DtFxParticleVertex()
inline constructor
Definition: DtFxParticleSystem.h:368
Definition: DtFxParticleSystem.h:98
DtFxScriptData myStreakScript
Definition: DtFxParticleSystem.h:704
ParticleSortLocation()
Definition: DtFxParticleSystem.h:408
bool m_color_by_age
Definition: DtFxParticleSystem.h:256
Contains collision object class.
bool m_normalize_light_time
should light time get normalized
Definition: DtFxParticleSystem.h:269
bdiVec4f m_prev_color
Definition: DtFxParticleSystem.h:334
bool m_reset_prev_position_next_update
Definition: DtFxParticleSystem.h:664
DtFxParticleDrawDesc myCurrentDrawDesc
Definition: DtFxParticleSystem.h:691
bdiVec3fPtrArray m_additional_offsets
Definition: DtFxParticleSystem.h:218
float materialSpecularity()
how much specularity will the material have
Definition: DtFxParticleSystem.h:167
float m_softness
depth buffer softness smoothing
Definition: DtFxParticleSystem.h:237
float m_initial_velocity_scale
how the velocity of the emitter should get
Definition: DtFxParticleSystem.h:251
bdiString myVelocityScript
Definition: DtFxParticleSystem.h:303
virtual void pause_emitting()
unsupported it's the same as stop
Definition: DtFxParticleSystem.h:477
bdiString m_normal_map_file_name
Definition: DtFxParticleSystem.h:209
Definition: DtFxParticleSystem.h:96
float m_time_since_update
Definition: DtFxParticleSystem.h:647
#define DT_DLL_VRVFX
Definition: vrvFx.h:20
float softness()
modifies the amount of light that passes through the particles
Definition: DtFxParticleSystem.h:179
float myScriptCurrentValue
Definition: DtFxParticleSystem.h:722
DtFxParticleSystem * m_system
Definition: DtFxParticleSystem.h:770
float m_max_size
Definition: DtFxParticleSystem.h:674
bool myActiveScripts
Definition: DtFxParticleSystem.h:709
int myArtPartOverride
Definition: DtFxParticleSystem.h:292
bool m_add_light
Definition: DtFxParticleSystem.h:684
bdiString myRotationSpeedScript
Definition: DtFxParticleSystem.h:302
Definition: DtFxParticleSystem.h:94
bdiMat4f m_orientation
Definition: DtFxParticleSystem.h:667
float m_material_metallicness
how metallic is the system
Definition: DtFxParticleSystem.h:229
Contains DLL export macros.
std::vector< DtFxParticle > m_active_list
array of cpu particles
Definition: DtFxParticleSystem.h:639
bdiString myColorScript
Definition: DtFxParticleSystem.h:301
float m_fSize
Definition: DtFxParticleSystem.h:338
float myScriptParticleIndex
Definition: DtFxParticleSystem.h:715
An articulated model manipulator for controlling an articulated model.
Definition: DtOsgArticulatedModel.h:67
bool m_has_valid_position
Definition: DtFxParticleSystem.h:686
float myScriptSystemSpeed
Definition: DtFxParticleSystem.h:718
float m_rotation_amount
Definition: DtFxParticleSystem.h:342
float m_translucency
modifies the amount of light that passes through the particles
Definition: DtFxParticleSystem.h:234
bool m_sort_particles
Definition: DtFxParticleSystem.h:685
DtFxParticleDrawDesc & currentDrawDesc()
Definition: DtFxParticleSystem.h:605
float m_color_speed_scale
Definition: DtFxParticleSystem.h:259
int m_active_count
Definition: DtFxParticleSystem.h:642
float distance
Definition: DtFxParticleSystem.h:411
DtFxScriptData myReleaseRateScript
Definition: DtFxParticleSystem.h:703
Definition: DtFxParticleSystem.h:99
a gpu vbo representation of the particle
Definition: DtFxParticleSystem.h:356
float m_air_resistance_factor
Definition: DtFxParticleSystem.h:242
Definition: vrv_float16.h:33
float m_material_specularity
how much specularity will the material have
Definition: DtFxParticleSystem.h:226
bdiString myFileSouce
which file is this from
Definition: DtFxParticleSystem.h:273
wrapper around a parsed expression.
Definition: DtFxScriptData.h:17
bool useLighting()
should lighting be enabled on this system
Definition: DtFxParticleSystem.h:182
float myScriptParticleSpeed
Definition: DtFxParticleSystem.h:714
osg::ref_ptr< osg::Texture2D > myOsgNormalTexture
Definition: DtFxParticleSystem.h:281
bdiVec3f m_position_offset
additional data added by vantage position offset of psystem
Definition: DtFxParticleSystem.h:217
int m_vbo_start_index
Definition: DtFxParticleSystem.h:688
float myRotorDiameter
Definition: DtFxParticleSystem.h:660
bdiFarPosition m_last_geocentric_postion
Definition: DtFxParticleSystem.h:654
float m_initial_rotation_variation
noise rotation at start
Definition: DtFxParticleSystem.h:248
bool m_use_lighting
skip lighting calculations
Definition: DtFxParticleSystem.h:231
float m_time_scale
Definition: DtFxParticleSystem.h:648
std::vector< bdiFarPosition > myCurrentForcePositions
Definition: DtFxParticleSystem.h:677
DtFxForceArray m_global_forces
a list of forces that this systems owns, cloned from templates in the description ...
Definition: DtFxParticleSystem.h:699
bool m_emitting
Definition: DtFxParticleSystem.h:644
const DtFxChildSystemArray & childSystems()
list of child systems to create
Definition: DtFxParticleSystem.h:193
Contains makVrv::DtRandomNumberGenerator class.
DT_DLL_VRVCORE double distance(const makVrv::DtCoordinateSystem &, const DtVector &from, const DtVector &to)
Returns the distance from the two points.
float * systemScalePtr()
Definition: DtFxParticleSystem.h:600
DtFxScriptData mySizeScript
Definition: DtFxParticleSystem.h:701
DtRandomNumberGenerator myRandomNumberGen
Definition: DtFxParticleSystem.h:696
DT_DLL_vrfutil double angle(double vec1[3], double vec2[3])
DtFxParticleDesc * m_desc
the description of the particle system
Definition: DtFxParticleSystem.h:637
bdiMat4f myGeocentricMat
Definition: DtFxParticleSystem.h:656
float m_next_release_freq
Definition: DtFxParticleSystem.h:651
bdiLight * m_light_object
Definition: DtFxParticleSystem.h:682
DtFxScriptData myRotationSpeedScript
Definition: DtFxParticleSystem.h:706
std::string m_name
Definition: DtFxParticleSystem.h:635
bdiVec3f m_offset
Definition: DtFxParticleSystem.h:67
float m_auto_start_time
Definition: DtFxParticleSystem.h:645
exprtk::symbol_table< float > mySymbolTable
Definition: DtFxParticleSystem.h:711
float m_camera_distance
Definition: DtFxParticleSystem.h:683
Definition: DtFxParticleSystem.h:95
bdiOctTreeBoundingBox m_bounding_box
Definition: DtFxParticleSystem.h:675
float hdrGain()
brightness multiplier on colors
Definition: DtFxParticleSystem.h:173
float m_time_since_stopping
Definition: DtFxParticleSystem.h:646
float m_hdr_gain
multiplier for hdr
Definition: DtFxParticleSystem.h:221
bdiMat4f myGeocentricMatInv
Definition: DtFxParticleSystem.h:657
bdiVec3f m_scale
Definition: DtFxParticleSystem.h:665
void setSortParticles(bool sort)
sets if particles should sort or not
Definition: DtFxParticleSystem.h:593
std::vector< DtFxParticleSystem * > & getChildSystems()
Definition: DtFxParticleSystem.h:603
DtParticleSystem is implementation of the particle system, vrvOsg communicates with it via DtParticle...
Definition: DtFxParticleSystem.h:389
Contains bdi array class.
float myRotorWindSpeed
Definition: DtFxParticleSystem.h:661
DtFxChildSystemArray m_child_system_descs
references to the other child systems
Definition: DtFxParticleSystem.h:286
const char * get_name()
Definition: DtFxParticleSystem.h:761
const bdiString & fileSouce()
which file the system was from
Definition: DtFxParticleSystem.h:190
osg::Texture2D * normalTexture()
Definition: DtFxParticleSystem.h:187
char m_velocity_index
Definition: DtFxParticleSystem.h:347
DtFxCollisionObjectArray m_collision_objects
Definition: DtFxParticleSystem.h:283
float m_release_frequency_var
variable release rate
Definition: DtFxParticleSystem.h:266
float m_age
Definition: DtFxParticleSystem.h:337
bool m_edited
has this description been edited
Definition: DtFxParticleSystem.h:276
bdiVec3f myScriptXYZ
Definition: DtFxParticleSystem.h:724
std::vector< bdiVec3f > myCurrentPlaneNormals
Definition: DtFxParticleSystem.h:679
DtFxForceArray m_additional_forces
list of additional forces
Definition: DtFxParticleSystem.h:289
osg::ref_ptr< osg::Texture2D > myOsgDiffuseTexture
osg lookup of texture
Definition: DtFxParticleSystem.h:279
bool m_size_by_age
Definition: DtFxParticleSystem.h:257
ParticleSortLocation(unsigned short _index, float _distance)
Definition: DtFxParticleSystem.h:409
bool mySlavedPositions
Definition: DtFxParticleSystem.h:710
float myScriptParticleAge
Definition: DtFxParticleSystem.h:716
float myScriptSystemForceReceived
Definition: DtFxParticleSystem.h:719
bdiString myLifeTimeScript
Definition: DtFxParticleSystem.h:298
vrv_float16 m_size
Definition: DtFxParticleSystem.h:361
DtLight * myVrvLight
Definition: DtFxParticleSystem.h:695
DtFxParticleSystemHolder()
Definition: DtFxParticleSystem.h:759
float mySystemIntensity
Definition: DtFxParticleSystem.h:658
Definition: DtFxParticleSystem.h:97
bdiVec3f m_spawn_velocity_factor
Definition: DtFxParticleSystem.h:668
std::vector< const DtFxCollisionObject * > myCurrentCollisionObjects
Definition: DtFxParticleSystem.h:678
description of the particle system rendering that can be prepped in a background thread ...
Definition: DtFxParticleSystem.h:309
char m_color_index
Definition: DtFxParticleSystem.h:344
bdiString myReleaseRateScript
Definition: DtFxParticleSystem.h:299
float m_system_scale
Definition: DtFxParticleSystem.h:670
bdiString myStreakScript
Definition: DtFxParticleSystem.h:300
Contains bdi array class.
bdiString m_name
Definition: DtFxParticleSystem.h:769
float m_fStreakSize
Definition: DtFxParticleSystem.h:340
DtFxScriptData myVelocityScript
Definition: DtFxParticleSystem.h:707
DtFxScriptData myColorScript
Definition: DtFxParticleSystem.h:705
float myScriptParticleNormalizedAge
Definition: DtFxParticleSystem.h:717
A child systems thats created when a parent system is created /ingroup vrvFx.
Definition: DtFxParticleSystem.h:63
DtFxChildSystem()
Definition: DtFxParticleSystem.h:69
Class for generic lights This holds per-light data such as range, attenuation factors, colors, etc.
Definition: DtLight.h:52
unsigned short index
Definition: DtFxParticleSystem.h:410
int m_active_count_at_stop
Definition: DtFxParticleSystem.h:643
bool m_normalized_animation_time
should the the particle animation play out over the lifetime.
Definition: DtFxParticleSystem.h:254
bool m_stuck
Definition: DtFxParticleSystem.h:350
bdiVec3f m_vertex
Definition: DtFxParticleSystem.h:359
DebugFlags
Definition: DtFxParticleSystem.h:392
bool myIsRotorWash
Definition: DtFxParticleSystem.h:659
std::vector< bdiFarPosition > myEmitterPositions
Definition: DtFxParticleSystem.h:680
float m_rotation_variation
noise rotation variation added to current rot speed
Definition: DtFxParticleSystem.h:245
float m_time_offset
Definition: DtFxParticleSystem.h:68
bdiFarPosition m_cur_pos
Definition: DtFxParticleSystem.h:330
exprtk::symbol_table< float > & symbolTable()
script support
Definition: DtFxParticleSystem.h:614
const bdiMat4f & geocentricMatInv() const
Definition: DtFxParticleSystem.h:607
Definition: DtFxParticleSystem.h:756
float myScriptInputValue
Definition: DtFxParticleSystem.h:721
bdiFarPosition m_prev_position
Definition: DtFxParticleSystem.h:653
float m_next_release_time
Definition: DtFxParticleSystem.h:649
const DtOsgArticulatedModel * attachedModel() const
Definition: DtFxParticleSystem.h:602
bdiVec3f m_velocity
Definition: DtFxParticleSystem.h:655
float m_last_release_time
Definition: DtFxParticleSystem.h:650
std::vector< ParticleSortLocation > m_sorted_list
Definition: DtFxParticleSystem.h:641
support class for float16
int m_restart_count
Definition: DtFxParticleSystem.h:662
bdiVec3f myArtPartOverrideOffset
Definition: DtFxParticleSystem.h:293
vrv_float16 m_rotation
Definition: DtFxParticleSystem.h:363
bdiFarPosition m_prev_pos
Definition: DtFxParticleSystem.h:331
bdiVec3f m_cur_vel
Definition: DtFxParticleSystem.h:332
bdiFarPosition m_position
Definition: DtFxParticleSystem.h:652
float m_emissivity_factor
multiplier for emissivity
Definition: DtFxParticleSystem.h:223
Definition: DtFxParticleSystem.h:406
bool m_is_preview_system
Definition: DtFxParticleSystem.h:687
bdiVec3f m_wind
Definition: DtFxParticleSystem.h:671
char m_size_index
Definition: DtFxParticleSystem.h:345
a subclass of bdiParticleDesc, currently reimplements all of configuration file reading and writing...
Definition: DtFxParticleSystem.h:112
float m_size_speed_scale
Definition: DtFxParticleSystem.h:260
DtFxParticleDrawDesc()
CTOR.
osg::Texture2D * diffuseTexture()
particle system's diffuse texture
Definition: DtFxParticleSystem.h:185
const bdiMat4f & geocentricMat() const
Definition: DtFxParticleSystem.h:606
bdiVec4f myScriptRGBA
Definition: DtFxParticleSystem.h:723
std::vector< DtFxParticleSystem * > m_child_systems
Definition: DtFxParticleSystem.h:690
DtFxParticleDesc * desc()
Definition: DtFxParticleSystem.h:604
float m_particle_mass
impacts how wind impacts particle.
Definition: DtFxParticleSystem.h:240
DtFxParticleDesc * m_desc
pointer to description
Definition: DtFxParticleSystem.h:314
DtFxParticleSystemHolder(const DtFxParticleSystemHolder &rhs)
Definition: DtFxParticleSystem.h:760