/// <summary>
 /// 
 /// </summary>
 /// <param name="ss"></param>
 /// <param name="si"></param>
 public virtual void ComputeIntersections(SweepLineSegment ss, SegmentIntersector si)
 {
     si.AddIntersections(_edge, _ptIndex, ss._edge, ss._ptIndex);
 }
 /// <summary>
 /// 
 /// </summary>
 /// <param name="edge"></param>
 /// <param name="edgeSet"></param>
 private void Add(Edge edge, object edgeSet)
 {
     IList<Coordinate> pts = edge.Coordinates;
     for (int i = 0; i < pts.Count - 1; i++) 
     {
         SweepLineSegment ss = new SweepLineSegment(edge, i);
         SweepLineEvent insertEvent = new SweepLineEvent(edgeSet, ss.MinX, null, ss);
         _events.Add(insertEvent);
         _events.Add(new SweepLineEvent(edgeSet, ss.MaxX, insertEvent, ss));
     }
 }