public static void NextColour(ref float R, ref float G, ref float B, ColourRange range)
 {
     R = NextSingle(range.Min.H, range.Max.H);
     G = NextSingle(range.Min.S, range.Max.S);
     B = NextSingle(range.Min.L, range.Max.L);
 }
 public static unsafe void NextColour(Colour* colour, ColourRange range)
 {
     *colour = new Colour(NextSingle(range.Min.H, range.Max.H),
                          NextSingle(range.Min.S, range.Max.S),
                          NextSingle(range.Min.L, range.Max.L));
 }