コード例 #1
0
        /// <summary>
        /// Convert the <paramref name='value'/> in <paramref name='originalRange'/> to one in <paramref name='newRange'/>.
        /// </summary>
        /// <remarks>
        /// Essentially, <paramref name='originalRange'/> is scaled up or down to match <paramref name='newRange'/>.
        /// So the returned value is the same percentage along <paramref name='newRange'/> as the provided <paramref name='value'/> was along <paramref name='originalRange'/>.
        /// </remarks>
        public static double ConvertValue(WRange originalRange, WRange newRange, double value)
        {
            if (originalRange.Start != newRange.Start)
            {
                throw new NotImplementedException("Not implemented: Range.ConvertValue when ranges have different minimum values.");
            }

            double scale = newRange.Span / originalRange.Span;

            return(((value - originalRange.Start) * scale) + newRange.Start);
        }
コード例 #2
0
 /// <summary>Returns true if this range overlaps range <paramref name='b'/>.</summary>
 public virtual bool Overlaps(WRange b)
 {
     return(this.Overlaps(b.Start) || this.Overlaps(b.End) || b.Overlaps(this.Start) || b.Overlaps(this.End));
 }