ug4
|
Namespaces | |
ug | |
the ug namespace | |
Macros | |
#define | COMPUTE_INTERVAL_POINTS(VV0, VV1, VV2, D0, D1, D2, D0D1, D0D2, isect0, isect1) |
#define | COMPUTE_INTERVALS(VV0, VV1, VV2, D0, D1, D2, D0D1, D0D2, isect0, isect1) |
#define | CROSS(dest, v1, v2) |
#define | DOT(v1, v2) (v1[0]*v2[0]+v1[1]*v2[1]+v1[2]*v2[2]) |
#define | EDGE_AGAINST_TRI_EDGES(V0, V1, U0, U1, U2) |
#define | EDGE_EDGE_TEST(V0, U0, U1) |
#define | EPSILON 1.e-12 |
#define | ISECT(VV0, VV1, VV2, D0, D1, D2, isect0, isect1) |
#define | ISECT3(VV0, VV1, VV2, D0, D1, D2, isect0, isect1) |
#define | POINT_IN_TRI(V0, U0, U1, U2) |
#define | SORT(a, b) |
#define | SUB(dest, v1, v2) |
#define | USE_EPSILON_TEST TRUE |
Functions | |
int | coplanar_tri_tri (number N[3], number V0[3], number V1[3], number V2[3], number U0[3], number U1[3], number U2[3]) |
int | tri_tri_intersect (number V0[3], number V1[3], number V2[3], number U0[3], number U1[3], number U2[3], number *ip1Out, number *ip2Out, const number snapThreshold) |
UG_API bool | ug::TriangleTriangleIntersection (const MathVector< 3 > &p0, const MathVector< 3 > &p1, const MathVector< 3 > &p2, const MathVector< 3 > &q0, const MathVector< 3 > &q1, const MathVector< 3 > &q2, MathVector< 3 > *ip1Out=NULL, MathVector< 3 > *ip2Out=NULL, number snapThreshold=SMALL) |
checks whether two triangles intersect and returns the intervals, if they do. More... | |
#define COMPUTE_INTERVAL_POINTS | ( | VV0, | |
VV1, | |||
VV2, | |||
D0, | |||
D1, | |||
D2, | |||
D0D1, | |||
D0D2, | |||
isect0, | |||
isect1 | |||
) |
#define COMPUTE_INTERVALS | ( | VV0, | |
VV1, | |||
VV2, | |||
D0, | |||
D1, | |||
D2, | |||
D0D1, | |||
D0D2, | |||
isect0, | |||
isect1 | |||
) |
#define CROSS | ( | dest, | |
v1, | |||
v2 | |||
) |
#define DOT | ( | v1, | |
v2 | |||
) | (v1[0]*v2[0]+v1[1]*v2[1]+v1[2]*v2[2]) |
#define EDGE_AGAINST_TRI_EDGES | ( | V0, | |
V1, | |||
U0, | |||
U1, | |||
U2 | |||
) |
#define EDGE_EDGE_TEST | ( | V0, | |
U0, | |||
U1 | |||
) |
#define EPSILON 1.e-12 |
#define ISECT | ( | VV0, | |
VV1, | |||
VV2, | |||
D0, | |||
D1, | |||
D2, | |||
isect0, | |||
isect1 | |||
) |
#define ISECT3 | ( | VV0, | |
VV1, | |||
VV2, | |||
D0, | |||
D1, | |||
D2, | |||
isect0, | |||
isect1 | |||
) |
#define POINT_IN_TRI | ( | V0, | |
U0, | |||
U1, | |||
U2 | |||
) |
#define SORT | ( | a, | |
b | |||
) |
#define SUB | ( | dest, | |
v1, | |||
v2 | |||
) |
#define USE_EPSILON_TEST TRUE |
int coplanar_tri_tri | ( | number | N[3], |
number | V0[3], | ||
number | V1[3], | ||
number | V2[3], | ||
number | U0[3], | ||
number | U1[3], | ||
number | U2[3] | ||
) |
References EDGE_AGAINST_TRI_EDGES, and POINT_IN_TRI.
int tri_tri_intersect | ( | number | V0[3], |
number | V1[3], | ||
number | V2[3], | ||
number | U0[3], | ||
number | U1[3], | ||
number | U2[3], | ||
number * | ip1Out, | ||
number * | ip2Out, | ||
const number | snapThreshold | ||
) |
References COMPUTE_INTERVAL_POINTS, COMPUTE_INTERVALS, CROSS, DOT, and SUB.
Referenced by ug::TriangleTriangleIntersection().