private int FindEmptyTrByEdge(int indBaseTr, TSide side) { int res = -1; for (int i = 0; i < arrTris.Length; i++) { if ((i != indBaseTr) && (arrTris[i].faceId == -1)) { if (side.Equal(arrTris[i].indA, arrTris[i].indB) || side.Equal(arrTris[i].indB, arrTris[i].indC) || side.Equal(arrTris[i].indC, arrTris[i].indA)) { res = i; break; } } } return(res); }
private int FindEdgeBySide(List <Edge> listEdges, TSide side) { int res = -1; for (int i = 0; i < listEdges.Count; i++) { if (side.Equal(listEdges[i].side)) { res = i; break; } } return(res); }
private TSide[] SidesToFind(int indTr, TSide fromSide) { TSide[] res; if (fromSide == null) { res = new TSide[3] { new TSide { a = arrTris[indTr].indA, b = arrTris[indTr].indB }, new TSide { a = arrTris[indTr].indB, b = arrTris[indTr].indC }, new TSide { a = arrTris[indTr].indC, b = arrTris[indTr].indA } }; } else { res = new TSide[2]; if (fromSide.Equal(arrTris[indTr].indA, arrTris[indTr].indB)) { res = new TSide[2] { new TSide { a = arrTris[indTr].indB, b = arrTris[indTr].indC }, new TSide { a = arrTris[indTr].indC, b = arrTris[indTr].indA } }; } if (fromSide.Equal(arrTris[indTr].indB, arrTris[indTr].indC)) { res = new TSide[2] { new TSide { a = arrTris[indTr].indA, b = arrTris[indTr].indB }, new TSide { a = arrTris[indTr].indC, b = arrTris[indTr].indA } }; } if (fromSide.Equal(arrTris[indTr].indC, arrTris[indTr].indA)) { res = new TSide[2] { new TSide { a = arrTris[indTr].indA, b = arrTris[indTr].indB }, new TSide { a = arrTris[indTr].indB, b = arrTris[indTr].indC } }; } } return(res); }