/// <summary> /// Converts from one imperial unit to another /// </summary> /// <param name="source">Source imperial distance</param> /// <param name="target">Target imperial distance</param> /// <param name="power">Power to use (single, square, cubic, etc)</param> /// <returns>The functor to convert from one dimension to another</returns> protected Func<double, double> ConvertImperialDistance(IImperialDistance source, IImperialDistance target, int power) { var from = ((AbstractDistance) source).ConvertToBase; var to = ((AbstractDistance) target).ConvertFromBase; return x => Powerade(from, x, power, to); }
/// <summary> /// Converts from one imperial unit to another /// </summary> /// <param name="source">Source imperial distance</param> /// <param name="target">Target imperial distance</param> /// <param name="power">Power to use (single, square, cubic, etc)</param> /// <returns>The functor to convert from one dimension to another</returns> protected Func <double, double> ConvertImperialDistance(IImperialDistance source, IImperialDistance target, int power) { var from = ((AbstractDistance)source).ConvertToBase; var to = ((AbstractDistance)target).ConvertFromBase; return(x => Powerade(from, x, power, to)); }
/// <summary> /// Converts an imperial distance to a metric distance /// </summary> /// <param name="quantity"> Quantity to convert </param> /// <param name="source"> Source distance </param> /// <param name="target"> Target distance </param> /// <returns> A new unit of measure with the quantity converted to the target distance </returns> public IUnit <IDistance> VisitImperialDistance(double quantity, IImperialDistance source, IMetricDistance target) { var feet = source.ToFeet(quantity); var meters = feet * 0.3048; return(new DistanceUnit(target.FromMeters(meters), target)); }
/// <summary> /// /// </summary> /// <param name="source"></param> /// <param name="target"></param> /// <param name="power"></param> /// <returns></returns> protected Func<double, double> ConvertMetricDistance(IMetricDistance source, IImperialDistance target, int power) { var from = ((AbstractDistance)source).ConvertToBase; var to = ((AbstractDistance)target).ConvertFromBase; Func<double, double> from2 = x => from(x) * 3.2808398950131235; return x => Powerade(from2, x, power, to); }
/// <summary> /// /// </summary> /// <param name="source"></param> /// <param name="target"></param> /// <param name="power"></param> /// <returns></returns> protected Func <double, double> ConvertMetricDistance(IMetricDistance source, IImperialDistance target, int power) { var from = ((AbstractDistance)source).ConvertToBase; var to = ((AbstractDistance)target).ConvertFromBase; Func <double, double> from2 = x => from(x) * 3.2808398950131235; return(x => Powerade(from2, x, power, to)); }
/// <summary> /// Converts the metric distance to an imperial distance /// </summary> /// <param name="quantity">Quantity to convert</param> /// <param name="source">Source dimension</param> /// <param name="target">Target dimension</param> /// <returns>A new unit of measure with the quantity expressed in the target distance</returns> public IUnit <IDistance> VisitMetricDistance(double quantity, IMetricDistance source, IImperialDistance target) { var meters = source.ToMeters(quantity); var feet = meters * 3.2808398950131235; return(new DistanceUnit(target.FromFeet(feet), target)); }
/// <summary> /// Converts the imperial to imperial /// </summary> /// <param name="quantity">Quantity to convert</param> /// <param name="source">Source dimension</param> /// <param name="target">Target dimension</param> /// <returns>A new unit of measure with the quantity converted to the target dimension</returns> public IUnit <IDistance> VisitImperialDistance(double quantity, IImperialDistance source, IImperialDistance target) { var feet = source.ToFeet(quantity); return(new DistanceUnit(target.FromFeet(feet), target)); }