/// <summary>
        /// Gets the neighbours of this triangle. If there is no neighbour triangle, the array element is
        /// <code>null</code>
        /// </summary>
        /// <returns>an array containing the 3 neighbours of this triangle</returns>
        public QuadEdgeTriangle[] GetNeighbours()
        {
            var neigh = new QuadEdgeTriangle[3];

            for (int i = 0; i < 3; i++)
            {
                neigh[i] = (QuadEdgeTriangle)GetEdge(i).Sym.Data;
            }
            return(neigh);
        }
 private void Process(QuadEdgeTriangle currTri, ITraversalVisitor visitor)
 {
     currTri.GetNeighbours();
     for (int i = 0; i < 3; i++)
     {
         var neighTri = (QuadEdgeTriangle)currTri.GetEdge(i).Sym.Data;
         if (neighTri == null)
         {
             continue;
         }
         if (visitor.Visit(currTri, i, neighTri))
         {
             _triQueue.AddLast(neighTri);
         }
     }
 }
 public void Init(QuadEdgeTriangle tri)
 {
     _triQueue.AddLast(tri);
 }