triFace Class Reference

A triangular face using a FixedList of labels corresponding to mesh vertices. More...

Inheritance diagram for triFace:
Collaboration diagram for triFace:

Public Member Functions

 triFace ()
 Construct null. More...
 
 triFace (const label a, const label b, const label c)
 Construct from three point labels. More...
 
 triFace (const labelUList &)
 Construct from a list of labels. More...
 
 triFace (Istream &)
 Construct from Istream. More...
 
label collapse ()
 Collapse face by removing duplicate point labels. More...
 
void flip ()
 Flip the face in-place. More...
 
pointField points (const pointField &) const
 Return the points corresponding to this face. More...
 
face triFaceFace () const
 Return triangle as a face. More...
 
triPointRef tri (const pointField &) const
 Return the triangle. More...
 
point centre (const pointField &) const
 Return centre (centroid) More...
 
template<class Type >
Type average (const pointField &, const Field< Type > &) const
 Calculate average value at centroid of face. More...
 
vector area (const pointField &) const
 Return vector area. More...
 
scalar mag (const pointField &) const
 Return scalar magnitude. More...
 
vector normal (const pointField &) const
 Return unit normal. More...
 
label nTriangles () const
 Number of triangles after splitting. More...
 
triFace reverseFace () const
 Return face with reverse direction. More...
 
scalar sweptVol (const pointField &oldPoints, const pointField &newPoints) const
 Return swept-volume. More...
 
tensor inertia (const pointField &, const point &refPt=vector::zero, scalar density=1.0) const
 Return the inertia tensor, with optional reference. More...
 
pointHit ray (const point &p, const vector &q, const pointField &points, const intersection::algorithm=intersection::algorithm::fullRay, const intersection::direction dir=intersection::direction::vector) const
 Return point intersection with a ray starting at p,. More...
 
pointHit intersection (const point &p, const vector &q, const pointField &points, const intersection::algorithm alg, const scalar tol=0.0) const
 Fast intersection with a ray. More...
 
pointHit intersection (const point &p, const vector &q, const point &ctr, const pointField &points, const intersection::algorithm alg, const scalar tol=0.0) const
 
pointHit nearestPoint (const point &p, const pointField &points) const
 Return nearest point to face. More...
 
pointHit nearestPointClassify (const point &p, const pointField &points, label &nearType, label &nearLabel) const
 Return nearest point to face and classify it: More...
 
label nEdges () const
 Return number of edges. More...
 
edgeList edges () const
 Return edges in face point ordering,. More...
 
edge faceEdge (const label n) const
 Return n-th face edge. More...
 
int edgeDirection (const edge &) const
 Return the edge direction on the face. More...
 
- Public Member Functions inherited from FixedList< label, 3 >
 FixedList ()
 Null constructor. More...
 
 FixedList (const label &)
 Construct from value. More...
 
 FixedList (const label v[Size])
 Construct from C-array. More...
 
 FixedList (InputIterator first, InputIterator last)
 Construct given start and end iterators. More...
 
 FixedList (std::initializer_list< label >)
 Construct from an initialiser list. More...
 
 FixedList (const UList< label > &)
 Construct from UList. More...
 
 FixedList (const SLList< label > &)
 Construct from SLList. More...
 
 FixedList (Istream &)
 Construct from Istream. More...
 
autoPtr< FixedList< label, Size > > clone () const
 Clone. More...
 
label fcIndex (const label i) const
 Return the forward circular index, i.e. the next index. More...
 
label rcIndex (const label i) const
 Return the reverse circular index, i.e. the previous index. More...
 
const labelcdata () const
 Return a const pointer to the first data element,. More...
 
labeldata ()
 Return a pointer to the first data element,. More...
 
labelfirst ()
 Return the first element of the list. More...
 
const labelfirst () const
 Return first element of the list. More...
 
labellast ()
 Return the last element of the list. More...
 
const labellast () const
 Return the last element of the list. More...
 
void checkStart (const label start) const
 Check start is within valid range (0 ... size-1) More...
 
void checkSize (const label size) const
 Check size is within valid range (0 ... size) More...
 
void checkIndex (const label i) const
 Check index i is within valid range (0 ... size-1) More...
 
void resize (const label)
 Dummy resize function. More...
 
