Beispiel #1
0
void			loop_cones(t_env *env, t_cone *co, float *hit, float *t)
{
	(void)t;
	while (co)
	{
		*hit = 200000.0f;
		if (cone_intersect(&env->r, co, hit) == 1)
		{
			reset_colour(&env->c, co->m.diffuse.r, \
					co->m.diffuse.g, co->m.diffuse.b);
		}
		co = co->next;
	}
}
Beispiel #2
0
Datei: cone.c Projekt: Julow/rtv1
bool			cone_ray_intersect(t_obj const *obj, t_vertex const *ray,
					bool both, t_intersect *intersect)
{
	t_vec2			dist;
	bool			base[2];

	if (!cone_intersect(&dist, base, ray) || (dist.x < 0.f && dist.y < 0.f))
		return (false);
	if (both)
	{
		load_intersect(base[0], false, dist.x, ray, &intersect[0]);
		load_intersect(base[1], true, dist.y, ray, &intersect[1]);
	}
	else if (dist.x < 0.f)
		load_intersect(base[1], true, dist.y, ray, intersect);
	else
		load_intersect(base[0], false, dist.x, ray, intersect);
	return (true);
	(void)obj;
}