31 _start_theta = copy._start_theta;
32 _end_theta = copy._end_theta;
54 assign_initial_position(LPoint3& pos) {
56 if ( _start_theta < _end_theta ) {
57 theta = LERP(NORMALIZED_RAND(), _start_theta, _end_theta);
59 theta = LERP(NORMALIZED_RAND(), _start_theta, _end_theta + 2.0f * MathNumbers::pi_f);
62 theta += (MathNumbers::pi_f / 2.0);
63 this->_cos_theta = cosf(theta);
64 this->_sin_theta = sinf(theta);
66 PN_stdfloat new_radius_spread = SPREAD(_radius_spread);
67 PN_stdfloat new_x = _cos_theta * (_radius + new_radius_spread);
68 PN_stdfloat new_y = _sin_theta * (_radius + new_radius_spread);
70 pos.set(new_x, new_y, 0.0f);
89 out.width(
indent); out<<
""; out<<
"ArcEmitter:\n";
90 out.width(
indent+2); out<<
""; out<<
"_start_angle "<<rad_2_deg(_start_theta)<<
"\n";
91 out.width(
indent+2); out<<
""; out<<
"_end_angle "<<rad_2_deg(_end_theta)<<
"\n";
Describes a planar ring region in which particles are generated.
virtual BaseParticleEmitter * make_copy()
copier
virtual void write(std::ostream &out, int indent=0) const
Write a string representation of this instance to <out>.
Describes a planar ring region in which particles are generated.
std::ostream & indent(std::ostream &out, int indent_level)
A handy function for doing text formatting.
virtual void output(std::ostream &out) const
Write a starc representation of this instance to <out>.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
virtual ~ArcEmitter()
destructor
virtual void write(std::ostream &out, int indent=0) const
Write a starc representation of this instance to <out>.