void setSize (const label)
 Dummy setSize function. More...
 
void transfer (const FixedList< label, Size > &)
 Copy (not transfer) the argument contents. More...
 
labeloperator[] (const label)
 Return element of FixedList. More...
 
const labeloperator[] (const label) const
 Return element of constant FixedList. More...
 
void operator= (const label v[Size])
 Assignment to array operator. Takes linear time. More...
 
void operator= (const UList< label > &)
 Assignment to UList operator. Takes linear time. More...
 
void operator= (const SLList< label > &)
 Assignment to SLList operator. Takes linear time. More...
 
void operator= (std::initializer_list< label >)
 Assignment to an initialiser list. Takes linear time. More...
 
void operator= (const label &)
 Assignment of all entries to the given value. More...
 
iterator begin ()
 Return an iterator to begin traversing the FixedList. More...
 
const_iterator begin () const
 Return const_iterator to begin traversing the constant FixedList. More...
 
iterator end ()
 Return an iterator to end traversing the FixedList. More...
 
const_iterator end () const
 Return const_iterator to end traversing the constant FixedList. More...
 
const_iterator cbegin () const
 Return const_iterator to begin traversing the constant FixedList. More...
 
const_iterator cend () const
 Return const_iterator to end traversing the constant FixedList. More...
 
reverse_iterator rbegin ()
 Return reverse_iterator to begin reverse traversing the FixedList. More...
 
const_reverse_iterator rbegin () const
 Return const_reverse_iterator to begin reverse traversing FixedList. More...
 
reverse_iterator rend ()
 Return reverse_iterator to end reverse traversing the FixedList. More...
 
const_reverse_iterator rend () const
 Return const_reverse_iterator to end reverse traversing FixedList. More...
 
const_reverse_iterator crbegin () const
 Return const_reverse_iterator to begin reverse traversing FixedList. More...
 
const_reverse_iterator crend () const
 Return const_reverse_iterator to end reverse traversing FixedList. More...
 
label size () const
 Return the number of elements in the FixedList. More...
 
label max_size () const
 Return size of the largest possible FixedList. More...
 
bool empty () const
 Return true if the FixedList is empty (ie, size() is zero) More...
 
void swap (FixedList< label, Size > &)
 Swap two FixedLists of the same type in constant time. More...
 
bool operator== (const FixedList< label, Size > &) const
 Equality operation on FixedLists of the same type. More...
 
bool operator!= (const FixedList< label, Size > &) const
 The opposite of the equality operation. Takes linear time. More...
 
bool operator< (const FixedList< label, Size > &) const
 Compare two FixedLists lexicographically. Takes linear time. More...
 
bool operator> (const FixedList< label, Size > &) const
 Compare two FixedLists lexicographically. Takes linear time. More...
 
bool operator<= (const FixedList< label, Size > &) const
 Return true if !(a > b). Takes linear time. More...
 
bool operator>= (const FixedList< label, Size > &) const
 Return true if !(a < b). Takes linear time. More...
 

Static Public Member Functions

static int compare (const triFace &, const triFace &)
 Compare triFaces. More...
 
- Static Public Member Functions inherited from FixedList< label, 3 >
static const FixedList< label, Size > & null ()
 Return a null FixedList. More...
 

Friends

bool operator== (const triFace &, const triFace &)
 
bool operator!= (const triFace &, const triFace &)
 

Additional Inherited Members

- Public Types inherited from FixedList< label, 3 >
typedef label value_type
 Type of values the FixedList contains. More...
 
typedef labelreference
 Type that can be used for storing into. More...
 
typedef const labelconst_reference
 Type that can be used for storing into. More...
 
typedef label difference_type
 The type that can represent the difference between any two. More...
 
typedef label size_type
 The type that can represent the size of a FixedList. More...
 
typedef labeliterator
 Random access iterator for traversing FixedList. More...
 
typedef const labelconst_iterator
 Random access iterator for traversing FixedList. More...
 
typedef std::reverse_iterator< iteratorreverse_iterator
 Reverse iterator for reverse traversal of FixedList. More...
 
typedef std::reverse_iterator< const_iteratorconst_reverse_iterator
 Reverse iterator for reverse traversal of constant FixedList. More...
 

Detailed Description

A triangular face using a FixedList of labels corresponding to mesh vertices.

