@ -105,27 +105,28 @@ cRGB Haunt::compute(uint8_t *step) {
// BlazingTrail
BlazingTrail : : BlazingTrail ( void ) {
}
uint8_t hue_start = 50.0 / 360 * 0xff ;
uint8_t hue_end = 0 ;
cRGB BlazingTrail : : compute ( uint8_t * step ) {
cRGB color ;
if ( * step > = 0xff - 30 ) {
color = hsvToRgb ( 0xff - * step , 255 , 255 ) ;
} else {
color = hsvToRgb ( 30 , 255 , 255 ) ;
// Get a float from 0 to 1 for our position in the animation
float pos = ( 0xff - * step ) / ( float ) 0xff ;
color . r = min ( * step * color . r / 255 , 255 ) ;
color . g = min ( * step * color . g / 255 , 255 ) ;
}
// Fade hue linearly from orange to red
uint8_t hue = hue_start + pos * ( hue_end - hue_start ) ;
if ( * step > = 0xff - 30 )
* step - = 1 ;
else if ( * step > = 0x40 )
* step - = 16 ;
else if ( * step > = 32 )
* step - = 32 ;
else
// Fade value from full following a -x^4+1 curve
uint8_t val = 0xff * ( 1 - pos * pos * pos * pos ) ;
color = hsvToRgb ( hue , 0xff , val ) ;
if ( * step < 4 ) {
* step = 0 ;
} else {
* step - = 4 ;
}
return color ;
}