public override float FromInternational(float value, Units unit)
{
if ((float.IsNaN(value) || float.IsInfinity(value)))
return 0;
switch (unit)
{
case Units.Distance: return value; // m
case Units.SmallDistance: return value * 100f; // cm
case Units.Force: return (float)Math.Round(value / (1000f * Gravity), fromInternationalPrecision); // Tonf
case Units.Area: return value * 10000f; // cm2
case Units.AreaBig: return value; // m2
case Units.Stress: return (float)Math.Round(value / (10000f * Gravity), fromInternationalPrecision); // "Tonf/m2" changed to Kgf/cm2
case Units.Density: return value / (1000f); // "Ton/m3";
case Units.Temperature: return value; // "C";
case Units.TemperatureGradient: return value / 100f; // "C/cm";
case Units.SpringTranslation: return (float)Math.Round(value / (1000f * Gravity), fromInternationalPrecision); // "Tonf/m";
case Units.SpringRotation: return (float)Math.Round(value / (1000f * Gravity), fromInternationalPrecision); // "Tonf*m/Deg";
case Units.Load0D: return (float)Math.Round(value / (1000f * Gravity), fromInternationalPrecision); // "Tonf";
case Units.Load1D: return (float)Math.Round(value / (1000f * Gravity), fromInternationalPrecision); // "Tonf/m";
case Units.Load2D: return (float)Math.Round(value / (1000f * Gravity), fromInternationalPrecision); // "Tonf/m2";
case Units.Moment: return (float)Math.Round(value / (1000f * Gravity), fromInternationalPrecision); // "Tonf*m";
case Units.AreaInertia: return value / (100000000f); // "cm4";
case Units.Warping: return value / (1000000000000f); // "cm6";
case Units.SmallVolume: return value * (1000000f); // "cm3";
case Units.ShearModulus: return value * (1000000f); // "cm3";
case Units.ThermalCoefficient: return value; // "1/C";
case Units.Angle: return value; // "Deg";
case Units.Mass: return value; // "Kg";
case Units.Velocity: return value; // "m/s";
case Units.Acceleration: return value; // "m/s2";
case Units.NoUnit: return value;
case Units.Time: return value; // s
case Units.MassInertia: return (float)Math.Round(value / Gravity, fromInternationalPrecision);// "Kgf*m*s2";
case Units.ParTranslation: return (float)Math.Round(value / Gravity, fromInternationalPrecision); //"Kgf*s2";
case Units.Mass2D: return (float)Math.Round(value / 1000f, fromInternationalPrecision); // "Ton/m2";
case Units.ForceMoment: return (float)Math.Round(value / Gravity, fromInternationalPrecision); // "Kgf*m";
case Units.Frequency: return value; // "1/s";
case Units.CircFreq: return value; // "rad/s";
case Units.CircFreq2: return value; // "rad2/s2";
default: return value;
}
}