blob: 580f24976d195aae4225ca7175e16d678617a877 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
/******************************************************************/
/* 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);
}
|