/// <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); } }