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) |
Public Member Functions inherited from Pair< label > | |
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... | |
Public Member Functions inherited from FixedList< T, N > | |
FixedList ()=default | |
Default construct. More... | |
FixedList (const T &val) | |
Construct and initialize all entries to given value. More... | |
FixedList (const Foam::zero) | |
Construct and initialize all entries to zero. More... | |
FixedList (const T list[N]) | |
Copy construct from C-array (deprecated) More... | |
FixedList (const FixedList< T, N > &list) | |
Copy construct. More... | |
FixedList (FixedList< T, N > &&list) | |
FixedList (std::initializer_list< T > list) | |
Construct from an initializer list. Runtime size check. More... | |
FixedList (const UList< T > &list) | |
Construct from UList. Runtime size check. More... | |
template<unsigned AnyNum> | |
FixedList (const FixedList< T, AnyNum > &list, const FixedList< label, N > &indices) | |
Copy construct from a subset of the input. No size check. More... | |
FixedList (const UList< T > &list, const FixedList< label, N > &indices) | |
Copy construct from a subset of the input. No size check. More... | |
FixedList (const SLList< T > &list) | |
Construct from SLList. Runtime size check. More... | |
FixedList (Istream &is) | |
Construct from Istream. More... | |
autoPtr< FixedList< T, N > > | clone () const |
Clone. More... | |
const T * | cdata () const noexcept |
Return pointer to the underlying array serving as data storage. More... | |
T * | data () noexcept |
Return pointer to the underlying array serving as data storage. More... | |
const char * | cdata_bytes () const noexcept |
Return pointer to the underlying array serving as data storage,. More... | |
char * | data_bytes () noexcept |
Return pointer to the underlying array serving as data storage,. More... | |
T & | first () noexcept |
The first element of the list, position [0]. More... | |
const T & | first () const noexcept |
The first element of the list, position [0]. More... | |
T & | last () noexcept |
The last element of the list, position [N-1]. More... | |
const T & | last () const noexcept |
The last element of the list, position [N-1]. More... | |
label | fcIndex (const label i) const |
const T & | fcValue (const label i) const |
Return forward circular value (ie, next value in the list) More... | |
T & | fcValue (const label i) |
Return forward circular value (ie, next value in the list) More... | |
label | rcIndex (const label i) const |
const T & | rcValue (const label i) const |
Return reverse circular value (ie, previous value in the list) More... | |
T & | rcValue (const label i) |
Return reverse circular value (ie, previous value in the list) More... | |
void | checkStart (const label start) const |
Check start is within valid range [0,size) More... | |
void | checkSize (const label size) const |
Check size is identical to template parameter N. More... | |
void | checkIndex (const label i) const |
Check index is within valid range [0,N) More... | |
bool | uniform () const |
True if all entries have identical values, and list is non-empty. More... | |
label | find (const T &val, label pos=0) const |
Find index of the first occurrence of the value. More... | |
label | rfind (const T &val, label pos=-1) const |
Find index of the last occurrence of the value. More... | |
bool | found (const T &val, label pos=0) const |
True if the value if found in the list. More... | |
void | resize (const label n) |
Dummy function, to make FixedList consistent with List. More... | |
void | resize_nocopy (const label n) |
Dummy function, to make FixedList consistent with List. More... | |
void | setSize (const label n) |
Dummy function, to make FixedList consistent with List. More... | |
void | fill (const T &val) |
Assign all entries to the given value. More... | |
void | fill (const Foam::zero) |
Assign all entries to zero. More... | |
void | moveFirst (const label i) |
Move element to the first position. More... | |
void | moveLast (const label i) |
Move element to the last position. More... | |
void | swapFirst (const label i) |
Swap element with the first element. More... | |
void | swapLast (const label i) |
Swap element with the last element. More... | |
void | transfer (FixedList< T, N > &list) |
T & | operator[] (const label i) |
Return element of FixedList. More... | |
const T & | operator[] (const label i) const |
Return element of constant FixedList. More... | |
void | operator= (const T list[N]) |
Assignment to array operator. Takes linear time. More... | |
void | operator= (const UList< T > &list) |
Assignment to UList operator. Takes linear time. More... | |
void | operator= (const SLList< T > &list) |
Assignment to SLList operator. Takes linear time. More... | |
void | operator= (std::initializer_list< T > list) |
Assignment to an initializer list. Takes linear time. More... | |
void | operator= (const T &val) |
Assign all entries to the given value. fill() More... | |
void | operator= (const Foam::zero) |
Assign all entries to zero. fill() More... | |
void | operator= (const FixedList< T, N > &list) |
Copy assignment. More... | |
void | operator= (FixedList< T, N > &&list) |
Move assignment. More... | |
iterator | begin () noexcept |
Return an iterator to begin traversing the FixedList. More... | |
iterator | end () noexcept |
Return an iterator to end traversing the FixedList. More... | |
const_iterator | cbegin () const noexcept |
Return const_iterator to begin traversing the constant FixedList. More... | |
const_iterator | cend () const noexcept |
Return const_iterator to end traversing the constant FixedList. More... | |
const_iterator | begin () const noexcept |
Return const_iterator to begin traversing the constant FixedList. More... | |
const_iterator | end () const noexcept |
Return const_iterator to end traversing the constant FixedList. More... | |
reverse_iterator | rbegin () |
Return reverse_iterator to begin reverse traversing the FixedList. More... | |
reverse_iterator | rend () |
Return reverse_iterator to end reverse traversing the 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... | |
const_reverse_iterator | rbegin () const |
Return const_reverse_iterator to begin reverse traversing FixedList. More... | |
const_reverse_iterator | rend () const |
Return const_reverse_iterator to end reverse traversing FixedList. More... | |
void | swap (FixedList< T, N > &other) |
Swap lists by swapping the content of the individual list elements. More... | |
bool | operator== (const FixedList< T, N > &list) const |
Equality operation on FixedLists of the same type. More... | |
bool | operator!= (const FixedList< T, N > &list) const |
The opposite of the equality operation. Takes linear time. More... | |
bool | operator< (const FixedList< T, N > &list) const |
Compare two FixedLists lexicographically. Takes linear time. More... | |
bool | operator> (const FixedList< T, N > &list) const |
Compare two FixedLists lexicographically. Takes linear time. More... | |
bool | operator<= (const FixedList< T, N > &list) const |
Return true if !(a > b). Takes linear time. More... | |
bool | operator>= (const FixedList< T, N > &list) const |
Return true if !(a < b). Takes linear time. More... | |
Istream & | readList (Istream &is) |
Read from Istream, discarding contents of existing List. More... | |
void | writeEntry (const word &keyword, Ostream &os) const |
Write the list as a dictionary entry with keyword. More... | |
Ostream & | writeList (Ostream &os, const label shortLen=0) const |
Write List, with line-breaks in ASCII when length exceeds shortLen. More... | |
Static Public Member Functions | |
static int | compare (const edge &a, const edge &b) |
Compare edges. More... | |
Static Public Member Functions inherited from Pair< label > | |
static int | compare (const Pair< label > &a, const Pair< label > &b) |
Compare Pairs. More... | |
Static Public Member Functions inherited from FixedList< T, N > | |
static const FixedList< T, N > & | null () |
Return a null FixedList. More... | |
static std::streamsize | size_bytes () noexcept |
Number of contiguous bytes for the list data,. More... | |
static std::streamsize | byteSize () |
static constexpr bool | empty () noexcept |
Always false since zero-sized FixedList is compile-time disabled. More... | |
static constexpr label | size () noexcept |
Return the number of elements in the FixedList. More... | |
static constexpr unsigned | max_size () noexcept |
The dimensioned size (template parameter N) of the FixedList. More... | |
Static Public Attributes | |
static const char *const | typeName = "edge" |
Additional Inherited Members | |
Public Types inherited from FixedList< T, N > | |
typedef T | value_type |
The value type the FixedList contains. More... | |
typedef T * | pointer |
The pointer type for non-const access to value_type items. More... | |
typedef const T * | const_pointer |
The pointer type for const access to value_type items. More... | |
typedef T & | reference |
The type used for storing into value_type objects. More... | |
typedef const T & | const_reference |
The type used for reading from constant value_type objects. More... | |
typedef T * | iterator |
Random access iterator for traversing FixedList. More... | |
typedef const T * | const_iterator |
Random access iterator for traversing FixedList. More... | |
typedef label | size_type |
The type to represent the size of a FixedList. More... | |
typedef label | difference_type |
The difference between iterator objects. More... | |
typedef std::reverse_iterator< iterator > | reverse_iterator |
Reverse iterator (non-const access) More... | |
typedef std::reverse_iterator< const_iterator > | const_reverse_iterator |
Reverse iterator (const access) More... | |
Protected Member Functions inherited from FixedList< T, N > | |
void | writeEntry (Ostream &os) const |
Write the FixedList with its compound type. More... | |
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 directionInfo::edgeToFaceIndex(), cellFeatures::isFeaturePoint(), PrimitivePatch< FaceList, PointField >::meshEdge(), PrimitivePatch< FaceList, 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 directionInfo::edgeToFaceIndex(), 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.
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 b, and Pair< label >::compare().
Referenced by triSurfaceMesh::addFaceToEdge(), 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 FixedList< T, N >::first(), and 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().