/// <summary>
 /// 添加平曲线交点信息
 /// </summary>
 /// <param name="curve">平曲线交点信息</param>
 public void Add(HCurve_JD curve)
 {
     if (curves.Count == 0)
     {
         curves.Add(curve);
         Kinfo k1 = new Kinfo();
         k1.K0     = curve.K - curve.Ls;
         k1.index0 = 0;
         k1.K1     = curve.K + curve.Ls;
         k1.index1 = 0;
         Krange.Add(k1);
     }
     else if
     (curve.azimuth == curves[curves.Count - 1].azimuth + curves[curves.Count - 1].alpha)
     {
         curves.Add(curve);
         Kinfo k1 = new Kinfo();
         k1.K0     = Krange[Krange.Count - 1].K0;
         k1.index0 = Krange[Krange.Count - 1].index0;
         k1.K1     = curve.K + curve.Ls;
         k1.index1 = curves.Count - 1;
         Krange.Add(k1);
     }
     else             //曲线不连续时
     {
         curves.Add(curve);
         Kinfo k1 = new Kinfo();
         k1.K0     = curve.K - curve.Ls;
         k1.index0 = curves.Count - 1;
         k1.K1     = curve.K + curve.Ls;
         k1.index1 = curves.Count - 1;
         Krange.Add(k1);
     }
 }
 /// <summary>
 /// 添加平曲线元
 /// </summary>
 /// <param name="curve">平曲线元</param>
 public void Add(HCurve_LE curve)
 {
     if (curves.Count == 0)
     {
         curves.Add(curve);
         Kinfo k1 = new Kinfo();
         k1.K0     = curve.K0;
         k1.index0 = 0;
         k1.K1     = curve.K1;
         k1.index1 = 0;
         Krange.Add(k1);
     }
     else if (curve.K0 == curves[curves.Count - 1].K1)
     {
         curves.Add(curve);
         Kinfo k1 = new Kinfo();
         k1.K0     = Krange[Krange.Count - 1].K0;
         k1.index0 = Krange[Krange.Count - 1].index0;
         k1.K1     = curve.K1;
         k1.index1 = curves.Count - 1;
         Krange.Add(k1);
     }
     else             //曲线不连续时
     {
         curves.Add(curve);
         Kinfo k1 = new Kinfo();
         k1.K0     = curve.K0;
         k1.index0 = curves.Count - 1;
         k1.K1     = curve.K1;
         k1.index1 = curves.Count - 1;
         Krange.Add(k1);
     }
 }