Go to the documentation of this file.
35 template<
class>
class FaceList,
60 const labelList& pEdges = pointEdges[pointi];
62 label nPointEdges = pEdges.size();
64 label edgeI = pEdges[0];
66 label prevFacei = edgeFaces[edgeI][0];
71 label nVisitedEdges = 0;
78 const labelList& eFaces = edgeFaces[edgeI];
80 if (eFaces.size() != 2)
85 label facei = eFaces[0];
86 if (facei == prevFacei)
92 const labelList& fEdges = faceEdges[facei];
96 const label nextEdgeI = fEdges[feI];
97 const edge& nextEdge = edges[nextEdgeI];
102 && (nextEdge.
start() == pointi || nextEdge.
end() == pointi)
113 if (nVisitedEdges > nPointEdges)
116 <<
"Unable to order pointEdges as the face connections "
117 <<
"are not circular" <<
nl
118 <<
" Original pointEdges = " << pEdges <<
nl
119 <<
" New pointEdges = " << newEdgeList
122 newEdgeList = pEdges;
127 }
while (edgeI != pEdges[0]);
129 if (newEdgeList.size() == nPointEdges)
133 if (!newEdgeList.found(pEdges[eI]))
136 <<
"Cannot find all original edges in the new list"
138 <<
" Original pointEdges = " << pEdges <<
nl
139 <<
" New pointEdges = " << newEdgeList
142 newEdgeList = pEdges;
148 sortedPointEdges[pointi] = newEdgeList;
152 return sortedPointEdges;
An edge is a list of two point labels. The functionality it provides supports the discretisation on a...
Ostream & endl(Ostream &os)
Add newline and flush stream.
#define forAll(list, i)
Loop across all elements in list.
label start() const
Return start (first) vertex label.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
DynamicList< T, SizeMin > & append(const T &val)
Append an element to the end of this list.
void clear()
Clear the addressed list, i.e. set the size to zero.
label end() const
Return end (last/second) vertex label.
void setCapacity(const label nElem)
Alter the size of the underlying storage.
#define WarningInFunction
Report a warning using Foam::Warning.
A list of faces which address into the list of points.