/******************************************************************/ /* This file is part of the homework assignments for CSCI-427/527 */ /* at The College of William & Mary and authored by Pieter Peers. */ /* No part of this file, whether altered or in original form, can */ /* be distributed or used outside the context of CSCI-427/527 */ /* without consent of either the College of William & Mary or */ /* Pieter Peers. */ /******************************************************************/ #include "constants.h" #include "ray_util.h" ray createRay(const intersectionPoint& ip, const vec3d& dir) { return ray(ip.position() + EPSILON * dir, dir); } ray reflectRay(const intersectionPoint& ip) { // compute reflected direction // Note: ip.direction points toward ip point! vec3d reflectedDir = ip.direction() - 2.0f * (ip.normal().dot(ip.direction())) * ip.normal(); // create ray return createRay(ip, reflectedDir); }