A face is a list of labels corresponding to mesh vertices. More...
#include <OpenFOAM/face.H>
A face is a list of labels corresponding to mesh vertices.
Public Member Functions | |
face () | |
Construct null. | |
face (label) | |
Construct given size. | |
face (const UList< label > &) | |
Construct from list of labels. | |
face (const labelList &) | |
Construct from list of labels. | |
face (const Xfer< labelList > &) | |
Construct by transferring the parameter contents. | |
face (const triFace &) | |
Copy construct from triFace. | |
face (Istream &) | |
Construct from Istream. | |
label | collapse () |
Collapse face by removing duplicate point labels. | |
pointField | points (const pointField &meshPoints) const |
Return the points corresponding to this face. | |
point | centre (const pointField &) const |
Centre point of face. | |
template<class Type > | |
Type | average (const pointField &, const Field< Type > &) const |
Calculate average value at centroid of face. | |
scalar | mag (const pointField &) const |
Scalar magnitude. | |
vector | normal (const pointField &) const |
Vector normal; magnitude is equal to area of face. | |
face | reverseFace () const |
Return face with reverse direction. | |
label | which (const label globalIndex) const |
Navigation through face vertices. | |
label | nextLabel (const label i) const |
Next vertex on face. | |
label | prevLabel (const label i) const |
Previous vertex on face. | |
scalar | sweptVol (const pointField &oldPoints, const pointField &newPoints) const |
Return the volume swept out by the face when its points move. | |
pointHit | ray (const point &p, const vector &n, const pointField &meshPoints, const intersection::algorithm alg=intersection::FULL_RAY, const intersection::direction dir=intersection::VECTOR) const |
Return potential intersection with face with a ray starting. | |
pointHit | intersection (const point &p, const vector &q, const point &ctr, const pointField &meshPoints, const intersection::algorithm alg, const scalar tol=0.0) const |
Fast intersection with a ray. | |
pointHit | nearestPoint (const point &p, const pointField &meshPoints) const |
Return nearest point to face. | |
scalar | contactSphereDiameter (const point &p, const vector &n, const pointField &meshPoints) const |
Return contact sphere diameter. | |
scalar | areaInContact (const pointField &points, const scalarField &v) const |
Return area in contact, given the displacement in vertices. | |
label | nEdges () const |
Return number of edges. | |
edgeList | edges () const |
Return edges in face point ordering, i.e. edges()[0] is edge. | |
edge | faceEdge (const label n) const |
Return n-th face edge. | |
int | edgeDirection (const edge &) const |
Return the edge direction on the face. | |
label | nTriangles () const |
Number of triangles after splitting. | |
label | nTriangles (const pointField &points) const |
Number of triangles after splitting. | |
label | triangles (const pointField &points, label &triI, faceList &triFaces) const |
Split into triangles using existing points. | |
template<unsigned SizeInc, unsigned SizeMult, unsigned SizeDiv> | |
label | triangles (const pointField &points, DynamicList< face, SizeInc, SizeMult, SizeDiv > &triFaces) const |
Split into triangles using existing points. | |
label | nTrianglesQuads (const pointField &points, label &nTris, label &nQuads) const |
Number of triangles and quads after splitting. | |
label | trianglesQuads (const pointField &points, label &triI, label &quadI, faceList &triFaces, faceList &quadFaces) const |
Split into triangles and quads. | |
![]() | |
List () | |
Null constructor. | |
List (const label) | |
Construct with given size. | |
List (const label, const T &) | |
Construct with given size and value for all elements. | |
List (const List< T > &) | |
Copy constructor. | |
List (const Xfer< List< T > > &) | |
Construct by transferring the parameter contents. | |
List (List< T > &, bool reUse) | |
Construct as copy or re-use as specified. | |
List (const UList< T > &, const unallocLabelList &mapAddressing) | |
Construct as subset. | |
template<class InputIterator > | |
List (InputIterator first, InputIterator last) | |
Construct given start and end iterators. | |
template<unsigned Size> | |
List (const FixedList< T, Size > &) | |
Construct as copy of FixedList<T, Size> | |
List (const PtrList< T > &) | |
Construct as copy of PtrList<T> | |
List (const SLList< T > &) | |
Construct as copy of SLList<T> | |
List (const IndirectList< T > &) | |
Construct as copy of IndirectList<T> | |
List (const UIndirectList< T > &) | |
Construct as copy of UIndirectList<T> | |
List (const BiIndirectList< T > &) | |
Construct as copy of BiIndirectList<T> | |
List (Istream &) | |
Construct from Istream. | |
autoPtr< List< T > > | clone () const |
Clone. | |
~List () | |
label | size () const |
Return the number of elements in the UList. | |
void | resize (const label) |
Reset size of List. | |
void | resize (const label, const T &) |
Reset size of List and value for new elements. | |
void | setSize (const label) |
Reset size of List. | |
void | setSize (const label, const T &) |
Reset size of List and value for new elements. | |
void | clear () |
Clear the list, i.e. set size to zero. | |
void | append (const UList< T > &) |
Append a List at the end of this list. | |
void | append (const UIndirectList< T > &) |
Append a UIndirectList at the end of this list. | |
void | transfer (List< T > &) |
Transfer the contents of the argument List into this list. | |
template<unsigned SizeInc, unsigned SizeMult, unsigned SizeDiv> | |
void | transfer (DynamicList< T, SizeInc, SizeMult, SizeDiv > &) |
Transfer the contents of the argument List into this list. | |
void | transfer (SortableList< T > &) |
Transfer the contents of the argument List into this list. | |
Xfer< List< T > > | xfer () |
Transfer contents to the Xfer container. | |
T & | newElmt (const label) |
Return subscript-checked element of UList. | |
void | operator= (const UList< T > &) |
Assignment from UList operator. Takes linear time. | |
void | operator= (const List< T > &) |
Assignment operator. Takes linear time. | |
void | operator= (const SLList< T > &) |
Assignment from SLList operator. Takes linear time. | |
void | operator= (const IndirectList< T > &) |
Assignment from IndirectList operator. Takes linear time. | |
void | operator= (const UIndirectList< T > &) |
Assignment from UIndirectList operator. Takes linear time. | |
void | operator= (const BiIndirectList< T > &) |
Assignment from BiIndirectList operator. Takes linear time. | |
void | operator= (const T &) |
Assignment of all entries to the given value. | |
![]() | |
UList () | |
Null constructor. | |
UList (T *__restrict__ v, label size) | |
Construct from components. | |
label | fcIndex (const label i) const |
Return the forward circular index, i.e. the next index. | |
label | rcIndex (const label i) const |
Return the reverse circular index, i.e. the previous index. | |
label | byteSize () const |
Return the binary size in number of characters of the UList. | |
const T * | cdata () const |
Return a const pointer to the first data element,. | |
T * | data () |
Return a pointer to the first data element,. | |
void | checkStart (const label start) const |
Check start is within valid range (0 ... size-1). | |
void | checkSize (const label size) const |
Check size is within valid range (0 ... size). | |
void | checkIndex (const label i) const |
Check index i is within valid range (0 ... size-1). | |
void | writeEntry (Ostream &) const |
Write the UList as a dictionary entry. | |
void | writeEntry (const word &keyword, Ostream &) const |
Write the UList as a dictionary entry with keyword. | |
void | assign (const UList< T > &) |
Assign elements to those from UList. | |
T & | operator[] (const label) |
Return element of UList. | |
const T & | operator[] (const label) const |
Return element of constant UList. | |
operator const Foam::List< T > & () const | |
Allow cast to a const List<T>&. | |
iterator | begin () |
Return an iterator to begin traversing the UList. | |
iterator | end () |
Return an iterator to end traversing the UList. | |
const_iterator | cbegin () const |
Return const_iterator to begin traversing the constant UList. | |
const_iterator | cend () const |
Return const_iterator to end traversing the constant UList. | |
const_iterator | begin () const |
Return const_iterator to begin traversing the constant UList. | |
const_iterator | end () const |
Return const_iterator to end traversing the constant UList. | |
reverse_iterator | rbegin () |
Return reverse_iterator to begin reverse traversing the UList. | |
reverse_iterator | rend () |
Return reverse_iterator to end reverse traversing the UList. | |
const_reverse_iterator | crbegin () const |
Return const_reverse_iterator to begin reverse traversing the UList. | |
const_reverse_iterator | crend () const |
Return const_reverse_iterator to end reverse traversing the UList. | |
const_reverse_iterator | rbegin () const |
Return const_reverse_iterator to begin reverse traversing the UList. | |
const_reverse_iterator | rend () const |
Return const_reverse_iterator to end reverse traversing the UList. | |
label | max_size () const |
Return size of the largest possible UList. | |
bool | empty () const |
Return true if the UList is empty (ie, size() is zero). | |
void | swap (UList< T > &) |
Swap two ULists of the same type in constant time. | |
bool | operator== (const UList< T > &) const |
Equality operation on ULists of the same type. | |
bool | operator!= (const UList< T > &) const |
The opposite of the equality operation. Takes linear time. | |
bool | operator< (const UList< T > &) const |
Compare two ULists lexicographically. Takes linear time. | |
bool | operator> (const UList< T > &) const |
Compare two ULists lexicographically. Takes linear time. | |
bool | operator<= (const UList< T > &) const |
Return true if !(a > b). Takes linear time. | |
bool | operator>= (const UList< T > &) const |
Return true if !(a < b). Takes linear time. | |
template<> | |
const bool & | operator[] (const label i) const |
Static Public Member Functions | |
static int | compare (const face &, const face &) |
compare faces | |
![]() | |
static const List< T > & | null () |
Return a null List. |
Static Public Attributes | |
static const char *const | typeName = "face" |
Friends | |
bool | operator== (const face &a, const face &b) |
bool | operator!= (const face &a, const face &b) |
Istream & | operator>> (Istream &, face &) |
Additional Inherited Members | |
![]() | |
typedef SubList< T > | subList |
Declare type of subList. | |
![]() | |
typedef T | value_type |
Type of values the UList contains. | |
typedef T & | reference |
Type that can be used for storing into. | |
typedef const T & | const_reference |
Type that can be used for storing into. | |
typedef label | difference_type |
The type that can represent the difference between any two. | |
typedef label | size_type |
The type that can represent the size of a UList. | |
typedef T * | iterator |
Random access iterator for traversing UList. | |
typedef const T * | const_iterator |
Random access iterator for traversing UList. | |
typedef T * | reverse_iterator |
Reverse iterator for reverse traversal of UList. | |
typedef const T * | const_reverse_iterator |
Reverse iterator for reverse traversal of constant UList. | |
![]() | |
void | size (const label) |
Override size to be inconsistent with allocated storage. |
Foam::label collapse | ( | ) |
Collapse face by removing duplicate point labels.
return the collapsed size
Definition at line 453 of file face.C.
References setSize().
Referenced by face::compare(), and STARCD::readCells().
|
inline |
Foam::point centre | ( | const pointField & | meshPoints | ) | const |
Centre point of face.
Definition at line 478 of file face.C.
References Foam::mag(), nPoints, Vector< scalar >::zero, and Vector< Cmpt >::zero.
Referenced by octreeDataFaceList::calcNearest(), octreeDataFaceList::calcSign(), and octreeDataFaceList::getSampleType().
Type average | ( | const pointField & | meshPoints, |
const Field< Type > & | f | ||
) | const |
Calculate average value at centroid of face.
Definition at line 51 of file faceTemplates.C.
References Foam::mag(), and nPoints.
|
inline |
Scalar magnitude.
Definition at line 97 of file faceI.H.
References Foam::mag().
Referenced by face::areaInContact().
Foam::vector normal | ( | const pointField & | p | ) | const |
Vector normal; magnitude is equal to area of face.
Definition at line 541 of file face.C.
References nPoints, and Vector< scalar >::zero.
Referenced by faceTriangulation::faceTriangulation(), and octreeDataFaceList::getSampleType().
Foam::face reverseFace | ( | ) | const |
Return face with reverse direction.
Definition at line 600 of file face.C.
References f(), List< T >::size(), and Foam::xferMove().
Referenced by faceMesh::flip(), and removeCells::setRefinement().
Foam::label which | ( | const label | globalIndex | ) | const |
|
inline |
Next vertex on face.
Definition at line 117 of file faceI.H.
Referenced by primitiveMesh::checkEdgeAlignment(), primitiveMeshGeometry::checkFaceTwist(), polyMeshGeometry::checkFaceTwist(), polyMeshGeometry::checkTriangleTwist(), primitiveMesh::faceEdges(), combineFaces::getOutsideFace(), meshTriangulation::meshTriangulation(), edgeFaceCirculator::setCanonical(), and boundaryCutter::setRefinement().
|
inline |
Foam::scalar sweptVol | ( | const pointField & | oldPoints, |
const pointField & | newPoints | ||
) | const |
Foam::pointHit ray | ( | const point & | p, |
const vector & | n, | ||
const pointField & | meshPoints, | ||
const intersection::algorithm | alg = intersection::FULL_RAY , |
||
const intersection::direction | dir = intersection::VECTOR |
||
) | const |
Return potential intersection with face with a ray starting.
at p, direction n (does not need to be normalized) Does face-center decomposition and returns triangle intersection point closest to p. Face-center is calculated from point average. For a hit, the distance is signed. Positive number represents the point in front of triangle In case of miss the point is the nearest point on the face and the distance is the distance between the intersection point and the original point. The half-ray or full-ray intersection and the contact sphere adjustment of the projection vector is set by the intersection parameters
Definition at line 46 of file faceIntersection.C.
References Foam::average(), PointHit< Point >::distance(), PointHit< Point >::eligibleMiss(), f(), PointHit< Point >::hit(), PointHit< Point >::hitPoint(), Foam::mag(), PointHit< Point >::missPoint(), nPoints, points, PointHit< Point >::setDistance(), PointHit< Point >::setHit(), PointHit< Point >::setMiss(), and PointHit< Point >::setPoint().
Referenced by octreeDataFaceList::intersects(), treeDataCell::intersects(), and octreeDataFace::intersects().
Foam::pointHit intersection | ( | const point & | p, |
const vector & | q, | ||
const point & | ctr, | ||
const pointField & | meshPoints, | ||
const intersection::algorithm | alg, | ||
const scalar | tol = 0.0 |
||
) | const |
Fast intersection with a ray.
Does face-center decomposition and returns triangle intersection point closest to p. See triangle::intersection for details.
Definition at line 133 of file faceIntersection.C.
References PointHit< Point >::distance(), f(), forAll, PointHit< Point >::hit(), PointHit< Point >::hitPoint(), Foam::mag(), PointHit< Point >::setDistance(), PointHit< Point >::setHit(), and PointHit< Point >::setPoint().
Foam::pointHit nearestPoint | ( | const point & | p, |
const pointField & | meshPoints | ||
) | const |
Return nearest point to face.
Definition at line 180 of file faceIntersection.C.
References PointHit< Point >::distance(), f(), PointHit< Point >::hit(), PointHit< Point >::hitPoint(), Foam::mag(), PointHit< Point >::missPoint(), nPoints, PointHit< Point >::setDistance(), PointHit< Point >::setHit(), PointHit< Point >::setMiss(), PointHit< Point >::setPoint(), and List< T >::size().
Referenced by octreeDataFaceList::calcNearest(), octreeDataFace::calcNearest(), treeDataFace::findNearest(), meshSearch::findNearestBoundaryFace(), sampledSet::findNearFace(), octreeDataFaceList::getSampleType(), octreeDataFace::getSampleType(), and treeDataFace::getVolumeType().
Foam::scalar contactSphereDiameter | ( | const point & | p, |
const vector & | n, | ||
const pointField & | meshPoints | ||
) | const |
Return contact sphere diameter.
Definition at line 34 of file faceContactSphere.C.
References Foam::mag(), and p.
Foam::scalar areaInContact | ( | const pointField & | points, |
const scalarField & | v | ||
) | const |
Return area in contact, given the displacement in vertices.
Definition at line 36 of file faceAreaInContact.C.
References forAll, face::mag(), Foam::mag(), List< T >::setSize(), and List< T >::size().
Foam::edgeList edges | ( | ) | const |
Return edges in face point ordering, i.e. edges()[0] is edge.
between [0] and [1]
Definition at line 693 of file face.C.
References e, and List< T >::size().
Referenced by Foam::polyMeshZipUpCells().
|
inline |
int edgeDirection | ( | const edge & | e | ) | const |
Return the edge direction on the face.
+1: forward (counter-clockwise) on the face
Definition at line 713 of file face.C.
References edge::end(), forAll, and edge::start().
|
inline |
Number of triangles after splitting.
Definition at line 130 of file faceI.H.
Referenced by boundaryMesh::getNTris(), STARCDsurfaceFormat< Face >::read(), boundaryMesh::triangulate(), triSurfaceTools::triangulate(), boundaryMesh::triangulateLocal(), and STARCD::writeSurface().
Foam::label nTriangles | ( | const pointField & | points | ) | const |
Foam::label triangles | ( | const pointField & | points, |
label & | triI, | ||
faceList & | triFaces | ||
) | const |
Split into triangles using existing points.
Result in triFaces[triI..triI+nTri]. Splits intelligently to maximize triangle quality. Returns number of faces created.
Definition at line 764 of file face.C.
Referenced by STARCDsurfaceFormat< Face >::read(), boundaryMesh::triangulate(), MeshedSurface< Face >::triangulate(), triSurfaceTools::triangulate(), boundaryMesh::triangulateLocal(), and STARCD::writeSurface().
Foam::label triangles | ( | const pointField & | points, |
DynamicList< face, SizeInc, SizeMult, SizeDiv > & | triFaces | ||
) | const |
Split into triangles using existing points.
Append to DynamicList. Returns number of faces created.
Definition at line 33 of file faceTemplates.C.
References DynamicList< T, SizeInc, SizeMult, SizeDiv >::setSize(), and List< T >::size().
Foam::label nTrianglesQuads | ( | const pointField & | points, |
label & | nTris, | ||
label & | nQuads | ||
) | const |
Foam::label trianglesQuads | ( | const pointField & | points, |
label & | triI, | ||
label & | quadI, | ||
faceList & | triFaces, | ||
faceList & | quadFaces | ||
) | const |
compare faces
0: different +1: identical -1: same face, but different orientation
Definition at line 305 of file face.C.
References b, face::collapse(), forAll, and List< T >::size().
Referenced by Foam::operator!=(), and Foam::operator==().