Files
ShrlAlgoToolkit/Sai.RvKits/RvIndependent/MetroGauges/LandXMLData/AGenerationRange.cs
2024-09-22 11:05:41 +08:00

39 lines
956 B
C#

using System;
using System.Xml.Serialization;
namespace Sai.Toolkit.Core.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<double, double> GetGenerationScopeIntersection(IGenerationRange parent)
{
return new Tuple<double, double>(
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;
}
}
}