Engauge Digitizer 2
Loading...
Searching...
No Matches
ExportFileRelations.h
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
7#ifndef EXPORT_FILE_RELATIONS_H
8#define EXPORT_FILE_RELATIONS_H
9
12#include "ExportValuesOrdinal.h"
13#include "Points.h"
14#include <QStringList>
15#include <QVector>
16
17class Document;
21class MainWindowModel;
22class QTextStream;
23class Transformation;
24
27{
28 // For unit testing
29 friend class TestExport;
30
31public:
34
37 void exportToFile (const DocumentModelExportFormat &modelExportOverride,
38 const Document &document,
39 const MainWindowModel &modelMainWindow,
40 const Transformation &transformation,
41 QTextStream &str,
42 unsigned int &numWritesSoFar,
43 bool &isOverrun) const;
44
45private:
46 void exportAllPerLineXThetaValuesMerged (const DocumentModelExportFormat &modelExportOverride,
47 const Document &document,
48 const MainWindowModel &modelMainWindow,
49 const QStringList &curvesIncluded,
50 const QString &delimiter,
51 const Transformation &transformation,
52 bool isLogXTheta,
53 bool isLogYRadius,
54 QTextStream &str,
55 unsigned int &numWritesSoFar) const;
56 void exportAllPerLineXThetaValuesMergedMultiplePass (int maxColumnSize,
57 const DocumentModelExportFormat &modelExportOverride,
58 const Document &document,
59 const MainWindowModel &modelMainWindow,
60 const QStringList &curvesIncluded,
61 const QString &delimiter,
62 const Transformation &transformation,
63 bool isLogXTheta,
64 bool isLogYRadius,
65 QTextStream &str,
66 unsigned int &numWritesSoFar) const;
67 void exportAllPerLineXThetaValuesMergedOnePass (int maxColumnSize,
68 const DocumentModelExportFormat &modelExportOverride,
69 const Document &document,
70 const MainWindowModel &modelMainWindow,
71 const QStringList &curvesIncluded,
72 const QString &delimiter,
73 const Transformation &transformation,
74 bool isLogXTheta,
75 bool isLogYRadius,
76 QTextStream &str,
77 unsigned int &numWritesSoFar) const;
78 void exportOnePerLineXThetaValuesMerged (const DocumentModelExportFormat &modelExportOverride,
79 const Document &document,
80 const MainWindowModel &modelMainWindow,
81 const QStringList &curvesIncluded,
82 const QString &delimiter,
83 const Transformation &transformation,
84 bool isLogXTheta,
85 bool isLogYRadius,
86 QTextStream &str,
87 unsigned int &numWritesSoFar) const;
88 void initializeXThetaYRadiusValues (const QStringList &curvesIncluded,
89 QVector<QVector<QString*> > &xThetaYRadiusValues) const;
90 QPointF linearlyInterpolate (const Points &points,
91 double ordinal,
92 const Transformation &transformation) const;
93 void loadXThetaYRadiusValues (const DocumentModelExportFormat &modelExportOverride,
94 const Document &document,
95 const MainWindowModel &modelMainWindow,
96 const QStringList &curvesIncluded,
97 const Transformation &transformation,
98 bool isLogXTheta,
99 bool isLogYRadius,
100 QVector<QVector<QString*> > &xThetaYRadiusValues) const;
101 void loadXThetaYRadiusValuesForCurveInterpolatedSmooth (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,
109 bool isLogXTheta,
110 bool isLogYRadius) const;
111 void loadXThetaYRadiusValuesForCurveInterpolatedStraight (const DocumentModelCoords &modelCoords,
112 const DocumentModelGeneral &modelGeneral,
113 const MainWindowModel &modelMainWindow,
114 const Points &points,
115 const ExportValuesOrdinal &ordinals,
116 QVector<QString*> &xThetaValues,
117 QVector<QString*> &yRadiusValues,
118 const Transformation &transformation) const;
119 void loadXThetaYRadiusValuesForCurveRaw (const DocumentModelCoords &modelCoords,
120 const DocumentModelGeneral &modelGeneral,
121 const MainWindowModel &modelMainWindow,
122 const Points &points,
123 QVector<QString*> &xThetaValues,
124 QVector<QString*> &yRadiusValues,
125 const Transformation &transformation) const;
126 int maxColumnSizeAllocation (const DocumentModelExportFormat &modelExportOverride,
127 const Document &document,
128 const Transformation &transformation,
129 bool isLogXTheta,
130 bool isLogYRadius,
131 const QStringList &curvesIncluded) const;
132 ExportValuesOrdinal ordinalsAtIntervals (double pointsIntervalRelations,
133 ExportPointsIntervalUnits pointsIntervalUnits,
134 CurveConnectAs curveConnectAs,
135 const Transformation &transformation,
136 bool isLogXTheta,
137 bool isLogYRadius,
138 const Points &points) const;
139 ExportValuesOrdinal ordinalsAtIntervalsSmoothGraph (double pointsIntervalRelations,
140 const Transformation &transformation,
141 bool isLogXTheta,
142 bool isLogYRadius,
143 const Points &points) const;
144 ExportValuesOrdinal ordinalsAtIntervalsSmoothScreen (double pointsIntervalRelations,
145 const Points &points) const;
146 ExportValuesOrdinal ordinalsAtIntervalsStraightGraph (double pointsIntervalRelations,
147 const Transformation &transformation,
148 const Points &points) const;
149 ExportValuesOrdinal ordinalsAtIntervalsStraightScreen (double pointsIntervalRelations,
150 const Points &points) const;
151
153 void outputXThetaYRadiusValues (const DocumentModelExportFormat &modelExport,
154 const QStringList &curvesIncluded,
155 QVector<QVector<QString*> > &xThetaYRadiusValues,
156 const QString &delimiter,
157 QTextStream &str,
158 unsigned int &numWritesSoFar) const;
159};
160
161#endif // EXPORT_FILE_RELATIONS_H
CurveConnectAs
QList< double > ExportValuesOrdinal
QList< Point > Points
Definition Points.h:13
Model for DlgSettingsCoords and CmdSettingsCoords.
Model for DlgSettingsExportFormat and CmdSettingsExportFormat.
Model for DlgSettingsGeneral and CmdSettingsGeneral.
Storage of one imported image and the data attached to that image.
Definition Document.h:44
ExportFileAbstractBase()
Single constructor.
ExportFileRelations()
Single constructor.
void exportToFile(const DocumentModelExportFormat &modelExportOverride, const Document &document, const MainWindowModel &modelMainWindow, const Transformation &transformation, QTextStream &str, unsigned int &numWritesSoFar, bool &isOverrun) const
Export Document points according to the settings.
Model for DlgSettingsMainWindow.
Affine transformation between screen and graph coordinates, based on digitized axis points.