00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef ZSPINPARTICLEFACTORY_H
00020 #define ZSPINPARTICLEFACTORY_H
00021
00022 #include "baseParticleFactory.h"
00023
00024
00025
00026
00027
00028 class EXPCL_PANDAPHYSICS ZSpinParticleFactory :
00029 public BaseParticleFactory {
00030 private:
00031 virtual void populate_child_particle(BaseParticle *bp) const;
00032 virtual BaseParticle *alloc_particle(void) const;
00033
00034 float _initial_angle,_initial_angle_spread;
00035 float _final_angle,_final_angle_spread;
00036 float _angular_velocity,_angular_velocity_spread;
00037 bool _bUseAngularVelocity;
00038
00039
00040 PUBLISHED:
00041 ZSpinParticleFactory(void);
00042 ZSpinParticleFactory(const ZSpinParticleFactory ©);
00043 virtual ~ZSpinParticleFactory(void);
00044
00045 INLINE void set_initial_angle(float angle);
00046 INLINE void set_final_angle(float angle);
00047 INLINE void set_initial_angle_spread(float spread);
00048 INLINE void set_final_angle_spread(float spread);
00049
00050 INLINE float get_initial_angle(void) const;
00051 INLINE float get_final_angle(void) const;
00052 INLINE float get_initial_angle_spread(void) const;
00053 INLINE float get_final_angle_spread(void) const;
00054
00055 INLINE void set_angular_velocity(float v);
00056 INLINE float get_angular_velocity(void) const;
00057
00058 INLINE void set_angular_velocity_spread(float spread);
00059 INLINE float get_angular_velocity_spread(void) const;
00060
00061 INLINE void enable_angular_velocity(bool bEnabled);
00062 INLINE bool get_angular_velocity_enabled(void) const;
00063 };
00064
00065 #include "zSpinParticleFactory.I"
00066
00067 #endif // ZSPINPARTICLEFACTORY_H