37 template<
class FaceList,
class Po
intField>
47 <<
"edge loops already calculated"
51 const edgeList& patchEdges = edges();
52 const label nIntEdges = nInternalEdges();
53 const label nBdryEdges = patchEdges.size() - nIntEdges;
57 auto& edgeLoops = *edgeLoopsPtr_;
80 label currentEdgeI = -1;
82 for (label edgeI = nIntEdges; edgeI < patchEdges.size(); edgeI++)
84 if (loopNumber[edgeI-nIntEdges] == -1)
91 if (currentEdgeI == -1)
98 DynamicList<label> loop(nBdryEdges);
101 label currentVertI = patchEdges[currentEdgeI].start();
105 loop.append(currentVertI);
107 loopNumber[currentEdgeI - nIntEdges] = loopI;
110 currentVertI = patchEdges[currentEdgeI].otherVertex(currentVertI);
113 const labelList& curEdges = patchPointEdges[currentVertI];
119 label edgeI = curEdges[pI];
121 if (edgeI >= nIntEdges && (loopNumber[edgeI - nIntEdges] == -1))
124 currentEdgeI = edgeI;
130 while (currentEdgeI != -1);
133 edgeLoops[loopI].transfer(loop);
138 edgeLoops.setSize(loopI);
144 template<
class FaceList,
class Po
intField>
153 return *edgeLoopsPtr_;