private Pressure As(PressureReference reference) { if (Reference == reference) { return(new Pressure(Pressure.Value, Pressure.Unit)); } var converted = AsBaseNumericType(reference); if (converted < 0) { converted *= -1; } return(new Pressure(converted, Pressure.Unit)); }
private double AsBaseNumericType(PressureReference reference) { if (Reference == reference) { return(Pressure.Value); } var baseReferenceValue = AsBaseReference(); var negatingValue = Reference == PressureReference.Vacuum ? -1 : 1; switch (reference) { case PressureReference.Absolute: return(baseReferenceValue); case PressureReference.Gauge: return(baseReferenceValue - ReferencedPressure.ToUnit(Pressure.Unit).Value); case PressureReference.Vacuum: return(ReferencedPressure.ToUnit(Pressure.Unit).Value - negatingValue * baseReferenceValue); default: throw new NotImplementedException($"Can not convert {Reference} to {reference}."); } }
/// <summary> /// Initializes a new instance of the <see cref="ReferencePressure" /> struct requiring /// measured <see cref="UnitsNet.Pressure" />, <see cref="PressureReference" />, and atmospheric <see cref="UnitsNet.Pressure" /> /// parameters /// </summary> /// <param name="pressure">The measured <see cref="UnitsNet.Pressure" /></param> /// <param name="reference"> /// The referenced <see cref="PressureReference" /> for the measured <see cref="UnitsNet.Pressure" /> /// </param> /// <param name="atmosphericPressure">The atmospheric <see cref="UnitsNet.Pressure" /> where the measurement was taken.</param> public ReferencePressure(Pressure pressure, PressureReference reference, Pressure atmosphericPressure) { Reference = reference; Pressure = pressure; AtmosphericPressure = atmosphericPressure; }
/// <summary> /// Initializes a new instance of the <see cref="ReferencePressure" /> struct requiring /// measured <see cref="UnitsNet.Pressure" /> and <see cref="PressureReference" /> parameters. Assumes 1 atm as the atmospheric /// <see cref="UnitsNet.Pressure" />. /// </summary> /// <param name="pressure">The measured <see cref="UnitsNet.Pressure" /></param> /// <param name="reference"> /// The referenced <see cref="PressureReference" /> for the measured <see cref="UnitsNet.Pressure" /> /// </param> public ReferencePressure(Pressure pressure, PressureReference reference) : this(pressure, reference, DefaultAtmosphericPressure) { }
/// <summary> /// Converts <see cref="ReferencePressure" /> to <see cref="UnitsNet.Pressure" /> at <see cref="PressureReference" /> /// </summary> /// <param name="reference">The <see cref="PressureReference" /> to convert <see cref="ReferencePressure" /> to.</param> /// <returns>The <see cref="UnitsNet.Pressure" /> at the specified <see cref="PressureReference" /></returns> private Pressure As(PressureReference reference) { var converted = AsBaseNumericType(reference); return(new Pressure(converted, Pressure.Unit)); }
public ReferencePressure(Pressure pressure, PressureReference reference) { _reference = reference; Pressure = pressure; }