An edge is a list of two point labels. The functionality it provides supports the discretisation on a 2-D flat mesh. More...
Classes | |
struct | Hash |
Deprecated(2021-04) hashing functor. Use hasher() More... | |
struct | hasher |
Hashing functor for edge (commutative) More... | |
Public Member Functions | |
edge () | |
Default construct, with invalid point labels (-1) More... | |
edge (const label from, const label to) | |
Construct from two point labels. More... | |
edge (const labelPair &pair) | |
Construct from pair of point labels. More... | |
edge (const FixedList< label, 2 > &list) | |
Construct from list of point labels. More... | |
edge (const label from, const label to, const bool doSort) | |
Construct from two point labels, sorted with first less-than second. More... | |
edge (const FixedList< label, 2 > &list, const bool doSort) | |
Construct from list, sorted with first less-than second. More... | |
edge (const UList< label > &list, const FixedList< label, 2 > &indices) | |
Copy construct from a subset of point labels. More... | |
edge (Istream &is) | |
Construct from Istream. More... | |
label | start () const |
Return start (first) vertex label. More... | |
label & | start () |
Return start (first) vertex label. More... | |
label | end () const |
Return end (last/second) vertex label. More... | |
label & | end () |
Return end (last/second) vertex label. More... | |
edge | reverseEdge () const |
Return reverse edge as copy. More... | |
label | minVertex () const |
Return the smallest point label used by the edge. More... | |
label | maxVertex () const |
Return the largest point label used by the edge. More... | |
bool | valid () const |
Return true if the vertices are unique and non-negative. More... | |
bool | found (const label pointLabel) const |
Return true if point label is found in edge. More... | |
label | which (const label pointLabel) const |
Return local index (0,1) of point label in edge -1 on failure. More... | |
bool | connects (const edge &other) const |
Do the edges share a common vertex index? More... | |
label | commonVertex (const edge &other) const |
Return vertex common with other edge or -1 on failure. More... | |
label | otherVertex (const label pointLabel) const |
Given the point label for one vertex, return the other one. More... | |
label | collapse () |
label | count () const |
Return the number of unique, valid (non -1) point labels. More... | |
bool | empty () const |
Return true if edge has no valid point labels. More... | |
void | clear () |
'Clears' edge by setting both ends to invalid point labels. More... | |
bool | insert (const label index) |
Fill any open slot with the index if it did not previously exist. More... | |
template<class InputIterator > | |
label | insert (InputIterator begIter, InputIterator endIter) |
Insert values, using begin/end iterators. More... | |
label | insert (std::initializer_list< label > list) |
Fill open slots with the indices if they did not previously exist. More... | |
template<unsigned N> | |
label | insert (const FixedList< label, N > &list) |
Fill open slots with the indices if they did not previously exist. More... | |
label | insert (const labelUList &list) |
Fill open slots with the indices if they did not previously exist. More... | |
label | erase (const label index) |
Remove an existing index from the edge and set its location to '-1'. More... | |
template<class InputIterator > | |
label | erase (InputIterator begIter, InputIterator endIter) |
Remove values, using begin/end iterators. More... | |
label | erase (std::initializer_list< label > list) |
Remove existing indices from the edge and set locations to '-1'. More... | |
template<unsigned N> | |
label | erase (const FixedList< label, N > &list) |
Remove existing indices from the edge and set locations to '-1'. More... | |
label | erase (const labelUList &list) |
Remove existing indices from the edge and set locations to '-1'. More... | |
point | centre (const UList< point > &pts) const |
Return centre point (centroid) of the edge. More... | |
vector | vec (const UList< point > &pts) const |
Return the vector (end - start) More... | |
vector | unitVec (const UList< point > &pts) const |
Return the unit vector (end - start) More... | |
scalar | mag (const UList< point > &pts) const |
Return scalar magnitude of the edge. More... | |
linePointRef | line (const UList< point > &pts) const |
Return edge line. More... | |
label & | operator[] (const label i) |
Return edge element. Index should be limited to 0/1. More... | |
const label & | operator[] (const label i) const |
Return constant edge element. Index should be limited to 0/1. More... | |
unsigned | hash_code (unsigned seed=0) const |
The (commutative) hash value for edge, hashes lower value first. More... | |
template<class InputIterator> | |
Foam::label | insert (InputIterator begIter, InputIterator endIter) |
template<unsigned N> | |
Foam::label | insert (const FixedList< label, N > &list) |
template<class InputIterator> | |
Foam::label | erase (InputIterator begIter, InputIterator endIter) |
template<unsigned N> | |
Foam::label | erase (const FixedList< label, N > &list) |
![]() | |
Pair ()=default | |
Default construct. More... | |
Pair (const label &f, const label &s) | |
Copy construct from components. More... | |
Pair (label &&f, label &&s) | |
Move construct from components. More... | |
Pair (const std::pair< label, label > &vals) | |
Copy construct from std::pair. More... | |
Pair (std::pair< label, label > &&vals) | |
Move construct from std::pair. More... | |
Pair (const FixedList< label, 2 > &list) | |
Copy construct FixedList of two items. More... | |
Pair (const label &f, const label &s, const bool doSort) | |
Copy construct, optionally sorted with first less-than second. More... | |
Pair (const FixedList< label, 2 > &list, const bool doSort) | |
Copy construct, optionally sorted with first less-than second. More... | |
Pair (Istream &is) | |
Construct from Istream. More... | |
const label & | second () const noexcept |
Return second element, which is also the last element. More... | |
label & | second () noexcept |
Return second element, which is also the last element. More... | |
const label & | other (const label &a) const |
Return other element. More... | |
bool | sorted () const |
True if first() is less-than second() More... | |
void | flip () |
Flip the Pair in-place. More... | |
void | sort () |
Sort so that first() is less-than second() More... | |
Static Public Member Functions | |
static int | compare (const edge &a, const edge &b) |
Compare edges. More... | |
![]() | |
static int | compare (const Pair< label > &a, const Pair< label > &b) |
Compare Pairs. More... | |
Static Public Attributes | |
static const char *const | typeName = "edge" |
An edge is a list of two point labels. The functionality it provides supports the discretisation on a 2-D flat mesh.
The edge is implemented as a Pair/FixedList of labels. As well as geometrically relevant methods, it also provides methods similar to HashSet for additional convenience. Valid point labels are always non-negative (since they correspond to addressing within the mesh). The value '-1' is used to tag invalid point labels that correspond conceptually to open 'slots', which can be filled with a HashSet-like functionality.
|
inline |
Default construct, with invalid point labels (-1)
Definition at line 41 of file edgeI.H.
Referenced by cellShape::edge().
|
inline |
|
inline |
Return start (first) vertex label.
Definition at line 95 of file edgeI.H.
Referenced by cellFeatures::isFeaturePoint(), PrimitivePatch<::Foam::List< labelledTri >, pointField >::meshEdge(), PrimitivePatch<::Foam::List< labelledTri >, pointField >::meshEdges(), slidingInterface::modifyMotionPoints(), line< Point, PointRef >::nearestDist(), Foam::polyMeshZipUpCells(), PatchTools::sortedPointEdges(), and extendedEdgeMesh::sortPointsAndEdges().
|
inline |
|
inline |
Return end (last/second) vertex label.
Definition at line 106 of file edgeI.H.
Referenced by cellFeatures::isFeaturePoint(), slidingInterface::modifyMotionPoints(), line< Point, PointRef >::nearestDist(), Foam::polyMeshZipUpCells(), PatchTools::sortedPointEdges(), and extendedEdgeMesh::sortPointsAndEdges().
|
inline |
|
inline |
Return reverse edge as copy.
No special handling of negative point labels.
Definition at line 225 of file edgeI.H.
Referenced by hexCell::reverseEdge(), and tetCell::reverseEdge().
|
inline |
|
inline |
|
inline |
Return true if the vertices are unique and non-negative.
Definition at line 130 of file edgeI.H.
Referenced by multiWorldConnections::addConnectionById(), multiWorldConnections::addConnectionByName(), multiWorldConnections::getCommById(), and multiWorldConnections::getCommByName().
|
inline |
Return true if point label is found in edge.
Always false for a negative label.
Definition at line 136 of file edgeI.H.
Referenced by edge::commonVertex(), edge::connects(), intersectedSurface::intersectedSurface(), patchEdgeFaceRegions::updateEdge(), and patchEdgeFaceRegions::updateFace().
|
inline |
Do the edges share a common vertex index?
Negative point labels never connect.
Definition at line 166 of file edgeI.H.
References edge::found().
Referenced by Foam::calcProximityOfFeatureEdges().
|
inline |
Return vertex common with other edge or -1 on failure.
Negative point labels are never considered common between edges.
Definition at line 172 of file edgeI.H.
References edge::found().
Referenced by removePoints::countPointUsage(), and GTSsurfaceFormat< Face >::read().
|
inline |
Given the point label for one vertex, return the other one.
No special treatment for negative point labels.
Definition at line 188 of file edgeI.H.
Referenced by removePoints::countPointUsage(), searchableExtrudedCircle::findParametricNearest(), and GTSsurfaceFormat< Face >::read().
|
inline |
|
inline |
Return the number of unique, valid (non -1) point labels.
Similar to a HashTable::size().
Definition at line 238 of file edgeI.H.
References n.
|
inline |
|
inline |
|
inline |
Fill any open slot with the index if it did not previously exist.
Returns true on success. A negative label never inserts. Similar to a HashTable::insert().
|
inline |
Insert values, using begin/end iterators.
|
inline |
Fill open slots with the indices if they did not previously exist.
Returns true on success. Negative labels never insert. Return the number of slots filled. Similar to a HashTable::insert().
Definition at line 315 of file edgeI.H.
References insert().
Fill open slots with the indices if they did not previously exist.
Returns true on success. Negative labels never insert. Return the number of slots filled. Similar to a HashTable::insert().
|
inline |
Fill open slots with the indices if they did not previously exist.
Returns true on success. Negative labels never insert. Return the number of slots filled. Similar to a HashTable::insert().
Definition at line 328 of file edgeI.H.
References UList< T >::begin(), UList< T >::end(), and insert().
|
inline |
Remove an existing index from the edge and set its location to '-1'.
Returns the number of changes. A negative label never removes. Similar to a HashTable::erase().
Definition at line 334 of file edgeI.H.
References n.
|
inline |
Remove values, using begin/end iterators.
|
inline |
Remove existing indices from the edge and set locations to '-1'.
Returns the number of changes.
|
inline |
Remove existing indices from the edge and set locations to '-1'.
Returns the number of changes.
Definition at line 394 of file edgeI.H.
References UList< T >::begin(), UList< T >::end(), and erase().
|
inline |
Return centre point (centroid) of the edge.
No special handling of negative point labels.
Definition at line 402 of file edgeI.H.
References Foam::abort(), Foam::FatalError, and FatalErrorInFunction.
Referenced by surfaceFeatures::nearestEdges().
|
inline |
Return the vector (end - start)
No special handling of negative point labels.
Definition at line 417 of file edgeI.H.
References Foam::abort(), Foam::FatalError, and FatalErrorInFunction.
Referenced by searchableExtrudedCircle::findParametricNearest(), slidingInterface::modifyMotionPoints(), surfaceFeatures::nearestFeatEdge(), extendedEdgeMesh::sortPointsAndEdges(), and cuttingSurfaceBase::walkCellCuts().
|
inline |
Return the unit vector (end - start)
No special handling of negative point labels.
Definition at line 432 of file edgeI.H.
References Foam::abort(), Foam::FatalError, FatalErrorInFunction, Foam::mag(), s, and Foam::Zero.
Referenced by cellFeatures::isFeaturePoint().
Return scalar magnitude of the edge.
No special handling of negative point labels.
Definition at line 450 of file edgeI.H.
References Foam::mag().
Referenced by face::longestEdge(), and surfaceFeatures::trimFeatures().
|
inline |
Return edge line.
No special handling of negative point labels.
Definition at line 456 of file edgeI.H.
References Foam::abort(), Foam::FatalError, and FatalErrorInFunction.
Referenced by slidingInterface::modifyMotionPoints(), and syncTools::syncEdgeList().
Compare edges.
Definition at line 33 of file edgeI.H.
References Foam::constant::physicoChemical::b, and Pair< label >::compare().
Referenced by Foam::operator!=(), Foam::operator==(), and syncTools::syncEdgeList().
|
inline |
Return edge element. Index should be limited to 0/1.
Definition at line 473 of file edgeI.H.
References Foam::abort(), Foam::FatalError, and FatalErrorInFunction.
|
inline |
Return constant edge element. Index should be limited to 0/1.
Definition at line 486 of file edgeI.H.
References Foam::abort(), Foam::FatalError, and FatalErrorInFunction.
|
inline |
The (commutative) hash value for edge, hashes lower value first.
Definition at line 288 of file edge.H.
References Pair< label >::second().
Referenced by edge::hasher::operator()().
|
inline |
Definition at line 322 of file edgeI.H.
References FixedList< T, N >::begin(), FixedList< T, N >::end(), and insert().
|
inline |
Definition at line 388 of file edgeI.H.
References FixedList< T, N >::begin(), FixedList< T, N >::end(), and erase().