Engauge Digitizer  2
 All Classes Files Functions Variables Enumerations Enumerator Friends Pages
FormatCoordsUnits.cpp
1 #include "DocumentModelCoords.h"
2 #include "FormatCoordsUnits.h"
3 #include "FormatCoordsUnitsStrategyNonPolarTheta.h"
4 #include "FormatCoordsUnitsStrategyPolarTheta.h"
5 #include "Logger.h"
6 #include "MainWindowModel.h"
7 #include "Transformation.h"
8 
9 const bool IS_X_THETA = true;
10 const bool IS_NOT_X_THETA = false;
11 
13 {
14  LOG4CPP_DEBUG_S ((*mainCat)) << "FormatCoordsUnits::FormatCoordsUnits";
15 }
16 
17 void FormatCoordsUnits::formattedToUnformatted (const QString &xThetaFormatted,
18  const QString &yRadiusFormatted,
19  const DocumentModelCoords &modelCoords,
20  const MainWindowModel &mainWindowModel,
21  double &xThetaUnformatted,
22  double &yRadiusUnformatted) const
23 {
24  LOG4CPP_DEBUG_S ((*mainCat)) << "FormatCoordsUnits::formattedToUnformatted";
25 
26  FormatCoordsUnitsStrategyNonPolarTheta formatNonPolarTheta;
27  FormatCoordsUnitsStrategyPolarTheta formatPolarTheta;
28 
29  if (modelCoords.coordsType() == COORDS_TYPE_CARTESIAN) {
30 
31  xThetaUnformatted = formatNonPolarTheta.formattedToUnformatted (xThetaFormatted,
32  mainWindowModel.locale(),
33  modelCoords.coordUnitsX(),
34  modelCoords.coordUnitsDate(),
35  modelCoords.coordUnitsTime());
36  yRadiusUnformatted = formatNonPolarTheta.formattedToUnformatted (yRadiusFormatted,
37  mainWindowModel.locale(),
38  modelCoords.coordUnitsY(),
39  modelCoords.coordUnitsDate(),
40  modelCoords.coordUnitsTime());
41 
42  } else {
43 
44  xThetaUnformatted = formatPolarTheta.formattedToUnformatted (xThetaFormatted,
45  mainWindowModel.locale(),
46  modelCoords.coordUnitsTheta());
47  yRadiusUnformatted = formatNonPolarTheta.formattedToUnformatted (yRadiusFormatted,
48  mainWindowModel.locale(),
49  modelCoords.coordUnitsRadius(),
50  modelCoords.coordUnitsDate(),
51  modelCoords.coordUnitsTime());
52 
53  }
54 }
55 
56 void FormatCoordsUnits::unformattedToFormatted (double xThetaUnformatted,
57  double yRadiusUnformatted,
58  const DocumentModelCoords &modelCoords,
59  const MainWindowModel &mainWindowModel,
60  QString &xThetaFormatted,
61  QString &yRadiusFormatted,
62  const Transformation &transformation) const
63 {
64  LOG4CPP_DEBUG_S ((*mainCat)) << "FormatCoordsUnits::unformattedToFormatted";
65 
66  FormatCoordsUnitsStrategyNonPolarTheta formatNonPolarTheta;
67  FormatCoordsUnitsStrategyPolarTheta formatPolarTheta;
68 
69  if (modelCoords.coordsType() == COORDS_TYPE_CARTESIAN) {
70 
71  xThetaFormatted = formatNonPolarTheta.unformattedToFormatted (xThetaUnformatted,
72  mainWindowModel.locale(),
73  modelCoords.coordUnitsX(),
74  modelCoords.coordUnitsDate(),
75  modelCoords.coordUnitsTime(),
76  IS_X_THETA,
77  transformation,
78  yRadiusUnformatted);
79  yRadiusFormatted = formatNonPolarTheta.unformattedToFormatted (yRadiusUnformatted,
80  mainWindowModel.locale(),
81  modelCoords.coordUnitsY(),
82  modelCoords.coordUnitsDate(),
83  modelCoords.coordUnitsTime(),
84  IS_NOT_X_THETA,
85  transformation,
86  xThetaUnformatted);
87 
88  } else {
89 
90  xThetaFormatted = formatPolarTheta.unformattedToFormatted (xThetaUnformatted,
91  mainWindowModel.locale(),
92  modelCoords.coordUnitsTheta(),
93  transformation,
94  yRadiusUnformatted);
95  yRadiusFormatted = formatNonPolarTheta.unformattedToFormatted (yRadiusUnformatted,
96  mainWindowModel.locale(),
97  modelCoords.coordUnitsRadius(),
98  modelCoords.coordUnitsDate(),
99  modelCoords.coordUnitsTime(),
100  IS_NOT_X_THETA,
101  transformation,
102  xThetaUnformatted);
103  }
104 }
void formattedToUnformatted(const QString &xThetaFormatted, const QString &yRadiusFormatted, const DocumentModelCoords &modelCoords, const MainWindowModel &mainWindowModel, double &xThetaUnformatted, double &yRadiusUnformatted) const
Convert formatted string to unformatted numeric value.
FormatCoordsUnits()
Single constructor.
CoordUnitsNonPolarTheta coordUnitsRadius() const
Get method for radius units.
QString unformattedToFormatted(double valueUnformatted, const QLocale &locale, CoordUnitsNonPolarTheta coordUnits, CoordUnitsDate coordUnitsDate, CoordUnitsTime coordUnitsTime, bool isXTheta, const Transformation &transformation, double valueUnformattedOther) const
Convert simple unformatted number to formatted string.
CoordUnitsTime coordUnitsTime() const
Get method for time format when used.
void unformattedToFormatted(double xThetaUnformatted, double yRadiusUnformatted, const DocumentModelCoords &modelCoords, const MainWindowModel &mainWindowModel, QString &xThetaFormatted, QString &yRadiusFormatted, const Transformation &transformation) const
Convert unformatted numeric value to formatted string. Transformation is used to determine best resol...
Affine transformation between screen and graph coordinates, based on digitized axis points...
CoordUnitsNonPolarTheta coordUnitsY() const
Get method for x units.
Model for DlgSettingsMainWindow and CmdSettingsMainWindow.
Format conversions between unformatted and formatted for CoordUnitsNonPolarTheta. ...
CoordsType coordsType() const
Get method for coordinates type.
CoordUnitsNonPolarTheta coordUnitsX() const
Get method for x units.
Model for DlgSettingsCoords and CmdSettingsCoords.
CoordUnitsDate coordUnitsDate() const
Get method for date format when used.
QString unformattedToFormatted(double valueUnformatted, const QLocale &locale, CoordUnitsPolarTheta coordUnits, const Transformation &transformation, double valueUnformattedOther) const
Convert simple unformatted number to formatted string.
double formattedToUnformatted(const QString &string, const QLocale &locale, CoordUnitsNonPolarTheta coordUnits, CoordUnitsDate coordUnitsDate, CoordUnitsTime coordUnitsTime) const
Convert formatted string to simple unformatted number.
Format conversions between unformatted and formatted for CoordUnitsStrategyPolarTheta.
double formattedToUnformatted(const QString &string, const QLocale &locale, CoordUnitsPolarTheta coordUnits) const
Convert formatted string to simple unformatted number.
QLocale locale() const
Get method for locale.
CoordUnitsPolarTheta coordUnitsTheta() const
Get method for theta unit.