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;
19 class MainWindowModel;
20 class QTextStream;
21 class Transformation;
22 
25 {
26 public:
29 
32  void exportToFile (const DocumentModelExportFormat &modelExportOverride,
33  const Document &document,
34  const MainWindowModel &modelMainWindow,
35  const Transformation &transformation,
36  QTextStream &str) const;
37 
38 private:
39  void exportAllPerLineXThetaValuesMerged (const DocumentModelExportFormat &modelExportOverride,
40  const Document &document,
41  const MainWindowModel &modelMainWindow,
42  const QStringList &curvesIncluded,
43  const QString &delimiter,
44  const Transformation &transformation,
45  QTextStream &str) const;
46  void exportOnePerLineXThetaValuesMerged (const DocumentModelExportFormat &modelExportOverride,
47  const Document &document,
48  const MainWindowModel &modelMainWindow,
49  const QStringList &curvesIncluded,
50  const QString &delimiter,
51  const Transformation &transformation,
52  QTextStream &str) const;
53  void initializeXThetaYRadiusValues (const QStringList &curvesIncluded,
54  QVector<QVector<QString*> > &xThetaYRadiusValues) const;
55  QPointF linearlyInterpolate (const Points &points,
56  double ordinal,
57  const Transformation &transformation) const;
58  void loadXThetaYRadiusValues (const DocumentModelExportFormat &modelExportOverride,
59  const Document &document,
60  const MainWindowModel &modelMainWindow,
61  const QStringList &curvesIncluded,
62  const Transformation &transformation,
63  QVector<QVector<QString*> > &xThetaYRadiusValues) const;
64  void loadXThetaYRadiusValuesForCurveInterpolatedSmooth (const DocumentModelCoords &modelCoords,
65  const MainWindowModel &modelMainWindow,
66  const Points &points,
67  const ExportValuesOrdinal &ordinals,
68  QVector<QString*> &xThetaValues,
69  QVector<QString*> &yRadiusValues,
70  const Transformation &transformation) const;
71  void loadXThetaYRadiusValuesForCurveInterpolatedStraight (const DocumentModelCoords &modelCoords,
72  const MainWindowModel &modelMainWindow,
73  const Points &points,
74  const ExportValuesOrdinal &ordinals,
75  QVector<QString*> &xThetaValues,
76  QVector<QString*> &yRadiusValues,
77  const Transformation &transformation) const;
78  void loadXThetaYRadiusValuesForCurveRaw (const DocumentModelCoords &modelCoords,
79  const MainWindowModel &modelMainWindow,
80  const Points &points,
81  QVector<QString*> &xThetaValues,
82  QVector<QString*> &yRadiusValues,
83  const Transformation &transformation) const;
84  int maxColumnSizeAllocation (const DocumentModelExportFormat &modelExportOverride,
85  const Document &document,
86  const Transformation &transformation,
87  const QStringList &curvesIncluded) const;
88  ExportValuesOrdinal ordinalsAtIntervals (double pointsIntervalRelations,
89  ExportPointsIntervalUnits pointsIntervalUnits,
90  CurveConnectAs curveConnectAs,
91  const Transformation &transformation,
92  const Points &points) const;
93  ExportValuesOrdinal ordinalsAtIntervalsSmoothGraph (double pointsIntervalRelations,
94  const Transformation &transformation,
95  const Points &points) const;
96  ExportValuesOrdinal ordinalsAtIntervalsSmoothScreen (double pointsIntervalRelations,
97  const Points &points) const;
98  ExportValuesOrdinal ordinalsAtIntervalsStraightGraph (double pointsIntervalRelations,
99  const Transformation &transformation,
100  const Points &points) const;
101  ExportValuesOrdinal ordinalsAtIntervalsStraightScreen (double pointsIntervalRelations,
102  const Points &points) const;
103 
105  void outputXThetaYRadiusValues (const DocumentModelExportFormat &modelExport,
106  const QStringList &curvesIncluded,
107  QVector<QVector<QString*> > &xThetaYRadiusValues,
108  const QString &delimiter,
109  QTextStream &str) const;
110 };
111 
112 #endif // EXPORT_FILE_RELATIONS_H
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:40
Strategy base class for exporting to a file. This class provides common methods.
ExportFileRelations()
Single constructor.