public static VertCCW ( LibTessDotNet.MeshUtils.Vertex u, LibTessDotNet.MeshUtils.Vertex v, LibTessDotNet.MeshUtils.Vertex w ) : bool | ||
u | LibTessDotNet.MeshUtils.Vertex | |
v | LibTessDotNet.MeshUtils.Vertex | |
w | LibTessDotNet.MeshUtils.Vertex | |
return | bool |
public void MergeConvexFaces(int maxVertsPerFace) { for (MeshUtils.Face next = _fHead._next; next != _fHead; next = next._next) { if (next._inside) { MeshUtils.Edge edge = next._anEdge; MeshUtils.Vertex org = edge._Org; while (true) { MeshUtils.Edge lnext = edge._Lnext; MeshUtils.Edge sym = edge._Sym; if (sym != null && sym._Lface != null && sym._Lface._inside) { int vertsCount = next.VertsCount; int vertsCount2 = sym._Lface.VertsCount; if (vertsCount + vertsCount2 - 2 <= maxVertsPerFace && Geom.VertCCW(edge._Lprev._Org, edge._Org, sym._Lnext._Lnext._Org) && Geom.VertCCW(sym._Lprev._Org, sym._Org, edge._Lnext._Lnext._Org)) { lnext = sym._Lnext; Delete(sym); edge = null; } } if (edge != null && edge._Lnext._Org == org) { break; } edge = lnext; } } } }