Esempio n. 1
0
 private DelaunayTreeNode <T> FindNode(EuclideanGraphTriangle <T> triangle)
 {
     foreach (DelaunayTreeNode <T> node in Nodes)
     {
         if (node.Triangle == triangle)
         {
             return(node);
         }
     }
     return(null);
 }
Esempio n. 2
0
        public void Subdivide(EuclideanGraphTriangle <T> parent, EuclideanGraphTriangle <T>[] children)
        {
            DelaunayTreeNode <T> parentNode = FindNode(parent);

            foreach (EuclideanGraphTriangle <T> child in children)
            {
                DelaunayTreeNode <T> newNode = new DelaunayTreeNode <T>(child);
                parentNode.Children.Add(newNode);
                Nodes.Add(newNode);
            }
            parentNode.Old = true;
        }
Esempio n. 3
0
        public void GetTrianglesOnEdge(EuclideanGraphNode <T>[] edge, ref EuclideanGraphTriangle <T> triangle1, ref EuclideanGraphTriangle <T> triangle2)
        {
            bool foundFirst = false;

            foreach (DelaunayTreeNode <T> node in Nodes)
            {
                if (!node.Old && node.Triangle.HasEdge(edge))
                {
                    if (!foundFirst)
                    {
                        triangle1  = node.Triangle;
                        foundFirst = true;
                    }
                    else
                    {
                        triangle2 = node.Triangle;
                    }
                }
            }
        }
 public DelaunayTreeNode(EuclideanGraphTriangle <T> triangle)
 {
     Triangle = triangle;
     Children = new List <DelaunayTreeNode <T> >();
     Old      = false;
 }