representation d'un triangle pour l'intersecteur rayon / triangle. More...
#include <RTTriangle.h>
Public Member Functions | |
RTTriangle () | |
constructeur par defaut. | |
RTTriangle (const Point &_a, const Point &_b, const Point &_c) | |
construit un triangle connaissant ses 3 sommets. | |
RTTriangle (const Triangle &triangle) | |
construit un triangle a partir d'un triangle 'geometrique'. | |
~RTTriangle () | |
destructeur. | |
float | getArea () const |
BBox | getBBox () const |
void | getTriangleNormal (Normal &n) const |
calcule la normale geometrique du triangle. | |
Normal | getTriangleNormal () const |
bool | Intersect (const Ray &ray, const float htmax, float &rt, float &ru, float &rv) const |
intersection avec un rayon. | |
Public Attributes | |
Point | a |
Vector | ab |
Vector | ac |
representation d'un triangle pour l'intersecteur rayon / triangle.
bool gk::RTTriangle::Intersect | ( | const Ray & | ray, | |
const float | htmax, | |||
float & | rt, | |||
float & | ru, | |||
float & | rv | |||
) | const [inline] |
intersection avec un rayon.
renvoie faux s'il n'y a pas d'intersection, une intersection peut exister mais peut ne pas se trouver dans [tmin tmax] du rayon. renvoie vrai + les coordonnees barycentriques du point d'intersection + sa position le long du rayon. convention barycentrique : t(u, v)= (1 - u - v) * a + u * b + v * c
"Fast, Minimum Storage Ray/Triangle Intersection" cf http://www.acm.org/jgt/papers/MollerTrumbore97/
References gk::Cross(), gk::Ray::d, gk::Dot(), and gk::Ray::o.