#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(). |
1.4.6