38#ifndef COAL_INTERSECT_H
39#define COAL_INTERSECT_H
50 static bool buildTrianglePlane(
const Vec3s& v1,
const Vec3s& v2,
51 const Vec3s& v3, Vec3s* n, Scalar* t);
55template <
typename _Scalar>
59 typedef Eigen::Matrix<Scalar, 3, 1> Vec3;
61 struct ProjectResult {
64 Scalar parameterization[4];
72 ProjectResult() : sqr_distance(-1), encode(0) {}
76 static ProjectResult projectLine(
const Vec3& a,
const Vec3& b,
const Vec3& p);
79 static ProjectResult projectTriangle(
const Vec3& a,
const Vec3& b,
80 const Vec3& c,
const Vec3& p);
83 static ProjectResult projectTetrahedra(
const Vec3& a,
const Vec3& b,
84 const Vec3& c,
const Vec3& d,
88 static ProjectResult projectLineOrigin(
const Vec3& a,
const Vec3& b);
91 static ProjectResult projectTriangleOrigin(
const Vec3& a,
const Vec3& b,
95 static ProjectResult projectTetrahedraOrigin(
const Vec3& a,
const Vec3& b,
96 const Vec3& c,
const Vec3& d);
107 static void segPoints(
const Vec3s& P,
const Vec3s& A,
const Vec3s& Q,
108 const Vec3s& B, Vec3s& VEC, Vec3s& X, Vec3s& Y);
119 static Scalar sqrTriDistance(
const Vec3s S[3],
const Vec3s T[3], Vec3s& P,
122 static Scalar sqrTriDistance(
const Vec3s& S1,
const Vec3s& S2,
123 const Vec3s& S3,
const Vec3s& T1,
124 const Vec3s& T2,
const Vec3s& T3, Vec3s& P,
137 static Scalar sqrTriDistance(
const Vec3s S[3],
const Vec3s T[3],
138 const Matrix3s& R,
const Vec3s& Tl, Vec3s& P,
151 static Scalar sqrTriDistance(
const Vec3s S[3],
const Vec3s T[3],
152 const Transform3s& tf, Vec3s& P, Vec3s& Q);
164 static Scalar sqrTriDistance(
const Vec3s& S1,
const Vec3s& S2,
165 const Vec3s& S3,
const Vec3s& T1,
166 const Vec3s& T2,
const Vec3s& T3,
167 const Matrix3s& R,
const Vec3s& Tl, Vec3s& P,
180 static Scalar sqrTriDistance(
const Vec3s& S1,
const Vec3s& S2,
181 const Vec3s& S3,
const Vec3s& T1,
182 const Vec3s& T2,
const Vec3s& T3,
183 const Transform3s& tf, Vec3s& P, Vec3s& Q);
#define COAL_DLLAPI
Definition config.hh:88
Main namespace.
Definition broadphase_bruteforce.h:44
double Scalar
Definition data_types.h:68