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
20{
21 LOG4CPP_DEBUG_S ((*mainCat)) << "FormatCoordsUnits::FormatCoordsUnits";
22}
23
24void FormatCoordsUnits::formattedToUnformatted (const QString &xThetaFormatted,
25 const QString &yRadiusFormatted,
26 const DocumentModelCoords &modelCoords,
27 const MainWindowModel &mainWindowModel,
28 double &xThetaUnformatted,
29 double &yRadiusUnformatted) const
30{
31 LOG4CPP_DEBUG_S ((*mainCat)) << "FormatCoordsUnits::formattedToUnformatted";
32
35
36 if (modelCoords.coordsType() == COORDS_TYPE_CARTESIAN) {
37
38 xThetaUnformatted = formatNonPolarTheta.formattedToUnformatted (xThetaFormatted,
39 mainWindowModel.locale(),
40 modelCoords.coordUnitsX(),
41 modelCoords.coordUnitsDate(),
42 modelCoords.coordUnitsTime());
43 yRadiusUnformatted = formatNonPolarTheta.formattedToUnformatted (yRadiusFormatted,
44 mainWindowModel.locale(),
45 modelCoords.coordUnitsY(),
46 modelCoords.coordUnitsDate(),
47 modelCoords.coordUnitsTime());
48
49 } else {
50
51 xThetaUnformatted = formatPolarTheta.formattedToUnformatted (xThetaFormatted,
52 mainWindowModel.locale(),
53 modelCoords.coordUnitsTheta());
54 yRadiusUnformatted = formatNonPolarTheta.formattedToUnformatted (yRadiusFormatted,
55 mainWindowModel.locale(),
56 modelCoords.coordUnitsRadius(),
57 modelCoords.coordUnitsDate(),
58 modelCoords.coordUnitsTime());
59
60 }
61}
62
63void FormatCoordsUnits::unformattedToFormatted (double xThetaUnformatted,
64 double yRadiusUnformatted,
65 const DocumentModelCoords &modelCoords,
66 const DocumentModelGeneral &modelGeneral,
67 const MainWindowModel &mainWindowModel,
68 QString &xThetaFormatted,
69 QString &yRadiusFormatted,
70 const Transformation &transformation) const
71{
72 LOG4CPP_DEBUG_S ((*mainCat)) << "FormatCoordsUnits::unformattedToFormatted";
73
76
77 if (modelCoords.coordsType() == COORDS_TYPE_CARTESIAN) {
78
79 xThetaFormatted = formatNonPolarTheta.unformattedToFormatted (xThetaUnformatted,
80 mainWindowModel.locale(),
81 modelCoords.coordUnitsX(),
82 modelCoords.coordUnitsDate(),
83 modelCoords.coordUnitsTime(),
85 modelGeneral,
86 transformation,
87 yRadiusUnformatted);
88 yRadiusFormatted = formatNonPolarTheta.unformattedToFormatted (yRadiusUnformatted,
89 mainWindowModel.locale(),
90 modelCoords.coordUnitsY(),
91 modelCoords.coordUnitsDate(),
92 modelCoords.coordUnitsTime(),
94 modelGeneral,
95 transformation,
96 xThetaUnformatted);
97
98 } else {
99
100 xThetaFormatted = formatPolarTheta.unformattedToFormatted (xThetaUnformatted,
101 mainWindowModel.locale(),
102 modelCoords.coordUnitsTheta(),
103 modelGeneral,
104 transformation,
105 yRadiusUnformatted);
106 yRadiusFormatted = formatNonPolarTheta.unformattedToFormatted (yRadiusUnformatted,
107 mainWindowModel.locale(),
108 modelCoords.coordUnitsRadius(),
109 modelCoords.coordUnitsDate(),
110 modelCoords.coordUnitsTime(),
112 modelGeneral,
113 transformation,
114 xThetaUnformatted);
115 }
116}
@ COORDS_TYPE_CARTESIAN
Definition CoordsType.h:13
const bool IS_X_THETA
const bool IS_NOT_X_THETA
const bool IS_X_THETA
const bool IS_NOT_X_THETA
log4cpp::Category * mainCat
Definition Logger.cpp:14
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.
#define LOG4CPP_DEBUG_S(logger)
Definition convenience.h:20