12 #ifndef CONVERSIONS_H_
13 #define CONVERSIONS_H_
16 #include "tdbutil/tdbUnits.h"
18 #include <QtCore/QString>
19 #include <QtCore/QStringList>
20 #include <QtCore/QHash>
21 #include <QtCore/QList>
51 myFcn(fcn), myReverse(reverse) {};
53 myFcn(orig.myFcn), myReverse(orig.myReverse) {};
63 DtUnit(
const QString& m,
const QString& t);
67 virtual QString stringRep()
const;
73 const QString&
time()
const {
return myTime; };
75 bool isValid()
const {
return (myMeasurement.length() || myTime.length()); };
78 static QString measurementTitle(
const DtUnit& u);
79 static void registerMeasurementTitle(
const QString& m,
const QString& t,
const QString& v);
83 static QString unitDisplayTitle(
const QString& u);
84 static void registerUnitDisplayTitle(
const QString& m,
const QString& t);
87 static QString unitForDisplayTitle(
const QString&);
89 static const QHash<QString, QString>& unitDisplayTitles();
103 virtual double convert(
double,
bool reverse =
false)
const {
return 0; };
115 virtual double convert(
double,
bool reverse =
false)
const;
124 virtual double convert(
double,
bool reverse =
false)
const;
132 virtual double convert(
double,
bool reverse =
false)
const;
140 virtual double convert(
double,
bool reverse =
false)
const;
148 virtual double convert(
double,
bool reverse =
false)
const;
156 virtual double convert(
double,
bool reverse =
false)
const;
164 virtual double convert(
double,
bool reverse =
false)
const;
174 virtual double convert(
double,
bool reverse =
false)
const;
198 virtual void registerUnitConversion(
const QString& from,
const QString& to,
DtConverterFcn fcn,
199 const QString& title =
"",
const QString& unitTitle =
"",
bool addTimeUnits =
false);
202 virtual void registerConversion(
const QString& from,
const QString& to,
DtConverterFcn);
207 virtual DtUnit parse(
const QString&)
const;
208 virtual bool canConvert(
const DtUnit&,
const DtUnit&)
const;
209 virtual double convert(
const DtUnit& from,
const DtUnit& to,
double val,
bool& valid,
bool reverse =
false)
const;
210 virtual double convert(DtConversionType,
const DtUnit& from,
const DtUnit& to,
double val,
bool& valid,
211 bool reverse =
false)
const;
212 virtual double convertReverse(
const DtUnit& from,
const DtUnit& to,
double val,
bool& valid)
const;
214 virtual void findPath(DtConversionType type,
const DtUnit& from,
const DtUnit& to,
const QHash<QString, DtConverterClass>&,
219 virtual double convertSourceToDestination(
double val,
const QString& source,
const QString& destination)
const;
222 virtual double convertDestinationToSource(
double val,
const QString& source,
const QString& destination)
const;
226 virtual QString unitTitle(
const QString& u)
const;
229 virtual void registerConverters();
230 virtual void registerConversion(
const QString& from,
const QString& to,
DtConverterFcn,
bool);