38 lines
1.1 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|