using System.Xml.Serialization; namespace ShrlAlgoToolkit.RevitAddins.RvIndependent.MetroGauges.LandXMLData { [XmlType("CoordGeom")] [Serializable] public class CoordGeom { public CoordGeom() { HorizonCurve = new List(); } public Interval this[int index] { get { if (index < HorizonCurve.Count) { return HorizonCurve[index]; } throw new IndexOutOfRangeException(); } set { if (index < HorizonCurve.Count) { HorizonCurve[index] = value; return; } if (index == HorizonCurve.Count) { HorizonCurve.Add(value); return; } throw new IndexOutOfRangeException(); } } public int Count => HorizonCurve.Count; public bool IsReadOnly => false; [XmlElement("Curve", Type = typeof(Curve))] [XmlElement("Line", Type = typeof(Line))] [XmlElement("Spiral", Type = typeof(Spiral))] public List HorizonCurve { get; set; } public void Add(Interval item) { HorizonCurve.Add(item); } public void Clear() { HorizonCurve.Clear(); } public bool Contains(Interval item) { return HorizonCurve.Contains(item); } public void CopyTo(Interval[] array, int arrayIndex) { HorizonCurve.CopyTo(array, arrayIndex); } public IEnumerator GetEnumerator() { return HorizonCurve.GetEnumerator(); } public int IndexOf(Interval item) { return HorizonCurve.IndexOf(item); } public void Insert(int index, Interval item) { HorizonCurve.Insert(index, item); } public bool Remove(Interval item) { return HorizonCurve.Remove(item); } public void RemoveAt(int index) { HorizonCurve.RemoveAt(index); } } }