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); }
double norm_one(_HMatrix M) {return mat_norm(M, 1);}
double norm_inf(_HMatrix M) {return mat_norm(M, 0);}
float norm_one(HMatrix M) {return mat_norm(M, 1);}
float norm_inf(HMatrix M) {return mat_norm(M, 0);}