/* hue2rgb.c
 * Converts a hue value to RGB values. 
 * Input: 0-255 hue
 * Output: 0-255 RGB{r,g,b} values.
 * Simply creates RGB triangle waves to cover 0-255 hue spectrum.
 * hue(0)=RGB{0,0,255}, hue(85)=RGB{0,255,0}, hue(170)=RGB{255,0,0}
 *
 * Written by Sean Montgomery 2008.02
*/
#include <stdlib.h>
#include "hue2rgb.h"
#include "clip.h"

RGB hue2rgb( unsigned char hue ) {
	RGB rgb;
	rgb.g = (unsigned char) (255 - ((clip(abs(85 - (int) hue),0,85) * 255) / 85));
	hue = hue - 85;
	rgb.r = (unsigned char) (255 - ((clip(abs(85 - (int) hue),0,85) * 255) / 85));
	hue = hue - 85;
	rgb.b = (unsigned char) (255 - ((clip(abs(85 - (int) hue),0,85) * 255) / 85));
	
	return rgb;
}


