Skip to content

RUnit

Class in Core Module
Header: #include <src/core/RUnit.h>

Conversion methods for units.

Scriptable: This class is available in script environments.

static RVector convert(const RVector &value, RS::Unit source, RS::Unit dest)
static double convert(double value, RS::Unit source, RS::Unit dest)
static QString doubleToString(double value, double prec, bool showLeadingZeroes=true, bool showTrailingZeroes=false, char decimalSeparator=RDEFAULT_DOT)
Converts a double into a string which is as short as possible.
static QString doubleToString(double value, int prec, bool showLeadingZeroes=true, bool showTrailingZeroes=false, char decimalSeparator=RDEFAULT_DOT)
Converts a double into a string which is as short as possible.
static QString doubleToStringDec(double value, int prec, bool showLeadingZeroes=true, bool showTrailingZeroes=false, char decimalSeparator=RDEFAULT_DOT)
static QString formatAngle(double angle, RS::AngleFormat format, int prec, bool showLeadingZeroes=true, bool showTrailingZeroes=false, char decimalSeparator=RDEFAULT_DOT)
Formats the given angle with the given format.
static QString formatArchitectural(double length, RS::Unit unit, int prec, bool showUnit=false, bool showLeadingZeroes=true, bool showTrailingZeroes=false, bool onlyPreciseResult=false)
Formats the given length in architectural format (e.g.
static QString formatDecimal(double length, RS::Unit unit, int prec, bool showUnit=false, bool showLeadingZeroes=true, bool showTrailingZeroes=false, bool onlyPreciseResult=false, char decimalSeparator=RDEFAULT_DOT)
Formats the given length in decimal (normal) format (e.g.
static QString formatEngineering(double length, RS::Unit unit, int prec, bool showUnit=false, bool showLeadingZeroes=true, bool showTrailingZeroes=false, bool onlyPreciseResult=false)
Formats the given length in engineering format (e.g.
static QString formatFractional(double length, RS::Unit unit, int prec, bool showUnit=false, bool showLeadingZeroes=true, bool showTrailingZeroes=false, bool onlyPreciseResult=false)
Formats the given length in fractional format (e.g.
static QString formatLinear(double length, RS::Unit unit, RS::LinearFormat format, int prec, bool showUnit=false, bool showLeadingZeroes=true, bool showTrailingZeroes=false, bool onlyPreciseResult=false, char decimalSeparator=RDEFAULT_DOT)
Formats the given length in the given format.
static QString formatScientific(double length, RS::Unit unit, int prec, bool showUnit=false, bool showLeadingZeroes=true, bool showTrailingZeroes=false, bool onlyPreciseResult=false)
Formats the given length in scientific format (e.g.
static double getFactorToM(RS::Unit unit)
static QString getLabel(double v, RDocument &document, int precisionOverride=RDEFAULT_MIN1, bool forceSuppressTrailingZeroes=false, bool onlyPreciseResult=false, char decimalSeparator=RDEFAULT_DOT)
static bool isMetric(RS::Unit unit)
static RS::Unit parseUnit(const QString &str)
static QString unitToName(RS::Unit unit, bool tr=true)
static QString unitToSymbol(RS::Unit unit, bool asText=false)

static RVector RUnit::convert(const RVector &value, RS::Unit source, RS::Unit dest)

static

static double RUnit::convert(double value, RS::Unit source, RS::Unit dest)

static

static QString RUnit::doubleToString(double value, double prec, bool showLeadingZeroes=true, bool showTrailingZeroes=false, char decimalSeparator=RDEFAULT_DOT)

static

Converts a double into a string which is as short as possible.

Parameters:

  • value: The double value
  • prec: Precision e.g. a precision of 1 would mean that a value of 2.12030 will be converted to “2.1”. 2.000 is always just “2”).

static QString RUnit::doubleToString(double value, int prec, bool showLeadingZeroes=true, bool showTrailingZeroes=false, char decimalSeparator=RDEFAULT_DOT)

static

Converts a double into a string which is as short as possible.

Parameters:

  • value: The double value
  • prec: Precision

static QString RUnit::doubleToStringDec(double value, int prec, bool showLeadingZeroes=true, bool showTrailingZeroes=false, char decimalSeparator=RDEFAULT_DOT)

static inline

static QString RUnit::formatAngle(double angle, RS::AngleFormat format, int prec, bool showLeadingZeroes=true, bool showTrailingZeroes=false, char decimalSeparator=RDEFAULT_DOT)

static

Formats the given angle with the given format.

Parameters:

  • angle: The angle (always in rad).
  • format: Format of the string.
  • prec: Precision of the value (e.g. 0.001 or 1/128 = 0.0078125)

\ret String with the formatted angle.

static QString RUnit::formatArchitectural(double length, RS::Unit unit, int prec, bool showUnit=false, bool showLeadingZeroes=true, bool showTrailingZeroes=false, bool onlyPreciseResult=false)

static

Formats the given length in architectural format (e.g.

5’ 4 1/2”).

Parameters:

  • length: The length in the current unit of the drawing.
  • prec: Precision of the value (e.g. 0.001 or 1/128 = 0.0078125) &
  • showUnit: Append unit to the value.

static QString RUnit::formatDecimal(double length, RS::Unit unit, int prec, bool showUnit=false, bool showLeadingZeroes=true, bool showTrailingZeroes=false, bool onlyPreciseResult=false, char decimalSeparator=RDEFAULT_DOT)

static

Formats the given length in decimal (normal) format (e.g.

2.5).

Parameters:

  • length: The length in the current unit of the drawing.
  • prec: Precision of the value (e.g. 0.001) &
  • showUnit: Append unit to the value.

static QString RUnit::formatEngineering(double length, RS::Unit unit, int prec, bool showUnit=false, bool showLeadingZeroes=true, bool showTrailingZeroes=false, bool onlyPreciseResult=false)

static

Formats the given length in engineering format (e.g.

5’ 4.5”).

Parameters:

  • length: The length in the current unit of the drawing.
  • prec: Precision of the value (e.g. 0.001 or 1/128 = 0.0078125) &
  • showUnit: Append unit to the value.

static QString RUnit::formatFractional(double length, RS::Unit unit, int prec, bool showUnit=false, bool showLeadingZeroes=true, bool showTrailingZeroes=false, bool onlyPreciseResult=false)

static

Formats the given length in fractional format (e.g.

3 1/64).

Parameters:

  • length: The length in the current unit of the drawing.
  • unit: Should be inches.
  • prec: Precision of the value (e.g. 0.001 or 1/128 = 0.0078125) &
  • showUnit: Append unit to the value.

static QString RUnit::formatLinear(double length, RS::Unit unit, RS::LinearFormat format, int prec, bool showUnit=false, bool showLeadingZeroes=true, bool showTrailingZeroes=false, bool onlyPreciseResult=false, char decimalSeparator=RDEFAULT_DOT)

static

Formats the given length in the given format.

Parameters:

  • length: The length in the current unit of the drawing.
  • format: Format of the string.
  • prec: Precision of the value (e.g. 0.001 or 1/128 = 0.0078125) &
  • showUnit: Append unit to the value.

static QString RUnit::formatScientific(double length, RS::Unit unit, int prec, bool showUnit=false, bool showLeadingZeroes=true, bool showTrailingZeroes=false, bool onlyPreciseResult=false)

static

Formats the given length in scientific format (e.g.

2.5E7).

Parameters:

  • length: The length in the current unit of the drawing.
  • prec: Precision of the value (e.g. 0.001 or 1/128 = 0.0078125) &
  • showUnit: Append unit to the value.

static double RUnit::getFactorToM(RS::Unit unit)

static

static QString RUnit::getLabel(double v, RDocument &document, int precisionOverride=RDEFAULT_MIN1, bool forceSuppressTrailingZeroes=false, bool onlyPreciseResult=false, char decimalSeparator=RDEFAULT_DOT)

static

All rights reserved.

This file is part of the QCAD project.

QCAD is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

QCAD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with QCAD.

Returns: A presentable label for the given value. The number locale is used to determine if the decimal point is a dot or a comma.

See also: RSettings::getNumberLocale()

static bool RUnit::isMetric(RS::Unit unit)

static

static RS::Unit RUnit::parseUnit(const QString &str)

static

static QString RUnit::unitToName(RS::Unit unit, bool tr=true)

static

Returns: a string representing the given unit (e.g. “Millimeter”). translated if tr is true (the default).

static QString RUnit::unitToSymbol(RS::Unit unit, bool asText=false)

static

Returns: a short string representing the given unit (e.g. “mm” or “”“)