回転の成分を正規化する

 以前書いた角度を正規化するRadianNormalize関数は問題があったので、今更書き直しました。関数の引数に回転値を与えると、0〜2*PIまでの値を返します。英語のコメントに関しては現在間違っているので修正します。(追記:正しい英文に直しました)

#define PI     (3.14159f)
#define PI_TWO (PI*2.0f)

// ラジアンを正規化する
float RadianNormalize(float rad)
{
	// the value check in the range of -pi*2 to +pi*2
	if (rad < 0.0f || rad >= PI_TWO)
	{
		// start normalize
		int div = static_cast<int>(rad / PI_TWO);
		rad -= (div*PI_TWO);	// -pi*2 to pi*2.

		// if the value range is negative, change to positive
		if (rad < 0.0f)
			rad = PI_TWO+(rad);	// add pi*2 to value
	}

	return rad;
}