/// <summary>
 /// 
 /// </summary>
 private void Init()
 {
     IList<Coordinate> pts = _parentLine.Coordinates;
     _segs = new TaggedLineSegment[pts.Count - 1];
     for (int i = 0; i < pts.Count - 1; i++)
     {
         TaggedLineSegment seg
                  = new TaggedLineSegment(pts[i], pts[i + 1], _parentLine, i);
         _segs[i] = seg;
     }
 }
 /// <summary>
 /// Tests whether a segment is in a section of a TaggedLineString-
 /// </summary>
 /// <param name="line"></param>
 /// <param name="sectionIndex"></param>
 /// <param name="seg"></param>
 /// <returns></returns>
 private static bool IsInLineSection(TaggedLineString line, int[] sectionIndex, TaggedLineSegment seg)
 {
     // not in this line
     if (seg.Parent != line.Parent) return false;
     int segIndex = seg.Index;
     if (segIndex >= sectionIndex[0] && segIndex < sectionIndex[1])
         return true;
     return false;
 }