Static Public Member Functions
fcl::TriangleDistance Class Reference

Triangle distance functions. More...

#include <hpp/fcl/intersect.h>

List of all members.

Static Public Member Functions

static void segPoints (const Vec3f &P, const Vec3f &A, const Vec3f &Q, const Vec3f &B, Vec3f &VEC, Vec3f &X, Vec3f &Y)
 Returns closest points between an segment pair.
static FCL_REAL sqrTriDistance (const Vec3f S[3], const Vec3f T[3], Vec3f &P, Vec3f &Q)
 Compute squared distance between triangles.
static FCL_REAL sqrTriDistance (const Vec3f &S1, const Vec3f &S2, const Vec3f &S3, const Vec3f &T1, const Vec3f &T2, const Vec3f &T3, Vec3f &P, Vec3f &Q)
static FCL_REAL sqrTriDistance (const Vec3f S[3], const Vec3f T[3], const Matrix3f &R, const Vec3f &Tl, Vec3f &P, Vec3f &Q)
 Compute squared distance between triangles.
static FCL_REAL sqrTriDistance (const Vec3f S[3], const Vec3f T[3], const Transform3f &tf, Vec3f &P, Vec3f &Q)
 Compute squared distance between triangles.
static FCL_REAL sqrTriDistance (const Vec3f &S1, const Vec3f &S2, const Vec3f &S3, const Vec3f &T1, const Vec3f &T2, const Vec3f &T3, const Matrix3f &R, const Vec3f &Tl, Vec3f &P, Vec3f &Q)
 Compute squared distance between triangles.
static FCL_REAL sqrTriDistance (const Vec3f &S1, const Vec3f &S2, const Vec3f &S3, const Vec3f &T1, const Vec3f &T2, const Vec3f &T3, const Transform3f &tf, Vec3f &P, Vec3f &Q)
 Compute squared distance between triangles.

Detailed Description

Triangle distance functions.


Member Function Documentation

static void fcl::TriangleDistance::segPoints ( const Vec3f P,
const Vec3f A,
const Vec3f Q,
const Vec3f B,
Vec3f VEC,
Vec3f X,
Vec3f Y 
) [static]

Returns closest points between an segment pair.

The first segment is P + t * A The second segment is Q + t * B X, Y are the closest points on the two segments VEC is the vector between X and Y

static FCL_REAL fcl::TriangleDistance::sqrTriDistance ( const Vec3f  S[3],
const Vec3f  T[3],
Vec3f P,
Vec3f Q 
) [static]

Compute squared distance between triangles.

Parameters:
Sand T are two triangles
Return values:
P,Qclosest points if triangles do not intersect.
Returns:
squared distance if triangles do not intersect, 0 otherwise. If the triangles are disjoint, P and Q give the closet points of S and T respectively. However, if the triangles overlap, P and Q are basically a random pair of points from the triangles, not coincident points on the intersection of the triangles, as might be expected.

Referenced by fcl::MeshDistanceTraversalNode< OBBRSS >::leafTesting().

static FCL_REAL fcl::TriangleDistance::sqrTriDistance ( const Vec3f S1,
const Vec3f S2,
const Vec3f S3,
const Vec3f T1,
const Vec3f T2,
const Vec3f T3,
Vec3f P,
Vec3f Q 
) [static]
static FCL_REAL fcl::TriangleDistance::sqrTriDistance ( const Vec3f  S[3],
const Vec3f  T[3],
const Matrix3f R,
const Vec3f Tl,
Vec3f P,
Vec3f Q 
) [static]

Compute squared distance between triangles.

Parameters:
Sand T are two triangles
R,Tl,rotationand translation applied to T,
Return values:
P,Qclosest points if triangles do not intersect.
Returns:
squared distance if triangles do not intersect, 0 otherwise. If the triangles are disjoint, P and Q give the closet points of S and T respectively. However, if the triangles overlap, P and Q are basically a random pair of points from the triangles, not coincident points on the intersection of the triangles, as might be expected.
static FCL_REAL fcl::TriangleDistance::sqrTriDistance ( const Vec3f  S[3],
const Vec3f  T[3],
const Transform3f tf,
Vec3f P,
Vec3f Q 
) [static]

Compute squared distance between triangles.

Parameters:
Sand T are two triangles
tf,rotationand translation applied to T,
Return values:
P,Qclosest points if triangles do not intersect.
Returns:
squared distance if triangles do not intersect, 0 otherwise. If the triangles are disjoint, P and Q give the closet points of S and T respectively. However, if the triangles overlap, P and Q are basically a random pair of points from the triangles, not coincident points on the intersection of the triangles, as might be expected.
static FCL_REAL fcl::TriangleDistance::sqrTriDistance ( const Vec3f S1,
const Vec3f S2,
const Vec3f S3,
const Vec3f T1,
const Vec3f T2,
const Vec3f T3,
const Matrix3f R,
const Vec3f Tl,
Vec3f P,
Vec3f Q 
) [static]

Compute squared distance between triangles.

Parameters:
S1,S2,S3and T1, T2, T3 are triangle vertices
R,Tl,rotationand translation applied to T1, T2, T3,
Return values:
P,Qclosest points if triangles do not intersect.
Returns:
squared distance if triangles do not intersect, 0 otherwise. If the triangles are disjoint, P and Q give the closet points of S and T respectively. However, if the triangles overlap, P and Q are basically a random pair of points from the triangles, not coincident points on the intersection of the triangles, as might be expected.
static FCL_REAL fcl::TriangleDistance::sqrTriDistance ( const Vec3f S1,
const Vec3f S2,
const Vec3f S3,
const Vec3f T1,
const Vec3f T2,
const Vec3f T3,
const Transform3f tf,
Vec3f P,
Vec3f Q 
) [static]

Compute squared distance between triangles.

Parameters:
S1,S2,S3and T1, T2, T3 are triangle vertices
tf,rotationand translation applied to T1, T2, T3,
Return values:
P,Qclosest points if triangles do not intersect.
Returns:
squared distance if triangles do not intersect, 0 otherwise. If the triangles are disjoint, P and Q give the closet points of S and T respectively. However, if the triangles overlap, P and Q are basically a random pair of points from the triangles, not coincident points on the intersection of the triangles, as might be expected.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines