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 "Transformation.h"
7 
8 const bool IS_X_THETA = true;
9 const bool IS_NOT_X_THETA = false;
10 
12 {
13  LOG4CPP_DEBUG_S ((*mainCat)) << "FormatCoordsUnits::FormatCoordsUnits";
14 }
15 
16 void FormatCoordsUnits::formattedToUnformatted (const QString &xThetaFormatted,
17  const QString &yRadiusFormatted,
18  const DocumentModelCoords &modelCoords,
19  double &xThetaUnformatted,
20  double &yRadiusUnformatted) const
21 {
22  LOG4CPP_DEBUG_S ((*mainCat)) << "FormatCoordsUnits::formattedToUnformatted";
23 
24  FormatCoordsUnitsStrategyNonPolarTheta formatNonPolarTheta;
25  FormatCoordsUnitsStrategyPolarTheta formatPolarTheta;
26 
27  if (modelCoords.coordsType() == COORDS_TYPE_CARTESIAN) {
28 
29  xThetaUnformatted = formatNonPolarTheta.formattedToUnformatted (xThetaFormatted,
30  modelCoords.coordUnitsX(),
31  modelCoords.coordUnitsDate(),
32  modelCoords.coordUnitsTime());
33  yRadiusUnformatted = formatNonPolarTheta.formattedToUnformatted (yRadiusFormatted,
34  modelCoords.coordUnitsY(),
35  modelCoords.coordUnitsDate(),
36  modelCoords.coordUnitsTime());
37 
38  } else {
39 
40  xThetaUnformatted = formatPolarTheta.formattedToUnformatted (xThetaFormatted,
41  modelCoords.coordUnitsTheta());
42  yRadiusUnformatted = formatNonPolarTheta.formattedToUnformatted (yRadiusFormatted,
43  modelCoords.coordUnitsRadius(),
44  modelCoords.coordUnitsDate(),
45  modelCoords.coordUnitsTime());
46 
47  }
48 }
49 
50 void FormatCoordsUnits::unformattedToFormatted (double xThetaUnformatted,
51  double yRadiusUnformatted,
52  const DocumentModelCoords &modelCoords,
53  QString &xThetaFormatted,
54  QString &yRadiusFormatted,
55  const Transformation &transformation) const
56 {
57  LOG4CPP_DEBUG_S ((*mainCat)) << "FormatCoordsUnits::unformattedToFormatted";
58 
59  FormatCoordsUnitsStrategyNonPolarTheta formatNonPolarTheta;
60  FormatCoordsUnitsStrategyPolarTheta formatPolarTheta;
61 
62  if (modelCoords.coordsType() == COORDS_TYPE_CARTESIAN) {
63 
64  xThetaFormatted = formatNonPolarTheta.unformattedToFormatted (xThetaUnformatted,
65  modelCoords.coordUnitsX(),
66  modelCoords.coordUnitsDate(),
67  modelCoords.coordUnitsTime(),
68  IS_X_THETA,
69  transformation,
70  yRadiusUnformatted);
71  yRadiusFormatted = formatNonPolarTheta.unformattedToFormatted (yRadiusUnformatted,
72  modelCoords.coordUnitsY(),
73  modelCoords.coordUnitsDate(),
74  modelCoords.coordUnitsTime(),
75  IS_NOT_X_THETA,
76  transformation,
77  xThetaUnformatted);
78 
79  } else {
80 
81  xThetaFormatted = formatPolarTheta.unformattedToFormatted (xThetaUnformatted,
82  modelCoords.coordUnitsTheta(),
83  transformation,
84  yRadiusUnformatted);
85  yRadiusFormatted = formatNonPolarTheta.unformattedToFormatted (yRadiusUnformatted,
86  modelCoords.coordUnitsRadius(),
87  modelCoords.coordUnitsDate(),
88  modelCoords.coordUnitsTime(),
89  IS_NOT_X_THETA,
90  transformation,
91  xThetaUnformatted);
92  }
93 }
FormatCoordsUnits()
Single constructor.
double formattedToUnformatted(const QString &string, CoordUnitsPolarTheta coordUnits) const
Convert formatted string to simple unformatted number.
CoordUnitsNonPolarTheta coordUnitsRadius() const
Get method for radius units.
CoordUnitsTime coordUnitsTime() const
Get method for time format when used.
void unformattedToFormatted(double xThetaUnformatted, double yRadiusUnformatted, const DocumentModelCoords &modelCoords, 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.
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, CoordUnitsNonPolarTheta coordUnits, CoordUnitsDate coordUnitsDate, CoordUnitsTime coordUnitsTime, bool isXTheta, const Transformation &transformation, double valueUnformattedOther) const
Convert simple unformatted number to formatted string.
QString unformattedToFormatted(double valueUnformatted, CoordUnitsPolarTheta coordUnits, const Transformation &transformation, double valueUnformattedOther) const
Convert simple unformatted number to formatted string.
double formattedToUnformatted(const QString &string, CoordUnitsNonPolarTheta coordUnits, CoordUnitsDate coordUnitsDate, CoordUnitsTime coordUnitsTime) const
Convert formatted string to simple unformatted number.
Format conversions between unformatted and formatted for CoordUnitsStrategyPolarTheta.
void formattedToUnformatted(const QString &xThetaFormatted, const QString &yRadiusFormatted, const DocumentModelCoords &modelCoords, double &xThetaUnformatted, double &yRadiusUnformatted) const
Convert formatted string to unformatted numeric value.
CoordUnitsPolarTheta coordUnitsTheta() const
Get method for theta unit.