14 #ifndef __diguyParticleSystem_H
15 #define __diguyParticleSystem_H
20 #define CPLUSPLUS_ONLY
28 class diguyParticleManager;
58 m_character(NULL), m_system_life_time_override(-1.0f), m_visible(1)
63 virtual const char * get_name() = 0;
64 virtual void set_name(
const char * name) = 0;
67 virtual int update(
float dt) = 0;
69 virtual void start_emitting() = 0;
70 virtual void stop_emitting() = 0;
71 virtual void pause_emitting() = 0;
72 virtual void stop_all_particles() = 0;
73 virtual void restart_particle_system() = 0;
75 virtual int get_emitting() = 0;
77 virtual int get_active_count() = 0;
79 virtual void set_position(
double x,
double y,
double z ) = 0;
80 virtual void get_position(
double *x,
double *y,
double *z ) = 0;
82 virtual int set_visible(
int visible){ m_visible = visible;
return 0;}
83 virtual int get_visible(){
return m_visible; }
86 virtual void set_orientation(
float rz,
float rx,
float ry) = 0;
87 virtual void set_scale(
float scale) = 0;
88 virtual void set_scale(
float scale_x,
float scale_y,
float scale_z) = 0;
89 virtual void set_time_scale(
float t) = 0;
94 virtual void reset_prev_position_next_update() = 0;
99 void set_particle_manager(diguyParticleManager * manager){m_particle_manager = manager;}
100 diguyParticleManager * get_particle_manager() {
return m_particle_manager;}
106 m_renderer = renderer;
111 float m_system_life_time_override;
114 diguyParticleManager * m_particle_manager;
An interface class that represents a particle system that has been created by diguy's appearance effe...
Definition: diguyParticleSystem.h:52
int m_num_verts_per_primitive
Normally 4 for GL_QUADS, but can also be 2 for GL_LINES.
Definition: diguyParticleSystem.h:210
float m_brightness_multiplier
optional per particle system override for IR shader
Definition: diguyParticleSystem.h:216
int m_src_blend_func
OpenGL src blending function constant.
Definition: diguyParticleSystem.h:192
int m_particle_data_size
How large in bytes each particle is, needed for VBO stride calculations.
Definition: diguyParticleSystem.h:201
diguyParticleDrawDesc()
Definition: diguyParticleSystem.h:160
virtual void setup_particle_rendering(int render_pass_flags)=0
Function is called before individual particle systems are rendered.
int m_active_count
number of active particles for this draw call
Definition: diguyParticleSystem.h:213
int m_particle_offset_for_normals
Definition: diguyParticleSystem.h:206
float m_alpha_thresh
alpha threshold for clipping the edges of particle system
Definition: diguyParticleSystem.h:198
float m_camera_matrix[16]
Definition: diguyParticleSystem.h:144
diguyViewCamera * m_camera
Pointer to current diguy camera.
Definition: diguyParticleSystem.h:177
An Structure that represents a particle system draw state. This struct allows you to feed rendering i...
Definition: diguyParticleSystem.h:158
virtual void draw_particle_buffer(const diguyParticleDrawDesc *draw_desc, void *particle_data)=0
Function is called whenever a buffer of particles is ready to be drawn.
A class that represents a shared texture. Can be subclassed by filling out the diguy_graphics_set_tex...
Definition: diguyGraphicsTexture.h:124
diguyGraphicsTexture * m_texture
Texture to bind for rendering this particle system.
Definition: diguyParticleSystem.h:171
virtual void end_particle_rendering(int render_pass_flags)=0
Function is called after all individual particle systems are rendered.
int m_particle_offset_for_colors
Following are needed for VBO stride and offset calculations.
Definition: diguyParticleSystem.h:204
The class that represents a DI-Guy Entity in the world.
Definition: diguyCharacter.h:78
int m_dst_blend_func
OpenGL dst blending function constant.
Definition: diguyParticleSystem.h:195
int m_particle_offset_for_textures
Definition: diguyParticleSystem.h:207
int m_depth_write
Should depth writing be active for this particle.
Definition: diguyParticleSystem.h:180
int m_world_space
Is this particle in world space (usually yes)
Definition: diguyParticleSystem.h:183
An interface class that allows diguy to trigger an immediate mode rendering of a diguy particle syste...
Definition: diguyParticleSystem.h:131
The class that represents a camera in the world.
Definition: diguyViewCamera.h:90
static double t
4 Header files and forward declarations
Definition: simple_playback_ogl.cpp:53
float m_scale_x
Scale values for non world space particles.
Definition: diguyParticleSystem.h:186
float m_scale_y
Definition: diguyParticleSystem.h:186
diguyGraphicsShaderProgram * m_shader
Shader that should be used to draw particle system. If null then use the Fixed Function Pipeline...
Definition: diguyParticleSystem.h:168
float m_scale_z
Definition: diguyParticleSystem.h:186
int m_particle_offset_for_verts
Definition: diguyParticleSystem.h:205
diguyParticleSystem * m_system
Pointer to actual particle system interface class.
Definition: diguyParticleSystem.h:174
This class implements shader programs for use with DI-Guy character graphics.
Definition: diguyGraphicsShaderProgram.h:94
int m_blend
Should blending be enabled.
Definition: diguyParticleSystem.h:189