rtv1/src/maths_plane.c

37 lines
1.2 KiB
C

/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* maths_plane.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbrochar <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/02/08 19:57:48 by gbrochar #+# #+# */
/* Updated: 2019/02/08 20:47:52 by gbrochar ### ########.fr */
/* */
/* ************************************************************************** */
#include "rtv1.h"
double intersect_plane(void *obj, t_ray r)
{
t_plane *p;
p = (t_plane *)obj;
if (dot_product(r.d, p->d) != 0)
{
return (-dot_product(vec_sub(r.o, p->o), p->d)
/ dot_product(r.d, p->d) - E);
}
return (FAILURE);
}
t_vec normal_plane(void *obj, t_ray r, double t)
{
t_plane *p;
(void)r;
(void)t;
p = (t_plane *)obj;
return (p->d);
}