Example #1
0
        /// <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);
        }
Example #2
0
        /// <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));
            }
Example #4
0
        /// <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);
        }
Example #5
0
        /// <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));
            }