Main Page
Namespaces
Classes
Files
File List
File Members
ray.hpp
Go to the documentation of this file.
1
/*
2
** TP CPE Lyon
3
** Copyright (C) 2013 Damien Rohmer
4
**
5
** This program is free software: you can redistribute it and/or modify
6
** it under the terms of the GNU General Public License as published by
7
** the Free Software Foundation, either version 3 of the License, or
8
** (at your option) any later version.
9
**
10
** This program is distributed in the hope that it will be useful,
11
** but WITHOUT ANY WARRANTY; without even the implied warranty of
12
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
** GNU General Public License for more details.
14
**
15
** You should have received a copy of the GNU General Public License
16
** along with this program. If not, see <http://www.gnu.org/licenses/>.
17
*/
18
19
20
21
22
23
#ifndef RAY_HPP
24
#define RAY_HPP
25
26
#include <
vec3.hpp
>
27
28
namespace
cpe
29
{
30
31
class
camera;
32
34
class
ray
35
{
36
public
:
37
38
// ********************************************* //
39
// ********************************************* //
40
// CONSTRUCTOR
41
// ********************************************* //
42
// ********************************************* //
43
45
ray
(
const
vec3
&
x0
=
vec3
(),
const
vec3
&
u
=
vec3
());
46
47
48
// ********************************************* //
49
// ********************************************* //
50
// RAY EVALUATION
51
// ********************************************* //
52
// ********************************************* //
53
55
vec3
operator()
(
float
t)
const
;
56
57
// ********************************************* //
58
// ********************************************* //
59
// HELPER RAY CONSTRUCTION
60
// ********************************************* //
61
// ********************************************* //
62
63
65
void
offset
(
const
double
& epsilon=1e-3);
66
67
68
70
vec3
x0
;
72
vec3
u
;
73
};
74
76
std::ostream&
operator<<
(std::ostream& stream,
const
ray
& r);
77
82
vec3
reflected_direction
(
const
vec3
& u,
const
vec3
& n);
83
84
}
85
86
87
88
#endif
libraytracing
ray.hpp
Generated on Fri Mar 29 2013 22:45:31 by
1.8.3.1