Example #1
0
 /// <summary>
 /// Agrega una nueva arista a la lista si es que ya no hay otra igual.
 /// Devuelve el indice de la nuevo arista o de la que ya estaba.
 /// </summary>
 public static int addEdgeToListIfUnique(List <EditPolyEdge> edges, EditPolyEdge e, out bool newEdgeAdded)
 {
     for (int i = 0; i < edges.Count; i++)
     {
         if (EditablePolyUtils.sameEdge(edges[i], e))
         {
             newEdgeAdded = false;
             return(i);
         }
     }
     newEdgeAdded = true;
     e.faces      = new List <EditPolyPolygon>();
     edges.Add(e);
     return(edges.Count - 1);
 }
Example #2
0
 /// <summary>
 /// Busca si ambos poligonos tienen una arista igual.
 /// Si encontro retorna el indice de la arista igual de cada poligono.
 /// </summary>
 public static bool findShareEdgeBetweenPolygons(EditPolyPolygon p1, EditPolyPolygon p2, out int p1Edge, out int p2Edge)
 {
     for (int i = 0; i < p1.edges.Count; i++)
     {
         for (int j = 0; j < p2.edges.Count; j++)
         {
             if (EditablePolyUtils.sameEdge(p1.edges[i], p2.edges[j]))
             {
                 p1Edge = i;
                 p2Edge = j;
                 return(true);
             }
         }
     }
     p1Edge = -1;
     p2Edge = -1;
     return(false);
 }