/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* ray.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: gbrochar +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/02/08 13:32:52 by gbrochar #+# #+# */ /* Updated: 2019/02/22 17:29:07 by gbrochar ### ########.fr */ /* */ /* ************************************************************************** */ #include "rtv1.h" t_vec get_r_vec(t_vec i_ray, t_vec normal) { t_vec r_ray; r_ray = vec_sub(i_ray, vec_mul(normal, 2 * dot_product(i_ray, normal))); return (r_ray); } t_ray set_ray(t_env *e, int x, int y) { t_ray r; r.o = e->camera.o; r.d = vec_add(e->camera.ul, vec_sub( vec_mul(e->camera.rv, ((double)x * e->camera.width / WINX)), vec_mul(e->camera.uv, ((double)y * e->camera.height / WINY)))); r.d = vec_sub(r.d, r.o); normalize(&r.d); return (r); }