Пример #1
0
Файл: pyl.c Проект: gabfou/RT
t_item		*new_cyl(t_env *env)
{
	t_item	*item;

	item = new_t_item(env);
	item->cyl = t_cyl_creator(new_t_vec(0, 0, 0), new_t_vec(1, 0, 0), 3);
	item->next = NULL;
	itemadator(env, item);
	return (item);
}
Пример #2
0
t_triangle		*new_t_triangle(void)
{
	t_triangle	*triangle;

	triangle = malloc(sizeof(t_triangle));
	triangle->p1 = new_t_vec(1, -1, 0);
	triangle->p2 = new_t_vec(1, 0, 1);
	triangle->p3 = new_t_vec(1, 1, 0);
	return (triangle);
}
Пример #3
0
t_carre		*divisecarrerisatorauxi(t_carre *tmp, t_carre *c2)
{
	FLOAT_SIZE	size;

	size = c2->size / 2.0;
	tmp->next = new_t_carrespe(size,
		new_t_vec(c2->pos.x + size, c2->pos.y, c2->pos.z));
	tmp = tmp->next;
	tmp->next = new_t_carrespe(size,
		new_t_vec(c2->pos.x, c2->pos.y + size, c2->pos.z));
	tmp = tmp->next;
	tmp->next = new_t_carrespe(size,
		new_t_vec(c2->pos.x + size, c2->pos.y + size, c2->pos.z));
	tmp = tmp->next;
	tmp->next = new_t_carrespe(size,
		new_t_vec(c2->pos.x, c2->pos.y, c2->pos.z + size));
	tmp = tmp->next;
	tmp->next = new_t_carrespe(size,
		new_t_vec(c2->pos.x + size, c2->pos.y, c2->pos.z + size));
	tmp = tmp->next;
	tmp->next = new_t_carrespe(size,
		new_t_vec(c2->pos.x, c2->pos.y + size, c2->pos.z + size));
	tmp = tmp->next;
	tmp->next = new_t_carrespe(size,
		new_t_vec(c2->pos.x + size, c2->pos.y + size, c2->pos.z + size));
	return (tmp->next);
}
Пример #4
0
Файл: sphere.c Проект: gabfou/RT
t_sphere	*new_t_sphere(FLOAT_SIZE x, FLOAT_SIZE y,
	FLOAT_SIZE z, FLOAT_SIZE r)
{
	t_sphere	*sphere;

	sphere = malloc(sizeof(t_sphere));
	sphere->c = new_t_vec(x, y, z);
	sphere->ray = r;
	return (sphere);
}
Пример #5
0
void		carresisator(t_env *env)
{
	t_carre	*c;
	int		i;
	int		test2;
	int		test3;

	i = -1;
	test3 = env->nb_obj * 1.5 + 5;
	test2 = env->nb_obj / 10 + 30;
	env->carre = new_t_carrespe(1000000, new_t_vec(-500000, -500000, -500000));
	c = env->carre;
	while (c && i < NB_CARRE - 17)
	{
		if ((impactcarre(c, env, 0)) > test2 && c->size > 10)
		{
			i += 7;
			c = divisecarrerisator(c, env);
		}
		else
			c = c->next;
	}
	carresisatorauxi(env);
}
Пример #6
0
t_carre		*divisecarrerisator(t_carre *c2, t_env *env)
{
	t_carre	*c;
	t_carre	*tmp;

	tmp = env->carre;
	c = new_t_carrespe(c2->size / 2.0,
		new_t_vec(c2->pos.x, c2->pos.y, c2->pos.z));
	if (env->carre == c2)
		env->carre = c;
	else
	{
		while (tmp && tmp->next != c2)
			tmp = tmp->next;
		tmp->next = c;
	}
	tmp = c;
	if (tmp == NULL)
		ft_putendl("dafuq3");
	tmp = divisecarrerisatorauxi(tmp, c2);
	tmp->next = c2->next;
	free(c2);
	return (c);
}
Пример #7
0
Файл: calc.c Проект: gabfou/RT
inline t_vec		add_vec(const t_vec v1, const t_vec v2)
{
	return (new_t_vec(v1.x + v2.x, v1.y + v2.y, v1.z + v2.z));
}
Пример #8
0
Файл: calc.c Проект: gabfou/RT
inline t_vec		sub_vec(const t_vec v1, const t_vec v2)
{
	return (new_t_vec(v1.x - v2.x, v1.y - v2.y, v1.z - v2.z));
}
Пример #9
0
Файл: calc.c Проект: gabfou/RT
inline t_vec		prod_vector(const t_vec v1, const t_vec v2)
{
	return (new_t_vec(v1.y * v2.z - v1.z * v2.y,
		v1.z * v2.x - v1.x * v2.z,
		v1.x * v2.y - v1.y * v2.x));
}
Пример #10
0
Файл: calc.c Проект: gabfou/RT
inline t_vec		vec_mult(const t_vec v1, const FLOAT_SIZE x)
{
	return (new_t_vec(v1.x * x, v1.y * x, v1.z * x));
}
Пример #11
0
t_vec		*sub_vec(t_vec *v1, t_vec *v2)
{
	return (new_t_vec(v1->x - v2->x , v1->y - v2->y, v1->z - v2->z));
}
Пример #12
0
t_vec		*prod_vector(t_vec *v1, t_vec *v2)
{
	return (new_t_vec(v1->y * v2->z - v1->z * v2->y, v1->z * v2->x - v1->x * v2->z,  v1->x * v2->y - v1->y * v2->x));
}
Пример #13
0
t_vec		*vec_mult(t_vec *v1, double x)
{
	return (new_t_vec(v1->x * x , v1->y * x, v1->z * x));
}