38 template<
class>
class FaceList,
56 <<
"edge loops already calculated" 60 const edgeList& patchEdges = edges();
61 label nIntEdges = nInternalEdges();
62 label nBdryEdges = patchEdges.size() - nIntEdges;
91 label currentEdgeI = -1;
93 for (
label edgeI = nIntEdges; edgeI < patchEdges.size(); edgeI++)
95 if (loopNumber[edgeI-nIntEdges] == -1)
102 if (currentEdgeI == -1)
109 DynamicList<label> loop(nBdryEdges);
112 label currentVertI = patchEdges[currentEdgeI].start();
116 loop.append(currentVertI);
118 loopNumber[currentEdgeI - nIntEdges] = loopI;
121 currentVertI = patchEdges[currentEdgeI].otherVertex(currentVertI);
124 const labelList& curEdges = patchPointEdges[currentVertI];
130 label edgeI = curEdges[pI];
132 if (edgeI >= nIntEdges && (loopNumber[edgeI - nIntEdges] == -1))
135 currentEdgeI = edgeI;
141 while (currentEdgeI != -1);
144 edgeLoops[loopI].transfer(loop);
149 edgeLoops.setSize(loopI);
161 template<
class>
class FaceList,
174 return *edgeLoopsPtr_;
List< labelList > labelListList
A List of labelList.
#define forAll(list, i)
Loop across all elements in list.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
Ostream & endl(Ostream &os)
Add newline and flush stream.
const labelListList & edgeLoops() const
Return list of closed loops of boundary vertices.
A list of faces which address into the list of points.
List< label > labelList
A List of labels.
errorManip< error > abort(error &err)
#define InfoInFunction
Report an information message using Foam::Info.