37 template<
class FaceList,
class Po
intField>
46 if (localPointOrderPtr_)
50 <<
"local point order already calculated"
54 const List<face_type>& lf = localFaces();
58 boolList visitedFace(lf.size(),
false);
60 localPointOrderPtr_.reset(
new labelList(meshPoints().size(), -1));
61 auto& pointOrder = *localPointOrderPtr_;
63 boolList visitedPoint(pointOrder.size(),
false);
69 if (!visitedFace[facei])
71 SLList<label> faceOrder(facei);
75 const label curFace = faceOrder.first();
77 faceOrder.removeHead();
79 if (!visitedFace[curFace])
81 visitedFace[curFace] =
true;
88 if (!visitedPoint[curPoints[pointi]])
90 visitedPoint[curPoints[pointi]] =
true;
92 pointOrder[
nPoints] = curPoints[pointi];
103 if (!visitedFace[nbrs[nbrI]])
105 faceOrder.append(nbrs[nbrI]);
109 }
while (faceOrder.size());