Engauge Digitizer 2
Loading...
Searching...
No Matches
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
16class Document;
19class MainWindowModel;
20class QTextStream;
21class Transformation;
22
25{
26public:
29
32 void exportToFile (const DocumentModelExportFormat &modelExportOverride,
33 const Document &document,
34 const MainWindowModel &modelMainWindow,
35 const Transformation &transformation,
36 QTextStream &str) const;
37
38private:
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 DlgSettingsCoords and CmdSettingsCoords.
Model for DlgSettingsExportFormat and CmdSettingsExportFormat.
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.
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) const
Export Document points according to the settings.
Model for DlgSettingsMainWindow.
Affine transformation between screen and graph coordinates, based on digitized axis points.