79 static const FXchar symbol[NumUnits][8];
82 static const FXdouble factor[NumUnits];
86 static const FXchar expression[NumUnits][16];
89 static const char* divex(
const FXchar* unit,Conv& u);
90 static const FXchar* unitex(
const FXchar* unit,Conv& u);
91 static const FXchar* scalex(
const FXchar* unit,Conv& u);
92 static const FXchar* powex(
const FXchar* unit,Conv& u);
93 static const FXchar* mulex(
const FXchar* unit,Conv& u);
100 FXUnits(FXdouble mm,FXdouble aa=0.0):m(mm),a(aa){ }
106 operator FXbool()
const {
return (m || a); }
110 FXdouble scale()
const {
return m; }
114 FXdouble offset()
const {
return a; }
126 static FXint lookup(
const FXchar* unit);
127 static FXint lookup(
const FXString& unit);
130 static FXint span(
const FXchar* unit);
131 static FXint span(
const FXString& unit);
134 static FXulong dimensions(
const FXchar* unit);
135 static FXulong dimensions(
const FXString& unit);
138 static FXString canonical(FXulong dims);
141 static FXString canonical(
const FXchar* unit);
145 static FXUnits convertFromTo(
const FXchar* srcUnit,
const FXchar* dstUnit=
nullptr);
146 static FXUnits convertFromTo(
const FXString& srcUnit,
const FXchar* dstUnit=
nullptr);
147 static FXUnits convertFromTo(
const FXchar* srcUnit,
const FXString& dstUnit);
151 static FXUnits convertToFrom(
const FXchar* dstUnit,
const FXchar* srcUnit=
nullptr);
152 static FXUnits convertToFrom(
const FXString& dstUnit,
const FXchar* srcUnit=
nullptr);
153 static FXUnits convertToFrom(
const FXchar* dstUnit,
const FXString& srcUnit);
157 static FXUnits convertFromToDims(
const FXchar* srcUnit,FXulong dims);
158 static FXUnits convertFromToDims(
const FXString& srcUnit,FXulong dims);
161 static FXUnits convertToFromDims(
const FXchar* dstUnit,FXulong dims);
162 static FXUnits convertToFromDims(
const FXString& dstUnit,FXulong dims);
Unit conversion class.
Definition: FXUnits.h:54
FXUnits & operator=(const FXUnits &org)
Assign from other units.
Definition: FXUnits.h:117
void scale(FXdouble mm)
Access multiplicand.
Definition: FXUnits.h:109
FXdouble operator()(FXdouble x) const
Convert number x according to transformation.
Definition: FXUnits.h:120
FXUnits(FXdouble mm, FXdouble aa=0.0)
Initialize only with scale.
Definition: FXUnits.h:100
FXUnits(const FXUnits &org)
Copy from other units.
Definition: FXUnits.h:103
Definition: FX4Splitter.h:28
void offset(FXdouble aa)
Access addend.
Definition: FXUnits.h:113
FXUnits invert() const
Return the transformation.
Definition: FXUnits.h:123
FXUnits()
Initialize to identity.
Definition: FXUnits.h:97
FXString provides essential string manipulation capabilities in FOX.
Definition: FXString.h:42