Engauge Digitizer 2
Loading...
Searching...
No Matches
FormatCoordsUnits.cpp
Go to the documentation of this file.
1/******************************************************************************************************
2 * (C) 2014 markummitchell@github.com. This file is part of Engauge Digitizer, which is released *
3 * under GNU General Public License version 2 (GPLv2) or (at your option) any later version. See file *
4 * LICENSE or go to gnu.org/licenses for details. Distribution requires prior written permission. *
5 ******************************************************************************************************/
6
9#include "FormatCoordsUnits.h"
12#include "Logger.h"
13#include "MainWindowModel.h"
14#include "Transformation.h"
15
16const bool IS_X_THETA = true;
17const bool IS_NOT_X_THETA = false;
18
22
23void FormatCoordsUnits::formattedToUnformatted (const QString &xThetaFormatted,
24 const QString &yRadiusFormatted,
25 const DocumentModelCoords &modelCoords,
26 const MainWindowModel &mainWindowModel,
27 double &xThetaUnformatted,
28 double &yRadiusUnformatted) const
29{
32
33 if (modelCoords.coordsType() == COORDS_TYPE_CARTESIAN) {
34
35 xThetaUnformatted = formatNonPolarTheta.formattedToUnformatted (xThetaFormatted,
36 mainWindowModel.locale(),
37 modelCoords.coordUnitsX(),
38 modelCoords.coordUnitsDate(),
39 modelCoords.coordUnitsTime());
40 yRadiusUnformatted = formatNonPolarTheta.formattedToUnformatted (yRadiusFormatted,
41 mainWindowModel.locale(),
42 modelCoords.coordUnitsY(),
43 modelCoords.coordUnitsDate(),
44 modelCoords.coordUnitsTime());
45
46 } else {
47
48 xThetaUnformatted = formatPolarTheta.formattedToUnformatted (xThetaFormatted,
49 mainWindowModel.locale(),
50 modelCoords.coordUnitsTheta());
51 yRadiusUnformatted = formatNonPolarTheta.formattedToUnformatted (yRadiusFormatted,
52 mainWindowModel.locale(),
53 modelCoords.coordUnitsRadius(),
54 modelCoords.coordUnitsDate(),
55 modelCoords.coordUnitsTime());
56
57 }
58}
59
60void FormatCoordsUnits::unformattedToFormatted (double xThetaUnformatted,
61 double yRadiusUnformatted,
62 const DocumentModelCoords &modelCoords,
63 const DocumentModelGeneral &modelGeneral,
64 const MainWindowModel &mainWindowModel,
65 QString &xThetaFormatted,
66 QString &yRadiusFormatted,
67 const Transformation &transformation) const
68{
71
72 if (modelCoords.coordsType() == COORDS_TYPE_CARTESIAN) {
73
74 xThetaFormatted = formatNonPolarTheta.unformattedToFormatted (xThetaUnformatted,
75 mainWindowModel.locale(),
76 modelCoords.coordUnitsX(),
77 modelCoords.coordUnitsDate(),
78 modelCoords.coordUnitsTime(),
80 modelGeneral,
81 transformation,
82 yRadiusUnformatted);
83 yRadiusFormatted = formatNonPolarTheta.unformattedToFormatted (yRadiusUnformatted,
84 mainWindowModel.locale(),
85 modelCoords.coordUnitsY(),
86 modelCoords.coordUnitsDate(),
87 modelCoords.coordUnitsTime(),
89 modelGeneral,
90 transformation,
91 xThetaUnformatted);
92
93 } else {
94
95 xThetaFormatted = formatPolarTheta.unformattedToFormatted (xThetaUnformatted,
96 mainWindowModel.locale(),
97 modelCoords.coordUnitsTheta(),
98 modelGeneral,
99 transformation,
100 yRadiusUnformatted);
101 yRadiusFormatted = formatNonPolarTheta.unformattedToFormatted (yRadiusUnformatted,
102 mainWindowModel.locale(),
103 modelCoords.coordUnitsRadius(),
104 modelCoords.coordUnitsDate(),
105 modelCoords.coordUnitsTime(),
107 modelGeneral,
108 transformation,
109 xThetaUnformatted);
110 }
111}
@ COORDS_TYPE_CARTESIAN
Definition CoordsType.h:13
const bool IS_X_THETA
const bool IS_NOT_X_THETA
Model for DlgSettingsCoords and CmdSettingsCoords.
CoordUnitsNonPolarTheta coordUnitsRadius() const
Get method for radius units.
CoordUnitsPolarTheta coordUnitsTheta() const
Get method for theta unit.
CoordUnitsNonPolarTheta coordUnitsY() const
Get method for x units.
CoordUnitsTime coordUnitsTime() const
Get method for time format when used.
CoordUnitsNonPolarTheta coordUnitsX() const
Get method for x units.
CoordsType coordsType() const
Get method for coordinates type.
CoordUnitsDate coordUnitsDate() const
Get method for date format when used.
Model for DlgSettingsGeneral and CmdSettingsGeneral.
Format conversions between unformatted and formatted for CoordUnitsNonPolarTheta.
QString unformattedToFormatted(double valueUnformatted, const QLocale &locale, CoordUnitsNonPolarTheta coordUnits, CoordUnitsDate coordUnitsDate, CoordUnitsTime coordUnitsTime, bool isXTheta, const DocumentModelGeneral &modelGeneral, 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.
QString unformattedToFormatted(double valueUnformatted, const QLocale &locale, CoordUnitsPolarTheta coordUnits, const DocumentModelGeneral &modelGeneral, const Transformation &transformation, double valueUnformattedOther) const
Convert simple unformatted number to formatted string.
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.
void unformattedToFormatted(double xThetaUnformatted, double yRadiusUnformatted, const DocumentModelCoords &modelCoords, const DocumentModelGeneral &modelGeneral, 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...
FormatCoordsUnits()
Single constructor.
Model for DlgSettingsMainWindow.
QLocale locale() const
Get method for locale.
Affine transformation between screen and graph coordinates, based on digitized axis points.