namespace HydroUI { [Serializable] public class DRange { public DRange(double min, double max) { Min = min; Max = max; } public DRange(DRange range) { if (range == null) { Min = 0; Max = 0; } else { Min = range.Min; Max = range.Max; } } public DRange() { Min = 0; Max = 0; } public double Min { get; set; } public double Max { get; set; } public double Length { get { return Max - Min; } } public bool IsInside(double x) { return x >= Min && x <= Max; } public bool isValid { get { return Min <= Max; } } public void Union(DRange range) { if (range.Min < Min) { Min = range.Min; } if (range.Max > Max) { Max = range.Max; } } public static DRange Union(DRange range1, DRange range2) { DRange range = new DRange(range1); range.Union(range2); return range; } public override string ToString() { return $"{Min:0.000}-{Max:0.000}"; } } }