summaryrefslogblamecommitdiff
path: root/hw6/src/ray_util.cpp
blob: 580f24976d195aae4225ca7175e16d678617a877 (plain) (tree)


























                                                                                                
/******************************************************************/
/* 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);
}