コード例 #1
0
 public UnitPoint2D(SIPrefix prefix, IUnitDefinition unit, double x, double y)
     : base(
         prefix.GetMultiplier() * unit.ConvertToUnitValue(x).Value,
         prefix.GetMultiplier() * unit.ConvertToUnitValue(y).Value)
 {
     Unit = unit.CorrespondingCompoundUnit;
 }
コード例 #2
0
 public UnitDefinition(
     string stringRepresentation,
     bool isSIUnit,
     CompoundUnit correspondingCompoundUnit,
     Func <double, double> toUnitValue,
     Func <double, double> convertBack,
     IList <string> alternativeStringRepresentations = null)
 {
     this.toUnitValue                 = toUnitValue;
     this.convertBack                 = convertBack;
     StringRepresentation             = stringRepresentation;
     IsSIUnit                         = isSIUnit;
     CorrespondingCompoundUnit        = correspondingCompoundUnit;
     AlternativeStringRepresentations = alternativeStringRepresentations ?? new List <string>();
 }
コード例 #3
0
        private static UnitValue CombineUnitConversions(
            IEnumerable <UnitValue> nomniatorUnitConversions,
            IEnumerable <UnitValue> denomniatorUnitConversions)
        {
            var combinedMultiplier10Base = 0d;
            var combinedUnit             = new CompoundUnit();

            foreach (var nomniatorUnitConversion in nomniatorUnitConversions)
            {
                combinedUnit             *= nomniatorUnitConversion.Unit;
                combinedMultiplier10Base += Math.Log10(nomniatorUnitConversion.Value);
            }

            foreach (var denomniatorUnitConversion in denomniatorUnitConversions)
            {
                combinedUnit             /= denomniatorUnitConversion.Unit;
                combinedMultiplier10Base -= Math.Log10(denomniatorUnitConversion.Value);
            }
            var combinedMultiplier = Math.Pow(10, combinedMultiplier10Base);

            return(new UnitValue(combinedUnit, combinedMultiplier));
        }
コード例 #4
0
 public UnitPoint2D(CompoundUnit unit, double x, double y)
     : base(x, y)
 {
     Unit = unit;
 }
コード例 #5
0
 public UnitPoint2D(UnitValue x, UnitValue y)
     : base(x.In(x.Unit), y.In(x.Unit))
 {
     Unit = x.Unit;
 }
コード例 #6
0
ファイル: UnitConverter.cs プロジェクト: frke/commons
 public static bool CanConvertTo(this UnitValue unitValue, CompoundUnit unit)
 {
     return(unitValue.Unit == unit);
 }
コード例 #7
0
ファイル: UnitVector2D.cs プロジェクト: frke/commons
 public UnitVector2D(CompoundUnit unit, double x, double y)
     : base(x, y)
 {
     Unit = unit;
 }
コード例 #8
0
ファイル: UnitVector2D.cs プロジェクト: frke/commons
 public UnitVector2D(UnitValue x, UnitValue y)
     : base(x.In(x.Unit), y.In(x.Unit))
 {
     Unit = x.Unit;
 }
コード例 #9
0
ファイル: UnitVector3D.cs プロジェクト: frke/commons
 public UnitVector3D(CompoundUnit unit, double x, double y, double z)
     : base(x, y, z)
 {
     Unit = unit;
 }
コード例 #10
0
ファイル: UnitVector3D.cs プロジェクト: frke/commons
 public UnitVector3D(UnitValue x, UnitValue y, UnitValue z)
     : base(x.In(x.Unit), y.In(x.Unit), z.In(x.Unit))
 {
     Unit = x.Unit;
 }
コード例 #11
0
ファイル: UnitValue.cs プロジェクト: frke/commons
 public UnitValue(CompoundUnit unit, double value)
 {
     Unit  = unit;
     Value = value;
 }
コード例 #12
0
 public UnitPoint3D(CompoundUnit unit, double x, double y, double z)
     : base(x, y, z)
 {
     Unit = unit;
 }