rtv1/src/color.c

51 lines
1.5 KiB
C

/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* color.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbrochar <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/02/06 16:38:04 by gbrochar #+# #+# */
/* Updated: 2019/02/08 20:47:12 by gbrochar ### ########.fr */
/* */
/* ************************************************************************** */
#include "rtv1.h"
t_color color(int r, int g, int b)
{
t_color color;
color.r = r;
color.g = g;
color.b = b;
return (color);
}
t_color color_add(t_color c1, t_color c2)
{
c1.r = c1.r + c2.r;
c1.g = c1.g + c2.g;
c1.b = c1.b + c2.b;
return (c1);
}
t_color color_mul(t_color c, double scalar)
{
c.r = (int)((double)c.r * scalar);
c.g = (int)((double)c.g * scalar);
c.b = (int)((double)c.b * scalar);
return (c);
}
t_color color_cap(t_color c)
{
c.r = (c.r > 255 ? 255 : c.r);
c.r = (c.r < 0 ? 0 : c.r);
c.g = (c.g > 255 ? 255 : c.g);
c.g = (c.g < 0 ? 0 : c.g);
c.b = (c.b > 255 ? 255 : c.b);
c.b = (c.b < 0 ? 0 : c.b);
return (c);
}