-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathray.cpp
53 lines (40 loc) · 1.13 KB
/
ray.cpp
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
//**************************************************//
// //
// Ray.cpp - Member function(s) for ray class //
// //
//**************************************************//
#include "ray.h"
///////////////////////////////////////////////////////////////////////////////////
//
// Constructor
//
Ray::Ray()
{
delta_x = delta_y = delta_z = t = 0;
}
///////////////////////////////////////////////////////////////////////////////////
//
// Constructor 3 params
//
Ray::Ray(double xdiff, double ydiff, double zdiff)
{
delta_x = xdiff;
delta_y = ydiff;
delta_z = zdiff;
t = 0;
}
///////////////////////////////////////////////////////////////////////////////////
//
// Normalize this ray (vector of unit length)
//
void Ray::normalize()
{
// find length of vector
double vect_length = sqrt( pow(delta_x, 2) +
pow(delta_y, 2) +
pow(delta_z, 2) );
// divide each component by the length of this vector - normalizing
delta_x = delta_x / vect_length;
delta_y = delta_y / vect_length;
delta_z = delta_z / vect_length;
}