42 void triSurface::calcSortedEdgeFaces()
const
44 if (sortedEdgeFacesPtr_)
47 <<
"sortedEdgeFacesPtr_ already set"
59 const labelList& myFaceNbs = eFaces[edgeI];
61 if (myFaceNbs.size() > 2)
65 const edge&
e =
edges()[edgeI];
70 e2 /=
mag(e2) + VSMALL;
76 label fp1 = f.fcIndex(fp0);
77 label vertI = (f[fp1] != e[1] ? f[fp1] : f.fcIndex(fp1));
82 e0 /=
mag(e0) + VSMALL;
88 SortableList<scalar> faceAngles(myFaceNbs.size());
93 for(label nbI = 1; nbI < myFaceNbs.size(); nbI++)
96 const labelledTri& f =
localFaces()[myFaceNbs[nbI]];
98 label fp1 = f.fcIndex(fp0);
99 label vertI = (f[fp1] != e[1] ? f[fp1] : f.fcIndex(fp1));
102 vec /=
mag(vec) + VSMALL;
114 sortedEdgeFaces[edgeI] = UIndirectList<label>
123 sortedEdgeFaces[edgeI] = myFaceNbs;
129 void triSurface::calcEdgeOwner()
const
134 <<
"edgeOwnerPtr_ already set"
144 const edge& e =
edges()[edgeI];
148 if (myFaces.size() == 1)
150 edgeOwner[edgeI] = myFaces[0];
156 edgeOwner[edgeI] = -1;
160 const labelledTri& f =
localFaces()[myFaces[i]];
164 ((f[0] == e.start()) && (f[1] == e.end()))
165 || ((f[1] == e.start()) && (f[2] == e.end()))
166 || ((f[2] == e.start()) && (f[0] == e.end()))
169 edgeOwner[edgeI] = myFaces[i];
175 if (edgeOwner[edgeI] == -1)
178 <<
"Edge " << edgeI <<
" vertices:" << e
179 <<
" is used by faces " << myFaces
181 << UIndirectList<labelledTri>(
localFaces(), myFaces)()
182 <<
" none of which use the edge vertices in the same order"