/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* add_cylinder.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: gbrochar +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/02/07 19:58:08 by gbrochar #+# #+# */ /* Updated: 2019/02/22 10:08:54 by gbrochar ### ########.fr */ /* */ /* ************************************************************************** */ #include "rtv1.h" void init_cylinder(t_cylinder *cylinder, t_color *c) { cylinder->o = vec(0, 0, 0); cylinder->d = vec(0, 1, 0); cylinder->r = 1; *c = color(255, 255, 255); } int add_cylinder(char **data, t_env *e) { int i; t_cylinder *cylinder; t_color c; i = 0; ft_putendl("Adding cylinder"); if (!(cylinder = (t_cylinder *)ft_memalloc(sizeof(t_cylinder)))) return (FAILURE); init_cylinder(cylinder, &c); while (data[i] && i < 11) ++i; if (i > 3) cylinder->o = vec(ft_atof(data[1]), ft_atof(data[2]), ft_atof(data[3])); if (i > 6) { cylinder->d = vec(ft_atof(data[4]), ft_atof(data[5]), ft_atof(data[6])); if (FAILURE == check_direction(cylinder->d)) return (FAILURE); normalize(&cylinder->d); } if (i > 7) cylinder->r = ft_atof(data[7]); if (i > 10) c = color(ft_atoi(data[8]), ft_atoi(data[9]), ft_atoi(data[10])); return (add_obj_node(e, (void *)cylinder, CYLINDER, c)); }