Axiom.Demos.DynamicTextures.HSVtoRGB C# (CSharp) Method

HSVtoRGB() private method

private HSVtoRGB ( float h, float s, float v ) : ColorEx
h float
s float
v float
return Axiom.Core.ColorEx
		ColorEx HSVtoRGB( float h, float s, float v )
		{
			int i;
			ColorEx rv = new ColorEx( 0.0f, 0.0f, 0.0f, 1.0f );
			float f, p, q, t;
			h = (float)System.Math.IEEERemainder( h, 360.0f );
			h /= 60.0f;			// sector 0 to 5
			i = (int)System.Math.Floor( h );
			f = h - i;			// factorial part of h
			p = v * ( 1.0f - s );
			q = v * ( 1.0f - s * f );
			t = v * ( 1.0f - s * ( 1.0f - f ) );

			switch ( i )
			{
				case 0:
					rv.r = v;
					rv.g = t;
					rv.b = p;
					break;
				case 1:
					rv.r = q;
					rv.g = v;
					rv.b = p;
					break;
				case 2:
					rv.r = p;
					rv.g = v;
					rv.b = t;
					break;
				case 3:
					rv.r = p;
					rv.g = q;
					rv.b = v;
					break;
				case 4:
					rv.r = t;
					rv.g = p;
					rv.b = v;
					break;
				default:
					rv.r = v;
					rv.g = p;
					rv.b = q;
					break;
			}
			return rv;
		}