gKit2 light

- Main Page
- Related Pages
- Modules
- Classes
- Files

- File List
- File Members

ray.h
1
2 #ifndef RAY_H
3 #define RAY_H
4
5 #include <cfloat>
6
7 #include "vec.h"
8 #include "color.h"
9
10
12 struct Ray
13 {
14 Ray( ) : origin(), direction() {}
15 Ray( const Point& o, const Point& e ) : origin(o), direction( normalize(Vector(o, e)) ) {}
16
17 Point origin;
18 Vector direction;
19 };
20
22 Ray make_ray( const Point& o, const Point& e );
23
25 Ray reflect( const Ray& ray, const Point& p, const Vector& normal );
26
27 float fresnel( const Ray& ray, const Point& p, const Vector& n, const float ir );
28
29 bool fresnel_refract( const Ray& ray, const Point& p, const Vector& n, const float ir );
30 Ray refract( const Ray& ray, const Point& p, const Vector& n, const float ir );
31
33 struct Hit
34 {
35 Hit( ) : p(), n(), color(), t(FLT_MAX), hit(false) {}
36
37 Point p;
38 Vector n;
39 Color color;
40 float t;
41 bool hit;
42 };
43
44 #endif
Hit::p
Point p
position
Definition: ray.h:37
normalize
Vector normalize(const Vector &v)
renvoie un vecteur unitaire / longueur == 1.
Definition: vec.cpp:79
Color
representation d'une couleur (rgba) transparente ou opaque.
Definition: color.h:13
Hit::color
Color color
couleur de la surface au point d'intersection
Definition: ray.h:39
Vector
representation d'un vecteur 3d.
Definition: vec.h:42
Hit::t
float t
abscisse : p= o + t.d
Definition: ray.h:40
color.h
Hit
representation d'un point d'intersection.
Definition: ray.h:33
Hit::n
Vector n
normale de la surface au point d'intersection
Definition: ray.h:38
Ray
representation d'un rayon.
Definition: ray.h:12
Point
representation d'un point 3d.
Definition: vec.h:19
vec.h