A face is a list of labels corresponding to mesh vertices. More...
Public Types | |
enum | proxType { NONE = 0, POINT, EDGE } |
The proximity classifications. More... | |
Public Types inherited from List< label > | |
typedef SubList< label > | subList |
Declare type of subList. More... | |
Public Member Functions | |
constexpr | face () noexcept=default |
Default construct. More... | |
face (const label sz) | |
Construct given size, with invalid point labels (-1) More... | |
face (const labelUList &list) | |
Copy construct from list of point labels. More... | |
face (labelList &&list) | |
Move construct from list of point labels. More... | |
face (std::initializer_list< label > list) | |
Copy construct from an initializer list of point labels. More... | |
template<unsigned N> | |
face (const FixedList< label, N > &list) | |
Copy construct from list of point labels. More... | |
face (const labelUList &list, const labelUList &indices) | |
Copy construct from subset of point labels. More... | |
template<unsigned N> | |
face (const labelUList &list, const FixedList< label, N > &indices) | |
Copy construct from subset of point labels. More... | |
face (const triFace &f) | |
Copy construct from triFace. More... | |
face (Istream &is) | |
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 UList< point > &points) const |
Return the points corresponding to this face. More... | |
point | centre (const UList< point > &points) const |
Centre point of face. More... | |
template<class Type > | |
Type | average (const UList< point > &meshPoints, const Field< Type > &fld) const |
Calculate average value at centroid of face. More... | |
vector | areaNormal (const UList< point > &p) const |
The area normal - with magnitude equal to area of face. More... | |
vector | unitNormal (const UList< point > &p) const |
The unit normal. More... | |
FOAM_DEPRECATED_FOR (2018-12, "areaNormal() or unitNormal()") vector normal(const UList< point > &p) const | |
Legacy name for areaNormal() More... | |
scalar | mag (const UList< point > &p) const |
Magnitude of face area. More... | |
face | reverseFace () const |
Return face with reverse direction. More... | |
bool | found (const label pointLabel) const |
Return true if the point label is found in face. More... | |
label | which (const label pointLabel) const |
Find local index on face for the point label,. More... | |
label | nextLabel (const label i) const |
Next vertex on face. More... | |
label | prevLabel (const label i) const |
Previous vertex on face. More... | |
scalar | sweptVol (const UList< point > &oldPoints, const UList< point > &newPoints) const |
Return the volume swept out by the face when its points move. More... | |
tensor | inertia (const UList< point > &p, const point &refPt=vector::zero, scalar density=1.0) const |
pointHit | ray (const point &p, const vector &n, const UList< point > &meshPoints, const intersection::algorithm alg=intersection::FULL_RAY, const intersection::direction dir=intersection::VECTOR) const |
pointHit | intersection (const point &p, const vector &q, const point &ctr, const UList< point > &meshPoints, const intersection::algorithm alg, const scalar tol=0.0) const |
Fast intersection with a ray. More... | |
pointHit | nearestPoint (const point &p, const UList< point > &meshPoints) const |
Return nearest point to face. More... | |
pointHit | nearestPointClassify (const point &p, const UList< point > &meshPoints, label &nearType, label &nearLabel) const |
Return nearest point to face and classify it: More... | |
int | sign (const point &p, const UList< point > &points, const scalar tol=SMALL) const |
scalar | contactSphereDiameter (const point &p, const vector &n, const UList< point > &meshPoints) const |
Return contact sphere diameter. More... | |
scalar | areaInContact (const UList< point > &meshPoints, const scalarField &v) const |
Return area in contact, given the displacement in vertices. 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 &e) const |
The edge direction on the face. More... | |
label | longestEdge (const UList< point > &pts) const |
Find the longest edge on a face. More... | |
label | nTriangles () const |
Number of triangles after splitting. More... | |
label | nTriangles (const UList< point > &unused) const |
Number of triangles after splitting. More... | |
label | triangles (const UList< point > &points, label &triI, faceList &triFaces) const |
Split into triangles using existing points. More... | |
template<int SizeMin> | |
label | triangles (const UList< point > &points, DynamicList< face, SizeMin > &triFaces) const |
Split into triangles using existing points. More... | |
label | nTrianglesQuads (const UList< point > &points, label &nTris, label &nQuads) const |
Number of triangles and quads after splitting. More... | |
label | trianglesQuads (const UList< point > &points, label &triI, label &quadI, faceList &triFaces, faceList &quadFaces) const |
Split into triangles and quads. More... | |
template<int SizeMin> | |
Foam::label | triangles (const UList< point > &points, DynamicList< face, SizeMin > &triFaces) const |
Public Member Functions inherited from List< label > | |
constexpr | List () noexcept |
Null constructor. More... | |
List (const label len) | |
Construct with given size. More... | |
List (const label len, const label &val) | |
Construct with given size and value for all elements. More... | |
List (const label len, const Foam::zero) | |
Construct with given size initializing all elements to zero. More... | |
List (const Foam::one, const label &val) | |
Construct with length=1, copying the value as the only content. More... | |
List (const Foam::one, label &&val) | |
Construct with length=1, moving the value as the only content. More... | |
List (const Foam::one, const Foam::zero) | |
Construct with length=1, initializing content to zero. More... | |
List (const List< label > &a) | |
Copy construct from list. More... | |
List (const UList< label > &a) | |
Copy construct contents from list. More... | |
List (List< label > &a, bool reuse) | |
Construct as copy or re-use as specified. More... | |
List (const UList< label > &list, const labelUList &indices) | |
Copy construct subset of list. More... | |
List (const UList< label > &list, const FixedList< label, N > &indices) | |
Copy construct subset of list. More... | |
List (InputIterator begIter, InputIterator endIter) | |
Construct given begin/end iterators. More... | |
List (const FixedList< label, N > &list) | |
Construct as copy of FixedList<T, N> More... | |
List (const PtrList< label > &list) | |
Construct as copy of PtrList<T> More... | |
List (const SLList< label > &list) | |
Construct as copy of SLList<T> More... | |
List (const IndirectListBase< label, Addr > &list) | |
Construct as copy of IndirectList contents. More... | |
List (std::initializer_list< label > list) | |
Construct from an initializer list. More... | |
List (List< label > &&list) | |
Move construct from List. More... | |
List (DynamicList< label, SizeMin > &&list) | |
Move construct from DynamicList. More... | |
List (SortableList< label > &&list) | |
Move construct from SortableList. More... | |
List (SLList< label > &&list) | |
Move construct from SLList. More... | |
List (Istream &is) | |
Construct from Istream. More... | |
autoPtr< List< label > > | clone () const |
Clone. More... | |
~List () | |
Destructor. More... | |
void | resize (const label newSize) |
Adjust allocated size of list. More... | |
void | resize (const label newSize, const label &val) |
Adjust allocated size of list and set val for new elements. More... | |
void | resize (const label newSize) |
void | setSize (const label newSize) |
Alias for resize(const label) More... | |
void | setSize (const label newSize, const label &val) |
Alias for resize(const label, const T&) More... | |
void | clear () |
Clear the list, i.e. set size to zero. More... | |
void | append (const label &val) |
Append an element at the end of the list. More... | |
void | append (label &&val) |
Move append an element at the end of the list. More... | |
void | append (const UList< label > &list) |
Append a List to the end of this list. More... | |
void | append (const IndirectListBase< label, Addr > &list) |
Append IndirectList contents at the end of this list. More... | |
void | transfer (List< label > &list) |
void | transfer (DynamicList< label, SizeMin > &list) |
void | transfer (SortableList< label > &list) |
label & | newElmt (const label i) |
void | operator= (const UList< label > &a) |
Assignment to UList operator. Takes linear time. More... | |
void | operator= (const List< label > &list) |
Assignment operator. Takes linear time. More... | |
void | operator= (const SLList< label > &list) |
Assignment to SLList operator. Takes linear time. More... | |
void | operator= (const IndirectListBase< label, Addr > &list) |
Assignment from IndirectList. Takes linear time. More... | |
void | operator= (const FixedList< label, N > &list) |
Copy assignment from FixedList. More... | |
void | operator= (std::initializer_list< label > list) |
Assignment to an initializer list. More... | |
void | operator= (const label &val) |
Assignment of all entries to the given value. More... | |
void | operator= (const Foam::zero) |
Assignment of all entries to zero. More... | |
void | operator= (List< label > &&list) |
Move assignment. Takes constant time. More... | |
void | operator= (DynamicList< label, SizeMin > &&list) |
Move assignment. Takes constant time. More... | |
void | operator= (SortableList< label > &&list) |
Move assignment. Takes constant time. More... | |
void | operator= (SLList< label > &&list) |
Move assignment. Takes constant time. More... | |
void | shallowCopy (const UList< label > &)=delete |
No shallowCopy permitted. More... | |
std::enable_if< std::is_same< bool, TypeT >::value, bool >::type | set (const label i, bool val=true) |
A bitSet::set() method for a list of bool. More... | |
Static Public Member Functions | |
static int | compare (const face &a, const face &b) |
Compare faces. More... | |
static bool | sameVertices (const face &a, const face &b) |
Return true if the faces have the same vertices. More... | |
Static Public Member Functions inherited from List< label > | |
static const List< label > & | null () |
Return a null List. More... | |
Static Public Attributes | |
static const char *const | typeName = "face" |
enum proxType |
|
constexprdefaultnoexcept |
|
inlineexplicit |
|
inlineexplicit |
|
inlineexplicit |
|
inline |
|
inline |
Foam::label collapse | ( | ) |
void flip | ( | ) |
Flip the face in-place.
The starting points of the original and flipped face are identical.
Definition at line 469 of file face.C.
References n, and Foam::Swap().
|
inline |
Return the points corresponding to this face.
Definition at line 102 of file faceI.H.
References p.
Referenced by sensitivitySurface::addGeometricSens(), deltaBoundary::cellCenters_d(), NURBS3DVolume::computeControlPointSensitivities(), Bezier::dndbBasedSensitivities(), NURBS3DVolume::dndbBasedSensitivities(), Bezier::dxdbFace(), sensitivitySurfacePoints::finalisePointSensitivities(), NURBS3DVolume::patchDxDbFace(), and advancingFrontAMI::writeIntersectionOBJ().
Foam::point centre | ( | const UList< point > & | points | ) | const |
Centre point of face.
Definition at line 483 of file face.C.
References Foam::mag(), nPoints, points, and Foam::Zero.
Calculate average value at centroid of face.
Definition at line 53 of file faceTemplates.C.
References fld, Foam::mag(), nPoints, and Foam::Zero.
Foam::vector areaNormal | ( | const UList< point > & | p | ) | const |
|
inline |
The unit normal.
Definition at line 122 of file faceI.H.
References Foam::mag(), n, p, s, and Foam::Zero.
|
inline |
Legacy name for areaNormal()
Magnitude of face area.
Definition at line 130 of file faceI.H.
References Foam::mag(), and p.
Referenced by polyPatch::areaFraction(), face::areaInContact(), and cyclicACMIFvPatch::movePoints().
Foam::face reverseFace | ( | ) | const |
Return face with reverse direction.
The starting points of the original and reverse face are identical.
Definition at line 605 of file face.C.
References UList< T >::size().
Referenced by createShellMesh::setRefinement().
|
inline |
|
inline |
Find local index on face for the point label,.
Definition at line 155 of file faceI.H.
References Foam::ListOps::find().
|
inline |
Next vertex on face.
Definition at line 161 of file faceI.H.
Referenced by combineFaces::getOutsideFace(), boundaryCutter::setRefinement(), and tetDecomposer::setRefinement().
|
inline |
Previous vertex on face.
Definition at line 167 of file faceI.H.
Referenced by tetDecomposer::setRefinement().
Return the volume swept out by the face when its points move.
Definition at line 628 of file face.C.
References nPoints, and Foam::constant::mathematical::pi().
Foam::tensor inertia | ( | const UList< point > & | p, |
const point & | refPt = vector::zero , |
||
scalar | density = 1.0 |
||
) | const |
Return the inertia tensor, with optional reference point and density specification
Definition at line 707 of file face.C.
References forAll, p, and Foam::Zero.
Foam::pointHit ray | ( | const point & | p, |
const vector & | n, | ||
const UList< point > & | 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-centre decomposition and returns triangle intersection point closest to p. Face-centre 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 36 of file faceIntersection.C.
References Foam::average(), PointHit< PointType >::distance(), PointHit< PointType >::eligibleMiss(), f(), PointHit< PointType >::hit(), PointHit< PointType >::hitPoint(), Foam::mag(), PointHit< PointType >::missPoint(), n, nPoints, p, points, PointHit< PointType >::setDistance(), PointHit< PointType >::setHit(), PointHit< PointType >::setMiss(), and PointHit< PointType >::setPoint().
Foam::pointHit intersection | ( | const point & | p, |
const vector & | q, | ||
const point & | ctr, | ||
const UList< point > & | meshPoints, | ||
const intersection::algorithm | alg, | ||
const scalar | tol = 0.0 |
||
) | const |
Fast intersection with a ray.
Does face-centre decomposition and returns triangle intersection point closest to p. See triangle::intersection for details.
Definition at line 142 of file faceIntersection.C.
References PointHit< PointType >::distance(), f(), forAll, PointHit< PointType >::hit(), PointHit< PointType >::hitPoint(), Foam::mag(), p, PointHit< PointType >::setDistance(), PointHit< PointType >::setHit(), and PointHit< PointType >::setPoint().
Foam::pointHit nearestPoint | ( | const point & | p, |
const UList< point > & | meshPoints | ||
) | const |
Foam::pointHit nearestPointClassify | ( | const point & | p, |
const UList< point > & | meshPoints, | ||
label & | nearType, | ||
label & | nearLabel | ||
) | const |
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 214 of file faceIntersection.C.
References PointHit< PointType >::distance(), f(), PointHit< PointType >::hit(), PointHit< PointType >::hitPoint(), Foam::mag(), PointHit< PointType >::missPoint(), triangle< Point, PointRef >::nearestPointClassify(), nPoints, p, PointHit< PointType >::setDistance(), PointHit< PointType >::setHit(), PointHit< PointType >::setMiss(), and PointHit< PointType >::setPoint().
The sign for the side of the face plane the point is on, using three evenly distributed face points for the estimated normal.
Uses the supplied tolerance for rounding around zero.
Definition at line 315 of file faceIntersection.C.
Foam::scalar contactSphereDiameter | ( | const point & | p, |
const vector & | n, | ||
const UList< point > & | meshPoints | ||
) | const |
Return contact sphere diameter.
Definition at line 36 of file faceContactSphere.C.
References Foam::mag(), n, and p.
Foam::scalar areaInContact | ( | const UList< point > & | meshPoints, |
const scalarField & | v | ||
) | const |
Return area in contact, given the displacement in vertices.
Definition at line 35 of file faceAreaInContact.C.
References forAll, face::mag(), Foam::mag(), and List< T >::setSize().
Foam::edgeList edges | ( | ) | const |
Return edges in face point ordering,.
i.e. edges()[0] is edge between [0] and [1]
Definition at line 742 of file face.C.
References Foam::constant::electromagnetic::e, and points.
Referenced by Foam::polyMeshZipUpCells().
|
inline |
Return n-th face edge.
Definition at line 143 of file faceI.H.
References n.
Referenced by Foam::checkFireEdges().
int edgeDirection | ( | const edge & | e | ) | const |
The edge direction on the face.
Definition at line 760 of file face.C.
References Foam::constant::electromagnetic::e, and forAll.
|
inline |
label triangles | ( | const UList< point > & | points, |
DynamicList< face, SizeMin > & | triFaces | ||
) | const |
Split into triangles using existing points.
Append to DynamicList. \Return number of faces created.
Compare faces.
Definition at line 300 of file face.C.
References CirculatorBase::ANTICLOCKWISE, Foam::constant::physicoChemical::b, ConstCirculator< ContainerType >::circulate(), CirculatorBase::CLOCKWISE, ConstCirculator< ContainerType >::setFulcrumToIterator(), and ConstCirculator< ContainerType >::setIteratorToFulcrum().
Referenced by Foam::operator!=(), and Foam::operator==().
Return true if the faces have the same vertices.
Definition at line 402 of file face.C.
References Foam::constant::physicoChemical::b, and forAll.
Referenced by blockFace::compare().
Foam::label triangles | ( | const UList< point > & | points, |
DynamicList< face, SizeMin > & | triFaces | ||
) | const |
Definition at line 35 of file faceTemplates.C.
References points, DynamicList< T, SizeMin >::setSize(), and split().