Engauge Digitizer  2
 All Classes Files Functions Variables Enumerations Enumerator Friends Pages
ExportFileRelations.h
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 
7 #ifndef EXPORT_FILE_RELATIONS_H
8 #define EXPORT_FILE_RELATIONS_H
9 
10 #include "ExportFileAbstractBase.h"
11 #include "ExportPointsIntervalUnits.h"
12 #include "ExportValuesOrdinal.h"
13 #include <QStringList>
14 #include <QVector>
15 
16 class Document;
20 class MainWindowModel;
21 class QTextStream;
22 class Transformation;
23 
26 {
27 public:
30 
33  void exportToFile (const DocumentModelExportFormat &modelExportOverride,
34  const Document &document,
35  const MainWindowModel &modelMainWindow,
36  const Transformation &transformation,
37  QTextStream &str) const;
38 
39 private:
40  void exportAllPerLineXThetaValuesMerged (const DocumentModelExportFormat &modelExportOverride,
41  const Document &document,
42  const MainWindowModel &modelMainWindow,
43  const QStringList &curvesIncluded,
44  const QString &delimiter,
45  const Transformation &transformation,
46  bool isLogXTheta,
47  bool isLogYRadius,
48  QTextStream &str) const;
49  void exportAllPerLineXThetaValuesMergedMultiplePass (int maxColumnSize,
50  const DocumentModelExportFormat &modelExportOverride,
51  const Document &document,
52  const MainWindowModel &modelMainWindow,
53  const QStringList &curvesIncluded,
54  const QString &delimiter,
55  const Transformation &transformation,
56  bool isLogXTheta,
57  bool isLogYRadius,
58  QTextStream &str) const;
59  void exportAllPerLineXThetaValuesMergedOnePass (int maxColumnSize,
60  const DocumentModelExportFormat &modelExportOverride,
61  const Document &document,
62  const MainWindowModel &modelMainWindow,
63  const QStringList &curvesIncluded,
64  const QString &delimiter,
65  const Transformation &transformation,
66  bool isLogXTheta,
67  bool isLogYRadius,
68  QTextStream &str) const;
69  void exportOnePerLineXThetaValuesMerged (const DocumentModelExportFormat &modelExportOverride,
70  const Document &document,
71  const MainWindowModel &modelMainWindow,
72  const QStringList &curvesIncluded,
73  const QString &delimiter,
74  const Transformation &transformation,
75  bool isLogXTheta,
76  bool isLogYRadius,
77  QTextStream &str) const;
78  void initializeXThetaYRadiusValues (const QStringList &curvesIncluded,
79  QVector<QVector<QString*> > &xThetaYRadiusValues) const;
80  QPointF linearlyInterpolate (const Points &points,
81  double ordinal,
82  const Transformation &transformation) const;
83  void loadXThetaYRadiusValues (const DocumentModelExportFormat &modelExportOverride,
84  const Document &document,
85  const MainWindowModel &modelMainWindow,
86  const QStringList &curvesIncluded,
87  const Transformation &transformation,
88  bool isLogXTheta,
89  bool isLogYRadius,
90  QVector<QVector<QString*> > &xThetaYRadiusValues) const;
91  void loadXThetaYRadiusValuesForCurveInterpolatedSmooth (const DocumentModelCoords &modelCoords,
92  const DocumentModelGeneral &modelGeneral,
93  const MainWindowModel &modelMainWindow,
94  const Points &points,
95  const ExportValuesOrdinal &ordinals,
96  QVector<QString*> &xThetaValues,
97  QVector<QString*> &yRadiusValues,
98  const Transformation &transformation,
99  bool isLogXTheta,
100  bool isLogYRadius) const;
101  void loadXThetaYRadiusValuesForCurveInterpolatedStraight (const DocumentModelCoords &modelCoords,
102  const DocumentModelGeneral &modelGeneral,
103  const MainWindowModel &modelMainWindow,
104  const Points &points,
105  const ExportValuesOrdinal &ordinals,
106  QVector<QString*> &xThetaValues,
107  QVector<QString*> &yRadiusValues,
108  const Transformation &transformation) const;
109  void loadXThetaYRadiusValuesForCurveRaw (const DocumentModelCoords &modelCoords,
110  const DocumentModelGeneral &modelGeneral,
111  const MainWindowModel &modelMainWindow,
112  const Points &points,
113  QVector<QString*> &xThetaValues,
114  QVector<QString*> &yRadiusValues,
115  const Transformation &transformation) const;
116  int maxColumnSizeAllocation (const DocumentModelExportFormat &modelExportOverride,
117  const Document &document,
118  const Transformation &transformation,
119  bool isLogXTheta,
120  bool isLogYRadius,
121  const QStringList &curvesIncluded) const;
122  ExportValuesOrdinal ordinalsAtIntervals (double pointsIntervalRelations,
123  ExportPointsIntervalUnits pointsIntervalUnits,
124  CurveConnectAs curveConnectAs,
125  const Transformation &transformation,
126  bool isLogXTheta,
127  bool isLogYRadius,
128  const Points &points) const;
129  ExportValuesOrdinal ordinalsAtIntervalsSmoothGraph (double pointsIntervalRelations,
130  const Transformation &transformation,
131  bool isLogXTheta,
132  bool isLogYRadius,
133  const Points &points) const;
134  ExportValuesOrdinal ordinalsAtIntervalsSmoothScreen (double pointsIntervalRelations,
135  const Points &points) const;
136  ExportValuesOrdinal ordinalsAtIntervalsStraightGraph (double pointsIntervalRelations,
137  const Transformation &transformation,
138  const Points &points) const;
139  ExportValuesOrdinal ordinalsAtIntervalsStraightScreen (double pointsIntervalRelations,
140  const Points &points) const;
141 
143  void outputXThetaYRadiusValues (const DocumentModelExportFormat &modelExport,
144  const QStringList &curvesIncluded,
145  QVector<QVector<QString*> > &xThetaYRadiusValues,
146  const QString &delimiter,
147  QTextStream &str) const;
148 };
149 
150 #endif // EXPORT_FILE_RELATIONS_H
Model for DlgSettingsGeneral and CmdSettingsGeneral.
Model for DlgSettingsExportFormat and CmdSettingsExportFormat.
void exportToFile(const DocumentModelExportFormat &modelExportOverride, const Document &document, const MainWindowModel &modelMainWindow, const Transformation &transformation, QTextStream &str) const
Export Document points according to the settings.
Affine transformation between screen and graph coordinates, based on digitized axis points...
Strategy class for exporting to a file. This strategy is external to the Document class so that class...
Model for DlgSettingsMainWindow.
Model for DlgSettingsCoords and CmdSettingsCoords.
Storage of one imported image and the data attached to that image.
Definition: Document.h:41
Strategy base class for exporting to a file. This class provides common methods.
ExportFileRelations()
Single constructor.