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";