Files
Shrlalgo.RvKits/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/AGenerationRange.cs
2025-04-24 20:56:44 +08:00

38 lines
1.1 KiB
C#

using System.Xml.Serialization;
namespace ShrlAlgoToolkit.RevitAddins.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<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;
}
}
}