triangleFuncs Class Reference

Various triangle functions. More...

Public Types

enum  proxType { NONE, POINT, EDGE }
 Enumeration defining nearness classification. More...
 

Static Public Member Functions

static bool intersectAxesBundle (const point &V0, const point &V10, const point &V20, const label i0, const pointField &origin, const scalar maxLength, point &pInter)
 Intersect triangle with parallel edges aligned with axis i0. More...
 
static bool intersectBb (const point &p0, const point &p1, const point &p2, const treeBoundBox &cubeBb)
 Does triangle intersect bounding box. More...
 
static bool intersect (const point &va0, const point &va10, const point &va20, const point &basePoint, const vector &normal, point &pInter0, point &pInter1)
 Does triangle intersect plane. Return bool and set intersection segment. More...
 
static bool intersect (const point &va0, const point &va10, const point &va20, const point &vb0, const point &vb10, const point &vb20, point &pInter0, point &pInter1)
 Do triangles intersect. Return bool and set intersection segment. More...
 

Detailed Description

Various triangle functions.

Source files

Definition at line 54 of file triangleFuncs.H.

Member Enumeration Documentation

◆ proxType

enum proxType

Enumeration defining nearness classification.

Enumerator
NONE 
POINT 
EDGE 

Definition at line 62 of file triangleFuncs.H.

Member Function Documentation

◆ intersectAxesBundle()

bool intersectAxesBundle ( const point &  V0,
const point &  V10,
const point &  V20,
const label  i0,
const pointField &  origin,
const scalar  maxLength,
point &  pInter 
)
static

Intersect triangle with parallel edges aligned with axis i0.

Returns true (and intersection in pInter) if any of them intersects triangle. Used in intersectBb.

Definition at line 85 of file triangleFuncs.C.

References alpha(), Foam::det(), forAll, triangleFuncs::intersectBb(), Foam::mag(), s(), and u0.

Referenced by triangleFuncs::intersectBb().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ intersectBb()

bool intersectBb ( const point &  p0,
const point &  p1,
const point &  p2,
const treeBoundBox &  cubeBb 
)
static

Does triangle intersect bounding box.

Definition at line 172 of file triangleFuncs.C.

References triangleFuncs::intersect(), triangleFuncs::intersectAxesBundle(), treeBoundBox::intersects(), boundBox::max(), Foam::max(), boundBox::min(), Foam::min(), Vector< Cmpt >::x(), Vector< Cmpt >::y(), and Vector< Cmpt >::z().

Referenced by triangleFuncs::intersectAxesBundle(), NamedEnum< compressibleField, 8 >::names(), and treeDataFace::overlaps().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ intersect() [1/2]

bool intersect ( const point &  va0,
const point &  va10,
const point &  va20,
const point &  basePoint,
const vector &  normal,
point &  pInter0,
point &  pInter1 
)
static

Does triangle intersect plane. Return bool and set intersection segment.

Definition at line 526 of file triangleFuncs.C.

References Foam::mag(), and Foam::sqrt().

Referenced by triangleFuncs::intersect(), and triangleFuncs::intersectBb().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ intersect() [2/2]

bool intersect ( const point &  va0,
const point &  va10,
const point &  va20,
const point &  vb0,
const point &  vb10,
const point &  vb20,
point &  pInter0,
point &  pInter1 
)
static

Do triangles intersect. Return bool and set intersection segment.

Definition at line 644 of file triangleFuncs.C.

References SortableList< T >::indices(), triangleFuncs::intersect(), Foam::mag(), and SortableList< T >::sort().

Here is the call graph for this function:

The documentation for this class was generated from the following files: