*** empty log message ***

This commit is contained in:
Mike Goslin 2001-01-18 00:45:22 +00:00
parent 1196b8fab0
commit 751d6c99f9
8 changed files with 66 additions and 67 deletions

View File

@ -20,7 +20,7 @@
// particles are randomly generated.
////////////////////////////////////////////////////////////////////
class EXPCL_PANDAPHYSICS BaseParticleEmitter : public ReferenceCount {
public:
PUBLISHED:
enum emissionType {
ET_EXPLICIT, // all particles are emitted in the same direction
ET_RADIATE, // all particles radiate away from a single point

View File

@ -35,7 +35,7 @@ protected:
BaseParticleFactory(void);
BaseParticleFactory(const BaseParticleFactory &copy);
public:
PUBLISHED:
virtual ~BaseParticleFactory(void);
INLINE void set_lifespan_base(float lb);

View File

@ -35,7 +35,7 @@ disable_alpha(void) {
// Access : public
////////////////////////////////////////////////////////////////////
INLINE void BaseParticleRenderer::
set_alpha_mode(ParticleRendererAlphaMode am) {
set_alpha_mode(BaseParticleRenderer::ParticleRendererAlphaMode am) {
update_alpha_mode(am);
init_geoms();
}
@ -44,7 +44,7 @@ set_alpha_mode(ParticleRendererAlphaMode am) {
// Function : get_alpha_mode
// Access : public
////////////////////////////////////////////////////////////////////
INLINE ParticleRendererAlphaMode BaseParticleRenderer::
INLINE BaseParticleRenderer::ParticleRendererAlphaMode BaseParticleRenderer::
get_alpha_mode(void) const {
return _alpha_mode;
}

View File

@ -19,20 +19,6 @@
#include <vector>
enum ParticleRendererAlphaMode {
PR_ALPHA_NONE,
PR_ALPHA_OUT,
PR_ALPHA_IN,
PR_ALPHA_USER,
PR_NOT_INITIALIZED_YET
};
enum ParticleRendererBlendMethod {
PP_NO_BLEND,
PP_BLEND_LINEAR,
PP_BLEND_CUBIC
};
////////////////////////////////////////////////////////////////////
// Class : BaseParticleRenderer
// Description : Pure virtual particle renderer base class
@ -65,6 +51,31 @@ private:
virtual void render(vector< PT(PhysicsObject) >& po_vector,
int ttl_particles) = 0;
PUBLISHED:
enum ParticleRendererAlphaMode {
PR_ALPHA_NONE,
PR_ALPHA_OUT,
PR_ALPHA_IN,
PR_ALPHA_USER,
PR_NOT_INITIALIZED_YET
};
enum ParticleRendererBlendMethod {
PP_NO_BLEND,
PP_BLEND_LINEAR,
PP_BLEND_CUBIC
};
virtual ~BaseParticleRenderer(void);
INLINE GeomNode *get_render_node(void) const;
INLINE void set_alpha_mode(ParticleRendererAlphaMode am);
INLINE ParticleRendererAlphaMode get_alpha_mode(void) const;
INLINE void set_user_alpha(float ua);
INLINE float get_user_alpha(void) const;
protected:
GeomNode *_interface_node;
@ -83,17 +94,6 @@ protected:
virtual void resize_pool(int new_size) = 0;
public:
virtual ~BaseParticleRenderer(void);
INLINE GeomNode *get_render_node(void) const;
INLINE void set_alpha_mode(ParticleRendererAlphaMode am);
INLINE ParticleRendererAlphaMode get_alpha_mode(void) const;
INLINE void set_user_alpha(float ua);
INLINE float get_user_alpha(void) const;
virtual BaseParticleRenderer *make_copy(void) = 0;
friend class ParticleSystem;

View File

@ -36,7 +36,7 @@ set_end_color(const Colorf& ec) {
// Access : Public
////////////////////////////////////////////////////////////////////
INLINE void PointParticleRenderer::
set_blend_type(PointParticleBlendType bt) {
set_blend_type(PointParticleRenderer::PointParticleBlendType bt) {
_blend_type = bt;
}
@ -45,7 +45,7 @@ set_blend_type(PointParticleBlendType bt) {
// Access : Public
////////////////////////////////////////////////////////////////////
INLINE void PointParticleRenderer::
set_blend_method(ParticleRendererBlendMethod bm) {
set_blend_method(BaseParticleRenderer::ParticleRendererBlendMethod bm) {
_blend_method = bm;
}
@ -80,7 +80,7 @@ get_end_color(void) const {
// Function : get_blend_type
// Access : Public
////////////////////////////////////////////////////////////////////
INLINE PointParticleBlendType PointParticleRenderer::
INLINE PointParticleRenderer::PointParticleBlendType PointParticleRenderer::
get_blend_type(void) const {
return _blend_type;
}
@ -89,7 +89,7 @@ get_blend_type(void) const {
// Function : get_blend_method
// Access : Public
////////////////////////////////////////////////////////////////////
INLINE ParticleRendererBlendMethod PointParticleRenderer::
INLINE BaseParticleRenderer::ParticleRendererBlendMethod PointParticleRenderer::
get_blend_method(void) const {
return _blend_method;
}

View File

@ -15,12 +15,6 @@
#include <geom.h>
#include <geomPoint.h>
enum PointParticleBlendType {
PP_ONE_COLOR,
PP_BLEND_LIFE,
PP_BLEND_VEL
};
////////////////////////////////////////////////////////////////////
// Class : PointParticleRenderer
// Description : Simple point/point particle renderer. Does NOT
@ -29,33 +23,13 @@ enum PointParticleBlendType {
////////////////////////////////////////////////////////////////////
class EXPCL_PANDAPHYSICS PointParticleRenderer : public BaseParticleRenderer {
private:
Colorf _start_color, _end_color;
float _point_size;
PT(GeomPoint) _point_primitive;
PTA_Vertexf _vertex_array;
PTA_Colorf _color_array;
int _max_pool_size;
PointParticleBlendType _blend_type;
ParticleRendererBlendMethod _blend_method;
LPoint3f _aabb_min, _aabb_max;
Colorf create_color(const BaseParticle *p);
virtual void birth_particle(int index);
virtual void kill_particle(int index);
virtual void init_geoms(void);
virtual void render(vector< PT(PhysicsObject) >& po_vector,
int ttl_particles);
virtual void resize_pool(int new_size);
PUBLISHED:
enum PointParticleBlendType {
PP_ONE_COLOR,
PP_BLEND_LIFE,
PP_BLEND_VEL
};
PointParticleRenderer(const PointParticleRenderer& copy);
PointParticleRenderer(ParticleRendererAlphaMode ad = PR_ALPHA_NONE,
float point_size = 1.0f,
@ -79,6 +53,31 @@ PUBLISHED:
INLINE const Colorf& get_end_color(void) const;
INLINE PointParticleBlendType get_blend_type(void) const;
INLINE ParticleRendererBlendMethod get_blend_method(void) const;
private:
Colorf _start_color, _end_color;
float _point_size;
PT(GeomPoint) _point_primitive;
PTA_Vertexf _vertex_array;
PTA_Colorf _color_array;
int _max_pool_size;
PointParticleBlendType _blend_type;
ParticleRendererBlendMethod _blend_method;
LPoint3f _aabb_min, _aabb_max;
Colorf create_color(const BaseParticle *p);
virtual void birth_particle(int index);
virtual void kill_particle(int index);
virtual void init_geoms(void);
virtual void render(vector< PT(PhysicsObject) >& po_vector,
int ttl_particles);
virtual void resize_pool(int new_size);
};
#include "pointParticleRenderer.I"

View File

@ -232,7 +232,7 @@ get_nonanimated_theta(void) const {
// Function : get_alpha_blend_method
// Access : public
////////////////////////////////////////////////////////////////////
INLINE ParticleRendererBlendMethod SpriteParticleRenderer::
INLINE BaseParticleRenderer::ParticleRendererBlendMethod SpriteParticleRenderer::
get_alpha_blend_method(void) const {
return _blend_method;
}

View File

@ -110,7 +110,7 @@
//#define PARTICLE_RENDERER_ALPHA_MODE PR_ALPHA_NONE
//#define PARTICLE_RENDERER_ALPHA_MODE PR_ALPHA_IN
//#define PARTICLE_RENDERER_ALPHA_MODE PR_ALPHA_OUT
#define PARTICLE_RENDERER_ALPHA_MODE PR_ALPHA_USER
#define PARTICLE_RENDERER_ALPHA_MODE BaseParticleRenderer::PR_ALPHA_USER
#define PARTICLE_RENDERER_USER_ALPHA 1.0
#ifdef GEOM_PARTICLE_RENDERER