Example #1
0
float __divsf3(float a, float b)
{
	float_t fa;
	float_t fb;
	float_t res;
	
	fa.val = a;
	fb.val = b;
	
	res.data = div_float(fa.data, fb.data);
	return res.val;
}
Example #2
0
File: sphere.c Project: jikiliou/rt
float	inter_sphere(t_obj *object, t_ray *ray, t_inter *inter)
{
	t_sphere	*sphere;
	t_vect		pos;
	float		tmp;

	sphere = (t_sphere*)(object->obj);

	tmp = calc_polynomial(sphere, ray);
	if (tmp != -1)
	{
		pos = add_vect(ray->o, mult_float(ray->dir, tmp));
		tmp = magnitude(sub_vect(pos, ray->o));
		if (inter->dist == -1 || tmp < inter->dist)
		{
			inter->pos = pos;
			inter->normal = div_float(sub_vect(inter->pos, sphere->c),
											sphere->r);
			inter->dist = tmp;
			inter->obj = object;
		}
	}
	return (tmp);
}