37 lines
1.2 KiB
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);
|
|
}
|