00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef RINGEMITTER_H
00016 #define RINGEMITTER_H
00017
00018 #include "baseParticleEmitter.h"
00019
00020
00021
00022
00023
00024
00025 class EXPCL_PANDAPHYSICS RingEmitter : public BaseParticleEmitter {
00026 PUBLISHED:
00027 RingEmitter();
00028 RingEmitter(const RingEmitter ©);
00029 virtual ~RingEmitter();
00030
00031 virtual BaseParticleEmitter *make_copy();
00032
00033 INLINE void set_radius(PN_stdfloat r);
00034 INLINE void set_angle(PN_stdfloat angle);
00035 INLINE void set_radius_spread(PN_stdfloat spread);
00036 INLINE void set_uniform_emission(int uniform_emission);
00037
00038 INLINE PN_stdfloat get_radius() const;
00039 INLINE PN_stdfloat get_angle() const;
00040 INLINE PN_stdfloat get_radius_spread() const;
00041 INLINE int get_uniform_emission() const;
00042
00043 virtual void output(ostream &out) const;
00044 virtual void write(ostream &out, int indent=0) const;
00045
00046 protected:
00047 PN_stdfloat _radius;
00048 PN_stdfloat _radius_spread;
00049
00050
00051 PN_stdfloat _aoe;
00052
00053
00054 int _uniform_emission;
00055 PN_stdfloat _theta;
00056
00057
00058
00059 PN_stdfloat _sin_theta;
00060 PN_stdfloat _cos_theta;
00061
00062
00063 private:
00064 virtual void assign_initial_position(LPoint3& pos);
00065 virtual void assign_initial_velocity(LVector3& vel);
00066 };
00067
00068 #include "ringEmitter.I"
00069
00070 #endif // RINGEMITTER_H