37 template<
class FaceList,
class Po
intField>
47 <<
"edge loops already calculated"
51 const edgeList& patchEdges = edges();
52 label nIntEdges = nInternalEdges();
53 label nBdryEdges = patchEdges.size() - nIntEdges;
73 auto& edgeLoops = *edgeLoopsPtr_;
82 label currentEdgeI = -1;
84 for (label edgeI = nIntEdges; edgeI < patchEdges.size(); edgeI++)
86 if (loopNumber[edgeI-nIntEdges] == -1)
93 if (currentEdgeI == -1)
100 DynamicList<label> loop(nBdryEdges);
103 label currentVertI = patchEdges[currentEdgeI].start();
107 loop.append(currentVertI);
109 loopNumber[currentEdgeI - nIntEdges] = loopI;
112 currentVertI = patchEdges[currentEdgeI].otherVertex(currentVertI);
115 const labelList& curEdges = patchPointEdges[currentVertI];
121 label edgeI = curEdges[pI];
123 if (edgeI >= nIntEdges && (loopNumber[edgeI - nIntEdges] == -1))
126 currentEdgeI = edgeI;
132 while (currentEdgeI != -1);
135 edgeLoops[loopI].transfer(loop);
140 edgeLoops.setSize(loopI);
146 template<
class FaceList,
class Po
intField>
155 return *edgeLoopsPtr_;