#include <esg/Definitions.h>
#include <esg/SceneGraphObject.h>
#include <esg/List.h>
#include <esg/geometry/Geometry.h>
Go to the source code of this file.
Namespaces | |
namespace | esg |
Classes | |
class | FDH |
struct | FDH::FDHCache |
Defines | |
#define | FDH_CLIP_LINE_INIT(o, d, i1, i2) |
#define | FDH_CLIP_LINE_CONT(o, d, i1, i2) |
#define | FDH_CLIP_LINE_INDEX_INIT(o, d, i1, i2) |
#define | FDH_CLIP_LINE_INDEX_CONT(o, d, i1, i2) |
|
Value: { \ if (d != 0.0) { \ if (d > 0.0) { \ t1 = (_values[i2] + o) / -d; \ if (t1 > maxDist) return; \ t2 = (_values[i1] - o) / d; \ } else { \ t1 = (_values[i1] - o) / d; \ if (t1 > maxDist) return; \ t2 = (_values[i2] + o) / -d; \ } \ if (t2 < t_out) { /* optimized order of tests taken from POV-ray */ \ if (t2 < Geometry::EPS) return; \ if (t1 > t_in) { if (t1 > t2) return; t_in = t1; } \ else if (t_in > t2) return; \ t_out = t2; \ } else if (t1 > t_in) { if (t1 > t_out) return; t_in = t1; } \ } else \ if ((o < -_values[i2]) || (o > _values[i1])) return; \ } Input: o = clipping plane normal * ray origin d = clipping plane normal * ray direction i1 = index of upper bound clipping plane i2 = index of lower bound clipping plane Global variable: Geometry::EPS = zero variation maxDist = longer rays then maxDist are ignored t_in, t_out = poutput = ordered distance of first and second int. _values[] = FDH values (upper bound, -lower bound) t1, t2 = temporary distances Definition at line 266 of file FDH.h. Referenced by FDH::rayIntersection(). |
|
Value: { \ register int a1, a2; \ if (d != 0.0) { \ if (d > 0.0) { \ t1 = (_values[i2] + o) / -d; \ if (t1 > maxDist) return; \ t2 = (_values[i1] - o) / d; \ a1 = i2; a2 = i1; \ } else { \ t1 = (_values[i1] - o) / d; \ if (t1 > maxDist) return; \ t2 = (_values[i2] + o) / -d; \ a1 = i1; a2 = i2; \ } \ if (t2 < t_out) { /* optimized order of tests taken from POV-ray */ \ if (t2 < Geometry::EPS) return; \ if (t1 > t_in) { if (t1 > t2) return; t_in = t1; } \ else if (t_in > t2) return; \ t_out = t2; plane2 = a2; \ } else \ if (t1 > t_in) { if (t1 > t_out) return; t_in = t1; plane1 = a1; }\ } else \ if ((o < -_values[i2]) || (o > _values[i1])) return; \ } Input: o = clipping plane normal * ray origin d = clipping plane normal * ray direction i1 = index of upper bound clipping plane i2 = index of lower bound clipping plane Global variable: Geometry::EPS = zero variation maxDist = longer rays then maxDist are ignored t_in, t_out = poutput = ordered distance of first and second int. _values[] = FDH values (upper bound, -lower bound) plane1, plane2 = indices of successful clipping planes Definition at line 347 of file FDH.h. Referenced by FDH::rayIntersection(). |
|
Value: { \ if (d != 0.0) { \ if (d > 0.0) { \ t_out = (_values[i1] - o) / d; \ if (t_out < Geometry::EPS) return; \ t_in = (_values[i2] + o) / -d; \ if (t_in > maxDist) return; \ plane1 = i2; plane2 = i1; \ } else { \ t_in = (_values[i1] - o) / d; \ if (t_in > maxDist) return; \ t_out = (_values[i2] + o) / -d; \ if (t_out < Geometry::EPS) return; \ plane1 = i1; plane2 = i2; \ } \ } else { \ if ((o < -_values[i2]) || (o > _values[i1])) return; \ t_in = -MAXFLOAT+1; \ t_out = MAXFLOAT; \ } \ } Input: o = clipping plane normal * ray origin d = clipping plane normal * ray direction i1 = index of upper bound clipping plane i2 = index of lower bound clipping plane Global variable: Geometry::EPS = zero variation maxDist = longer rays then maxDist are ignored t_in, t_out = poutput = ordered distance of first and second int. _values[] = FDH values (upper bound, -lower bound) plane1, plane2 = indices of successful clipping planes Definition at line 306 of file FDH.h. Referenced by FDH::rayIntersection(). |
|
Value: { \ if (d != 0.0) { \ if (d > 0.0) { \ t_out = (_values[i1] - o) / d; \ if (t_out < Geometry::EPS) return; \ t_in = (_values[i2] + o) / -d; \ if (t_in > maxDist) return; \ } else { \ t_in = (_values[i1] - o) / d; \ if (t_in > maxDist) return; \ t_out = (_values[i2] + o) / -d; \ if (t_out < Geometry::EPS) return; \ } \ } else { \ if ((o < -_values[i2]) || (o > _values[i1])) return; \ t_in = -MAXFLOAT+1; \ t_out = MAXFLOAT; \ } \ } Input: o = clipping plane normal * ray origin d = clipping plane normal * ray direction i1 = index of upper bound clipping plane i2 = index of lower bound clipping plane Global variable: Geometry::EPS = zero variation maxDist = longer rays then maxDist are ignored t_in, t_out = poutput = ordered distance of first and second int. _values[] = FDH values (upper bound, -lower bound) Definition at line 228 of file FDH.h. Referenced by FDH::rayIntersection(). |