VertCCW() public static method

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
Exemplo n.º 1
0
 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;
             }
         }
     }
 }