using System.Xml.Serialization; namespace ShrlAlgo.RvKits.RvIndependent.MetroGauges.LandXMLData { [XmlType] [Serializable] public abstract class AGenerationRange : IGenerationRange { [XmlAttribute("end")] public abstract double EndStation { get; set; } [XmlAttribute("endG")] public abstract double GenerationEndStation { get; set; } [XmlAttribute("startG")] public abstract double GenerationStartStation { get; set; } public Tuple GetGenerationScopeIntersection(IGenerationRange parent) { return new Tuple( Math.Max(parent.GenerationStartStation, GenerationStartStation), Math.Min(parent.GenerationEndStation, GenerationEndStation) ); } [XmlAttribute("start")] public abstract double StartStation { get; set; } public void SetRange(double start, double end) { GenerationStartStation = start; StartStation = start; GenerationEndStation = end; EndStation = end; } } }