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.
Definition at line 71 of file face.H.
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.
| |
Static Public Member Functions | |
static int | compare (const face &, const face &) |
compare faces
| |
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 &) |
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().
Foam::pointField points | ( | const pointField & | meshPoints ) | const [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< Cmpt >::zero, and Vector< scalar >::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.
Foam::scalar mag | ( | const pointField & | p ) | const [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< Cmpt >::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 |
Foam::label nextLabel | ( | const label | i ) | 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().
Foam::label prevLabel | ( | const label | i ) | const [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 octreeDataFace::intersects(), treeDataCell::intersects(), and octreeDataFaceList::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 octreeDataFace::calcNearest(), octreeDataFaceList::calcNearest(), treeDataFace::findNearest(), meshSearch::findNearestBoundaryFace(), sampledSet::findNearFace(), octreeDataFace::getSampleType(), octreeDataFaceList::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, Foam::mag(), face::mag(), List< T >::setSize(), and List< T >::size().
Foam::label nEdges | ( | ) | const [inline]
|
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().
Foam::edge faceEdge | ( | const label | n ) | const [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().
Foam::label nTriangles | ( | ) | const [inline]
|
Number of triangles after splitting.
Definition at line 130 of file faceI.H.
Referenced by boundaryMesh::getNTris(), STARCDsurfaceFormat< Face >::read(), triSurfaceTools::triangulate(), boundaryMesh::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(), MeshedSurface< Face >::triangulate(), triSurfaceTools::triangulate(), boundaryMesh::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==().