Main Page
Namespaces
Classes
Files
File List
File Members
sphere.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
#ifndef SPHERE_HPP
23
#define SPHERE_HPP
24
25
#include <
object3d.hpp
>
26
#include <
vec3.hpp
>
27
28
namespace
cpe
29
{
30
31
class
ray;
32
34
class
sphere
:
public
object3d
35
{
36
public
:
37
38
// ********************************************* //
39
// ********************************************* //
40
// CONSTRUCTOR
41
// ********************************************* //
42
// ********************************************* //
43
45
sphere
(
const
vec3
&
center
=
vec3
(),
float
radius
=1.0);
46
48
virtual
~sphere
();
49
50
51
// ********************************************* //
52
// ********************************************* //
53
// Accessor
54
// ********************************************* //
55
// ********************************************* //
56
58
double
radius
()
const
;
59
61
const
vec3
&
center
()
const
;
62
63
// ********************************************* //
64
// ********************************************* //
65
// INTERSECTION
66
// ********************************************* //
67
// ********************************************* //
68
70
virtual
bool
intersect
(
const
ray
& ray_data,
intersection
& intersection_data)
const
;
71
72
private
:
73
74
// ********************************************* //
75
// ********************************************* //
76
// INTERNAL DATA
77
// ********************************************* //
78
// ********************************************* //
79
81
vec3
x0
;
83
float
r
;
84
};
85
86
87
}
88
89
#endif
libobject3d
sphere.hpp
Generated on Fri Mar 29 2013 22:45:31 by
1.8.3.1