Here is some test syntax highlighting for blogger:
// ----------------------------------------------------
// round the angle to nearest x degrees
// ----------------------------------------------------
Vector3 Vector3::roundAngle ( int nearest_angle )
{
// vector to return
Vector3 rounded;
// convert to radians
float nearest_radians = RADIANS ( nearest_angle );
// get the angle of this vector
float angle = ( float ) atan2 ( this->y, this->x );
// remainder between 2 angles
float remainder = std::fmod ( angle, nearest_radians );
// if there is a remainder, do the rounding
if ( remainder != 0 ) {
float new_angle = ( float ) round ( angle / nearest_radians ) * nearest_radians;
rounded.x = ( float ) cos ( new_angle );
rounded.y = ( float ) sin ( new_angle );
}
if ( fabs ( rounded.x ) < TOL ) rounded.x = 0.0f;
if ( fabs ( rounded.y ) < TOL ) rounded.y = 0.0f;
if ( fabs ( rounded.z ) < TOL ) rounded.z = 0.0f;
return rounded;
}
sweet.
No comments:
Post a Comment