/// <summary>Calculates the absolute time position of this relative timing poing based on a previous <seealso cref="TimingPoint"/>.</summary> /// <param name="previous">The previous <seealso cref="TimingPoint"/> based on which to calculate the absolute time position.</param> public void CalculateAbsoluteTimePosition(TimingPoint previous) { // F**k this is so long AbsoluteTimePosition = previous.GetAbsoluteTimePosition() + previous.BPM.GetDurationTimeSpan(TimePosition.DistanceFrom(previous.GetRelativeTimePosition(), previous.TimeSignature), previous.TimeSignature); }
/// <inheritdoc/> protected override int CompareTimePosition(TimingPoint other) => TimePosition.CompareTo(other.GetRelativeTimePosition());
private static int CompareTimingPoints(TimingPoint left, TimingPoint right) => left.GetRelativeTimePosition().CompareTo(right.GetRelativeTimePosition());