00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #include "zSpinParticleFactory.h"
00016 #include "zSpinParticle.h"
00017
00018
00019
00020
00021
00022
00023 ZSpinParticleFactory::
00024 ZSpinParticleFactory() :
00025 BaseParticleFactory() {
00026 _initial_angle = 0.0f;
00027 _final_angle = 0.0f;
00028 _initial_angle_spread = 0.0f;
00029 _final_angle_spread = 0.0f;
00030 _angular_velocity = 0.0f;
00031 _angular_velocity_spread = 0.0f;
00032 _bUseAngularVelocity = false;
00033 }
00034
00035
00036
00037
00038
00039
00040 ZSpinParticleFactory::
00041 ZSpinParticleFactory(const ZSpinParticleFactory ©) :
00042 BaseParticleFactory(copy) {
00043 _initial_angle = copy._initial_angle;
00044 _final_angle = copy._final_angle;
00045 _initial_angle_spread = copy._initial_angle_spread;
00046 _final_angle_spread = copy._final_angle_spread;
00047 _angular_velocity = copy._angular_velocity;
00048 _angular_velocity_spread = copy._angular_velocity_spread;
00049 _bUseAngularVelocity = copy._bUseAngularVelocity;
00050 }
00051
00052
00053
00054
00055
00056
00057 ZSpinParticleFactory::
00058 ~ZSpinParticleFactory() {
00059 }
00060
00061
00062
00063
00064
00065
00066 BaseParticle *ZSpinParticleFactory::
00067 alloc_particle() const {
00068 return new ZSpinParticle;
00069 }
00070
00071
00072
00073
00074
00075
00076 void ZSpinParticleFactory::
00077 populate_child_particle(BaseParticle *bp) const {
00078 ZSpinParticle *zsp = (ZSpinParticle *) bp;
00079
00080 zsp->set_initial_angle(_initial_angle + SPREAD(_initial_angle_spread));
00081 zsp->set_final_angle(_final_angle + SPREAD(_final_angle_spread));
00082 zsp->set_angular_velocity(_angular_velocity + SPREAD(_angular_velocity_spread));
00083 zsp->enable_angular_velocity(_bUseAngularVelocity);
00084 }
00085
00086
00087
00088
00089
00090
00091
00092 void ZSpinParticleFactory::
00093 output(ostream &out) const {
00094 #ifndef NDEBUG //[
00095 out<<"ZSpinParticleFactory";
00096 #endif //] NDEBUG
00097 }
00098
00099
00100
00101
00102
00103
00104
00105 void ZSpinParticleFactory::
00106 write(ostream &out, int indent) const {
00107 #ifndef NDEBUG //[
00108 out.width(indent); out<<""; out<<"ZSpinParticleFactory:\n";
00109 out.width(indent+2); out<<""; out<<"_initial_angle "<<_initial_angle<<"\n";
00110 out.width(indent+2); out<<""; out<<"_initial_angle_spread "<<_initial_angle_spread<<"\n";
00111 out.width(indent+2); out<<""; out<<"_final_angle "<<_final_angle<<"\n";
00112 out.width(indent+2); out<<""; out<<"_final_angle_spread "<<_final_angle_spread<<"\n";
00113 out.width(indent+2); out<<""; out<<"_angular_velocity "<<_angular_velocity<<"\n";
00114 out.width(indent+2); out<<""; out<<"_angular_velocity_spread "<<_angular_velocity_spread<<"\n";
00115 out.width(indent+2); out<<""; out<<"_bUseAngularVelocity "<<_bUseAngularVelocity<<"\n";
00116 BaseParticleFactory::write(out, indent+2);
00117 #endif //] NDEBUG
00118 }