/******************************************************************/ public double SubUnitFactor(SiDistance_SubUnits SubUnit) { double factor = 1.0; switch (SubUnit) { case SiDistance_SubUnits.Meter: factor = 1.0; break; case SiDistance_SubUnits.DecaMeter: factor = 1.0 / 10.0; break; case SiDistance_SubUnits.HectoMeter: factor = 1.0 / 100.0; break; case SiDistance_SubUnits.KiloMeter: factor = 1.0 / 1000.0; break; case SiDistance_SubUnits.Centimeter: factor = 100.0; break; } return(factor); }
/****************************************************************/ /******************************************************************/ public string SubUnitString(SiDistance_SubUnits SubUnit) { string sub_unit_name = ""; switch (SubUnit) { case SiDistance_SubUnits.Meter: sub_unit_name = "m"; break; case SiDistance_SubUnits.DecaMeter: sub_unit_name = "dm"; break; case SiDistance_SubUnits.HectoMeter: sub_unit_name = "hm"; break; case SiDistance_SubUnits.KiloMeter: sub_unit_name = "km"; break; case SiDistance_SubUnits.Centimeter: sub_unit_name = "cm"; break; } return(sub_unit_name); }
/****************** constructors ******************************/ /**@brief A constructor where the value unit's is specified. */ /**@param "x" The internal value is assigned to it. It is assumed x is distances */ /**@param "SubUnit" The units in wich 'x' is expressed. */ public SiDistance(double x, SiDistance_SubUnits SubUnit) { this.the_value = 0.0; this.the_value = x / SubUnitFactor(SubUnit); }
/**@brief Returns the value converted to the selected units. */ public double ToSubUnits(SiDistance_SubUnits SubUnit) { return(this.Value * SubUnitFactor(SubUnit)); }