See also
Foam::face, Foam::triangle
Source files

Definition at line 68 of file triFace.H.

Constructor & Destructor Documentation

◆ triFace() [1/4]

triFace ( )
inline

Construct null.

Definition at line 64 of file triFaceI.H.

Referenced by triFace::reverseFace().

Here is the caller graph for this function:

◆ triFace() [2/4]

triFace ( const label  a,
const label  b,
const label  c 
)
inline

Construct from three point labels.

Definition at line 69 of file triFaceI.H.

References Foam::constant::physicoChemical::b, Foam::constant::universal::c, and FixedList< label, 3 >::operator[]().

Here is the call graph for this function:

◆ triFace() [3/4]

triFace ( const labelUList lst)
inlineexplicit

Construct from a list of labels.

Definition at line 81 of file triFaceI.H.

◆ triFace() [4/4]

triFace ( Istream is)
inline

Construct from Istream.

Definition at line 87 of file triFaceI.H.

Member Function Documentation

◆ collapse()

Foam::label collapse ( )
inline

Collapse face by removing duplicate point labels.

return the collapsed size, set collapsed point labels to -1

Definition at line 95 of file triFaceI.H.

References n, and FixedList< label, 3 >::operator[]().

Here is the call graph for this function:

◆ flip()

void flip ( )
inline

Flip the face in-place.

The starting points of the original and flipped face are identical.

Definition at line 122 of file triFaceI.H.

References Foam::Swap().

Here is the call graph for this function:

◆ points()

Foam::pointField points ( const pointField points) const
inline

Return the points corresponding to this face.

Definition at line 128 of file triFaceI.H.

References FixedList< label, 3 >::operator[](), and p.

Here is the call graph for this function:

◆ triFaceFace()

Foam::face triFaceFace ( ) const
inline

Return triangle as a face.

Definition at line 140 of file triFaceI.H.

References f(), and FixedList< label, 3 >::operator[]().

Referenced by NamedEnum< compressibleField, 8 >::names().

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

◆ tri()

Foam::triPointRef tri ( const pointField points) const
inline

Return the triangle.

Definition at line 152 of file triFaceI.H.

Referenced by triSurfaceTools::calcInterpolationWeights(), triFace::inertia(), triFace::intersection(), triFace::nearestPoint(), triFace::nearestPointClassify(), and triFace::ray().

Here is the caller graph for this function:

◆ centre()

Foam::point centre ( const pointField points) const
inline

Return centre (centroid)

Definition at line 163 of file triFaceI.H.

References FixedList< label, 3 >::operator[]().

Here is the call graph for this function:

◆ average()

Type average ( const pointField meshPoints,
const Field< Type > &  fld 
) const

Calculate average value at centroid of face.

Definition at line 32 of file triFaceTemplates.C.

◆ area()

Foam::vector area ( const pointField points) const
inline

Return vector area.

Definition at line 174 of file triFaceI.H.

References FixedList< label, 3 >::operator[]().

Referenced by triSurface::curvature(), triFace::mag(), triFace::normal(), and triSurface::triSurfInstance().

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

◆ mag()

Foam::scalar mag ( const pointField points) const
inline

Return scalar magnitude.

Definition at line 184 of file triFaceI.H.

References triFace::area(), and Foam::mag().

Here is the call graph for this function:

◆ normal()

Foam::vector normal ( const pointField points) const
inline

Return unit normal.

Definition at line 190 of file triFaceI.H.

References triFace::area(), Foam::mag(), and Foam::Zero.

Here is the call graph for this function:

◆ nTriangles()

Foam::label nTriangles ( ) const
inline

Number of triangles after splitting.

Definition at line 198 of file triFaceI.H.

◆ reverseFace()

Foam::triFace reverseFace ( ) const
inline

Return face with reverse direction.

The starting points of the original and reverse face are identical.

Definition at line 204 of file triFaceI.H.

References triFace::sweptVol(), and triFace::triFace().

Here is the call graph for this function:

◆ sweptVol()

Foam::scalar sweptVol ( const pointField oldPoints,
const pointField newPoints 
) const
inline

Return swept-volume.

Definition at line 212 of file triFaceI.H.

References triFace::inertia(), and FixedList< label, 3 >::operator[]().

Referenced by triFace::reverseFace().

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

