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,
42 unsigned int &numWritesSoFar) const;
43
44private:
45 void exportAllPerLineXThetaValuesMerged (const DocumentModelExportFormat &modelExportOverride,
46 const Document &document,
47 const MainWindowModel &modelMainWindow,
48 const QStringList &curvesIncluded,
49 const QString &delimiter,
50 const Transformation &transformation,
51 bool isLogXTheta,
52 bool isLogYRadius,
54 unsigned int &numWritesSoFar) const;
55 void exportAllPerLineXThetaValuesMergedMultiplePass (int maxColumnSize,
56 const DocumentModelExportFormat &modelExportOverride,
57 const Document &document,
58 const MainWindowModel &modelMainWindow,
59 const QStringList &curvesIncluded,
60 const QString &delimiter,
61 const Transformation &transformation,
62 bool isLogXTheta,
63 bool isLogYRadius,
65 unsigned int &numWritesSoFar) const;
66 void exportAllPerLineXThetaValuesMergedOnePass (int maxColumnSize,
67 const DocumentModelExportFormat &modelExportOverride,
68 const Document &document,
69 const MainWindowModel &modelMainWindow,
70 const QStringList &curvesIncluded,
71 const QString &delimiter,
72 const Transformation &transformation,
73 bool isLogXTheta,
74 bool isLogYRadius,
76 unsigned int &numWritesSoFar) const;
77 void exportOnePerLineXThetaValuesMerged (const DocumentModelExportFormat &modelExportOverride,
78 const Document &document,
79 const MainWindowModel &modelMainWindow,
80 const QStringList &curvesIncluded,
81 const QString &delimiter,
82 const Transformation &transformation,
83 bool isLogXTheta,
84 bool isLogYRadius,
86 unsigned int &numWritesSoFar) const;
87 void initializeXThetaYRadiusValues (const QStringList &curvesIncluded,
89 QPointF linearlyInterpolate (const Points &points,
90 double ordinal,
91 const Transformation &transformation) const;
92 void loadXThetaYRadiusValues (const DocumentModelExportFormat &modelExportOverride,
93 const Document &document,
94 const MainWindowModel &modelMainWindow,
95 const QStringList &curvesIncluded,
96 const Transformation &transformation,
97 bool isLogXTheta,
98 bool isLogYRadius,
100 void loadXThetaYRadiusValuesForCurveInterpolatedSmooth (const DocumentModelCoords &modelCoords,
101 const DocumentModelGeneral &modelGeneral,
102 const MainWindowModel &modelMainWindow,
103 const Points &points,
105 QVector<QString*> &xThetaValues,
107 const Transformation &transformation,
108 bool isLogXTheta,
109 bool isLogYRadius) const;
110 void loadXThetaYRadiusValuesForCurveInterpolatedStraight (const DocumentModelCoords &modelCoords,
111 const DocumentModelGeneral &modelGeneral,
112 const MainWindowModel &modelMainWindow,
113 const Points &points,
115 QVector<QString*> &xThetaValues,
117 const Transformation &transformation) const;
118 void loadXThetaYRadiusValuesForCurveRaw (const DocumentModelCoords &modelCoords,
119 const DocumentModelGeneral &modelGeneral,
120 const MainWindowModel &modelMainWindow,
121 const Points &points,
122 QVector<QString*> &xThetaValues,
124 const Transformation &transformation) const;
125 int maxColumnSizeAllocation (const DocumentModelExportFormat &modelExportOverride,
126 const Document &document,
127 const Transformation &transformation,
128 bool isLogXTheta,
129 bool isLogYRadius,
130 const QStringList &curvesIncluded) const;
131 ExportValuesOrdinal ordinalsAtIntervals (double pointsIntervalRelations,
133 CurveConnectAs curveConnectAs,
134 const Transformation &transformation,
135 bool isLogXTheta,
136 bool isLogYRadius,
137 const Points &points) const;
138 ExportValuesOrdinal ordinalsAtIntervalsSmoothGraph (double pointsIntervalRelations,
139 const Transformation &transformation,
140 bool isLogXTheta,
141 bool isLogYRadius,
142 const Points &points) const;
143 ExportValuesOrdinal ordinalsAtIntervalsSmoothScreen (double pointsIntervalRelations,
144 const Points &points) const;
145 ExportValuesOrdinal ordinalsAtIntervalsStraightGraph (double pointsIntervalRelations,
146 const Transformation &transformation,
147 const Points &points) const;
148 ExportValuesOrdinal ordinalsAtIntervalsStraightScreen (double pointsIntervalRelations,
149 const Points &points) const;
150
152 void outputXThetaYRadiusValues (const DocumentModelExportFormat &modelExport,
153 const QStringList &curvesIncluded,
155 const QString &delimiter,
157 unsigned int &numWritesSoFar) const;
158};
159
160#endif // EXPORT_FILE_RELATIONS_H
CurveConnectAs
const int INNER_RADIUS_MIN
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:42
Strategy base class for exporting to a file. This class provides common methods.
Strategy class for exporting to a file. This strategy is external to the Document class so that class...
ExportFileRelations()
Single constructor.
void exportToFile(const DocumentModelExportFormat &modelExportOverride, const Document &document, const MainWindowModel &modelMainWindow, const Transformation &transformation, QTextStream &str, unsigned int &numWritesSoFar) const
Export Document points according to the settings.
Model for DlgSettingsMainWindow.
Unit test of Export classes.
Definition TestExport.h:17
Affine transformation between screen and graph coordinates, based on digitized axis points.