38#ifndef COAL_INTERSECT_H 39#define COAL_INTERSECT_H 48class COAL_DLLAPI Intersect {
50 static bool buildTrianglePlane(
const Vec3s& v1,
const Vec3s& v2,
51 const Vec3s& v3, Vec3s* n, CoalScalar* t);
55class COAL_DLLAPI Project {
57 struct COAL_DLLAPI ProjectResult {
68 ProjectResult() : sqr_distance(-1), encode(0) {}
72 static ProjectResult projectLine(
const Vec3s& a,
const Vec3s& b,
76 static ProjectResult projectTriangle(
const Vec3s& a,
const Vec3s& b,
77 const Vec3s& c,
const Vec3s& p);
80 static ProjectResult projectTetrahedra(
const Vec3s& a,
const Vec3s& b,
81 const Vec3s& c,
const Vec3s& d,
85 static ProjectResult projectLineOrigin(
const Vec3s& a,
const Vec3s& b);
88 static ProjectResult projectTriangleOrigin(
const Vec3s& a,
const Vec3s& b,
92 static ProjectResult projectTetrahedraOrigin(
const Vec3s& a,
const Vec3s& b,
93 const Vec3s& c,
const Vec3s& d);
97class COAL_DLLAPI TriangleDistance {
104 static void segPoints(
const Vec3s& P,
const Vec3s& A,
const Vec3s& Q,
105 const Vec3s& B, Vec3s& VEC, Vec3s& X, Vec3s& Y);
116 static CoalScalar sqrTriDistance(
const Vec3s S[3],
const Vec3s T[3], Vec3s& P,
119 static CoalScalar sqrTriDistance(
const Vec3s& S1,
const Vec3s& S2,
120 const Vec3s& S3,
const Vec3s& T1,
121 const Vec3s& T2,
const Vec3s& T3, Vec3s& P,
134 static CoalScalar sqrTriDistance(
const Vec3s S[3],
const Vec3s T[3],
135 const Matrix3s& R,
const Vec3s& Tl, Vec3s& P,
148 static CoalScalar sqrTriDistance(
const Vec3s S[3],
const Vec3s T[3],
149 const Transform3s& tf, Vec3s& P, Vec3s& Q);
161 static CoalScalar sqrTriDistance(
const Vec3s& S1,
const Vec3s& S2,
162 const Vec3s& S3,
const Vec3s& T1,
163 const Vec3s& T2,
const Vec3s& T3,
164 const Matrix3s& R,
const Vec3s& Tl, Vec3s& P,
177 static CoalScalar sqrTriDistance(
const Vec3s& S1,
const Vec3s& S2,
178 const Vec3s& S3,
const Vec3s& T1,
179 const Vec3s& T2,
const Vec3s& T3,
180 const Transform3s& tf, Vec3s& P, Vec3s& Q);
Main namespace.
Definition broadphase_bruteforce.h:44
double CoalScalar
Definition data_types.h:76