Example #1
0
int			ambient(t_env *e, char *str)
{
	char	**tmp;

	tmp = ft_strsplit(str, BREAK);
	if (tmp[1] == NULL || check_arg(tmp[1], 1) == -1)
		return (free_ret(-1, tmp));
	e->ambient = ft_atod(tmp[1]);
	return (free_ret(0, tmp));
}
Example #2
0
int			nb_light(t_env *e, char *str)
{
	char	**tmp;

	tmp = ft_strsplit(str, BREAK);
	if (tmp[1] == NULL || check_arg(tmp[1], 0) == -1)
		return (free_ret(-1, tmp));
	e->nb_light_malloc = ft_atoi(tmp[1]);
	e->lights = (t_light *)malloc(sizeof(t_light) * e->nb_light_malloc);
	return (free_ret(0, tmp));
}
int				ft_printf_x(va_list ap, t_flags f)
{
	t_len				lenf;
	unsigned long long	nb;
	char				*print;

	lenf.len = 0;
	lenf.tmp_len = 0;
	nb = unsigned_check(ap, f);
	print = ft_itoa_base(nb, 16);
	if (f.hashtag == 1)
		lenf.tmp_len += 2;
	if ((int)ft_strlen(print) < f.precision)
		lenf.tmp_len += f.precision;
	else
		lenf.tmp_len += ft_strlen(print);
	if (lenf.tmp_len >= (int)f.len_field)
		lenf.len += print_number(print, f, nb, f.precision);
	else if (f.minus == 1)
		lenf.len = minus(f, lenf.len, nb, print);
	else
	{
		while (lenf.len < (int)f.len_field - lenf.tmp_len && f.zero != 1)
			lenf.len += ft_putchar(' ');
		lenf.len += print_number(print, f, nb, (int)f.len_field - lenf.tmp_len);
	}
	return (free_ret(print, lenf.len));
}
Example #4
0
int			pov(t_env *e, char *str)
{
	char	**tmp;
	char	**tmp1;

	tmp1 = ft_strsplit(str, BREAK);
	if (tmp1[1] == NULL)
		return (free_ret(-1, tmp1));
	tmp = ft_strsplit(tmp1[1], BREAK2);
	free_ret(0, tmp1);
	if (check_arg(tmp[0], 0) == -1)
		return (free_ret(-1, tmp));
	if (check_arg(tmp[1], 0) == -1)
		return (free_ret(-1, tmp));
	if (check_arg(tmp[2], 0) == -1)
		return (free_ret(-1, tmp));
	e->cam.pos = init_vec(ft_atod(tmp[0]), ft_atod(tmp[1]),
			ft_atod(tmp[2]));
	return (free_ret(0, tmp));
}
Example #5
0
int			checkline_inf(char *str)
{
	char	**tmp;
	char	*line;

	tmp = NULL;
	if (str[0] == START_OBJ || str[0] == COMMENT)
		return (0);
	tmp = ft_strsplit(str, BREAK);
	line = tmp[0];
	tmp[0] = ft_strsub(tmp[0], cut_space(tmp[0]), ft_strlen(tmp[0]));
	free(line);
	if (!ft_strcmp(tmp[0], "numbers of light"))
		return (free_ret(1, tmp));
	if (!ft_strcmp(tmp[0], "numbers of object"))
		return (free_ret(2, tmp));
	if (!ft_strcmp(tmp[0], "point of view"))
		return (free_ret(3, tmp));
	if (!ft_strcmp(tmp[0], "look at"))
		return (free_ret(4, tmp));
	if (!ft_strcmp(tmp[0], "color ambient"))
		return (free_ret(5, tmp));
	return (free_ret(-1, tmp));
}