Пример #1
0
static int		ray_solution_sphere(t_ray *ray, t_obj *obj)
{
	int sign;

	ray->obj = obj;
	ray->intersection = M_POINT(
		M_IJ(&(ray->start), 0, 0) + ray->dist * M_IJ(&(ray->dir), 0, 0),
		M_IJ(&(ray->start), 1, 0) + ray->dist * M_IJ(&(ray->dir), 1, 0),
		M_IJ(&(ray->start), 2, 0) + ray->dist * M_IJ(&(ray->dir), 2, 0));
	if (mat_norm(&(ray->start)) > 1)
		sign = 1;
	else
		sign = -1;
	ray->normal = M_DIR(
		sign * M_IJ(&(ray->intersection), 0, 0),
		sign * M_IJ(&(ray->intersection), 1, 0),
		sign * M_IJ(&(ray->intersection), 2, 0));
	return (0);
}
Пример #2
0
 double norm_one(_HMatrix M) {return mat_norm(M, 1);}
Пример #3
0
 double norm_inf(_HMatrix M) {return mat_norm(M, 0);}
Пример #4
0
float norm_one(HMatrix M) {return mat_norm(M, 1);}
Пример #5
0
float norm_inf(HMatrix M) {return mat_norm(M, 0);}