/// <summary>
 /// Update the IM with the contribution for the EdgeEndBundle around the node.
 /// </summary>
 public void UpdateIM(IntersectionMatrix im)
 {
     for (IEnumerator it = Iterator(); it.MoveNext();)
     {
         EdgeEndBundle esb = (EdgeEndBundle)it.Current;
         esb.UpdateIM(im);
     }
 }
        /// <summary>
        /// Insert a EdgeEnd in order in the list. If there is an existing
        /// EdgeEndBundle which is parallel, the EdgeEnd is added to the bundle.
        /// Otherwise, a new EdgeEndBundle is created to contain the EdgeEnd.
        /// </summary>
        public override void Insert(EdgeEnd e)
        {
            EdgeEndBundle eb = (EdgeEndBundle)edgeMap[e];

            if (eb == null)
            {
                eb = new EdgeEndBundle(e);
                InsertEdgeEnd(e, eb);
            }
            else
            {
                eb.Insert(e);
            }
        }