◆ inertia()

Foam::tensor inertia ( const pointField points,
const point refPt = vector::zero,
scalar  density = 1.0 
) const
inline

Return the inertia tensor, with optional reference.

point and density specification

Definition at line 245 of file triFaceI.H.

References triangle< Point, PointRef >::inertia(), triFace::ray(), and triFace::tri().

Referenced by triFace::sweptVol().

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

◆ ray()

Foam::pointHit ray ( const point p,
const vector q,
const pointField points,
const intersection::algorithm  alg = intersection::algorithm::fullRay,
const intersection::direction  dir = intersection::direction::vector 
) const
inline

Return point intersection with a ray starting at p,.

with direction q.

Definition at line 257 of file triFaceI.H.

References triFace::intersection(), triangle< Point, PointRef >::ray(), and triFace::tri().

Referenced by triFace::inertia().

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

◆ intersection() [1/2]

Foam::pointHit intersection ( const point p,
const vector q,
const pointField points,
const intersection::algorithm  alg,
const scalar  tol = 0.0 
) const
inline

Fast intersection with a ray.

Definition at line 271 of file triFaceI.H.

References triangle< Point, PointRef >::intersection(), and triFace::tri().

Referenced by triFace::intersection(), and triFace::ray().

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

◆ intersection() [2/2]

Foam::pointHit intersection ( const point p,
const vector q,
const point ctr,
const pointField points,
const intersection::algorithm  alg,
const scalar  tol = 0.0 
) const
inline

Definition at line 284 of file triFaceI.H.

References triFace::intersection(), and triFace::nearestPoint().

Here is the call graph for this function:

◆ nearestPoint()

Foam::pointHit nearestPoint ( const point p,
const pointField points 
) const
inline

Return nearest point to face.

Definition at line 298 of file triFaceI.H.

References triangle< Point, PointRef >::nearestPoint(), triFace::nearestPointClassify(), and triFace::tri().

Referenced by triFace::intersection().

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

◆ nearestPointClassify()

Foam::pointHit nearestPointClassify ( const point p,
const pointField points,
label nearType,
label nearLabel 
) const
inline

Return nearest point to face and classify it:

+ near point (nearType=POINT, nearLabel=0, 1, 2) + near edge (nearType=EDGE, nearLabel=0, 1, 2) Note: edges are counted from starting vertex so e.g. edge n is from f[n] to f[0], where the face has n + 1 points

Definition at line 308 of file triFaceI.H.

References triangle< Point, PointRef >::nearestPointClassify(), and triFace::tri().

Referenced by triFace::nearestPoint().

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

◆ nEdges()

Foam::label nEdges ( ) const
inline

Return number of edges.

Definition at line 319 of file triFaceI.H.

◆ edges()

Foam::edgeList edges ( ) const
inline

Return edges in face point ordering,.

i.e. edges()[0] is edge between [0] and [1]

Definition at line 325 of file triFaceI.H.

References Foam::e, UList< T >::end(), and FixedList< label, 3 >::operator[]().

Referenced by triSurface::curvature().

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

◆ faceEdge()

Foam::edge faceEdge ( const label  n) const
inline

Return n-th face edge.

Definition at line 342 of file triFaceI.H.

References FixedList< label, 3 >::fcIndex().

Here is the call graph for this function:

◆ edgeDirection()

int edgeDirection ( const edge e) const
inline

Return the edge direction on the face.

Returns:

  • +1: forward (counter-clockwise) on the face
  • -1: reverse (clockwise) on the face
  • 0: edge not found on the face

Definition at line 352 of file triFaceI.H.

References edge::end(), FixedList< label, 3 >::operator[](), and edge::start().

Referenced by Foam::checkNonManifoldEdge().

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

◆ compare()

int compare ( const triFace a,
const triFace b 
)
inlinestatic

Compare triFaces.

Returns:

  • 0: different
  • +1: identical
  • -1: same face, but different orientation

Definition at line 33 of file triFaceI.H.

Referenced by Foam::operator!=(), and Foam::operator==().

Here is the caller graph for this function:

Friends And Related Function Documentation

◆ operator==

bool operator== ( const triFace ,
const triFace  
)
friend

◆ operator!=

bool operator!= ( const triFace ,
const triFace  
)
friend

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