Пример #1
0
 void Remove(GraphTriangle face)
 {
     // Break adjacent edge relationships and
     // unregister the face.
     foreach (var edge in face.edges)
     {
         if (edge.adj != null)
         {
             adjEdges.Remove(edge);
             adjEdges.Remove(edge.adj);
             edge.adj.adj = null;
             edge.adj     = null;
         }
     }
     faces.Remove(face);
 }
Пример #2
0
 void Add(GraphTriangle tri)
 {
     // Register the face and look up if we made any
     // new adjacent edge relationships.
     faces.Add(tri);
     foreach (var face in faces)
     {
         if (face.Plane.Approx(tri.Plane))
         {
             foreach (var ei in face.edges)
             {
                 foreach (var ej in tri.edges)
                 {
                     if (ei.TryJoin(ej))
                     {
                         adjEdges.Add(ei);
                         adjEdges.Add(ej);
                     }
                 }
             }
         }
     }
 }
Пример #3
0
 public GraphEdge(GraphTriangle aFace, GraphVertex a0, GraphVertex a1, GraphVertex a2)
 {
     face           = aFace;
     v0             = a0; v1 = a1;
     opposingVertex = a2;
 }