Engauge Digitizer  2
 All Classes Files Functions Variables Enumerations Enumerator Friends Pages
ExportFileFunctions.h
1 #ifndef EXPORT_FILE_FUNCTIONS_H
2 #define EXPORT_FILE_FUNCTIONS_H
3 
4 #include "ExportFileAbstractBase.h"
5 #include "ExportValuesXOrY.h"
6 #include <QStringList>
7 #include <QVector>
8 
9 class Document;
12 class MainWindowModel;
13 class QTextStream;
14 class Transformation;
15 
18 {
19 public:
22 
25  void exportToFile (const DocumentModelExportFormat &modelExportOverride,
26  const Document &document,
27  const MainWindowModel &modelMainWindow,
28  const Transformation &transformation,
29  QTextStream &str) const;
30 
31 private:
32 
33  void exportAllPerLineXThetaValuesMerged (const DocumentModelExportFormat &modelExportOverride,
34  const Document &document,
35  const MainWindowModel &modelMainWindow,
36  const QStringList &curvesIncluded,
37  const ExportValuesXOrY &xThetaValues,
38  const QString &delimiter,
39  const Transformation &transformation,
40  QTextStream &str) const;
41  void exportOnePerLineXThetaValuesMerged (const DocumentModelExportFormat &modelExportOverride,
42  const Document &document,
43  const MainWindowModel &modelMainWindow,
44  const QStringList &curvesIncluded,
45  const ExportValuesXOrY &xThetaValues,
46  const QString &delimiter,
47  const Transformation &transformation,
48  QTextStream &str) const;
49 
53  void initializeYRadiusValues (const QStringList &curvesIncluded,
54  const ExportValuesXOrY &xThetaValuesMerged,
55  QVector<QVector<QString*> > &yRadiusValues) const;
56 
57  double linearlyInterpolate (const Points &points,
58  double xThetaValue,
59  const Transformation &transformation) const;
60  void loadYRadiusValues (const DocumentModelExportFormat &modelExport,
61  const Document &document,
62  const MainWindowModel &modelMainWindow,
63  const QStringList &curvesIncluded,
64  const Transformation &transformation,
65  const ExportValuesXOrY &xThetaValues,
66  QVector<QVector<QString*> > &yRadiusValues) const;
67  void loadYRadiusValuesForCurveInterpolatedSmooth (const DocumentModelCoords &modelCoords,
68  const MainWindowModel &modelMainWindow,
69  const Points &points,
70  const ExportValuesXOrY &xThetaValues,
71  const Transformation &transformation,
72  QVector<QString*> &yRadiusValues) const;
73  void loadYRadiusValuesForCurveInterpolatedStraight (const DocumentModelCoords &modelCoords,
74  const MainWindowModel &modelMainWindow,
75  const Points &points,
76  const ExportValuesXOrY &xThetaValues,
77  const Transformation &transformation,
78  QVector<QString*> &yRadiusValues) const;
79  void loadYRadiusValuesForCurveRaw (const DocumentModelCoords &modelCoords,
80  const MainWindowModel &modelMainWindow,
81  const Points &points,
82  const ExportValuesXOrY &xThetaValues,
83  const Transformation &transformation,
84  QVector<QString*> &yRadiusValues) const;
85 
87  void outputXThetaYRadiusValues (const DocumentModelExportFormat &modelExportOverride,
88  const DocumentModelCoords &modelCoords,
89  const MainWindowModel &modelMainWindow,
90  const QStringList &curvesIncluded,
91  const ExportValuesXOrY &xThetaValuesMerged,
92  const Transformation &transformation,
93  QVector<QVector<QString*> > &yRadiusValues,
94  const QString &delimiter,
95  QTextStream &str) const;
96  // Only include rows that have at least one y/radius entry. This check is required when outputing one curve per row
97  // since the union of all x/theta values is applied to each curve
98  bool rowHasAtLeastOneYRadiusEntry (const QVector<QVector<QString*> > &yRadiusValues,
99  int row) const;
100 };
101 
102 #endif // EXPORT_FILE_FUNCTIONS_H
Model for DlgSettingsExportFormat and CmdSettingsExportFormat.
ExportFileFunctions()
Single constructor.
Affine transformation between screen and graph coordinates, based on digitized axis points...
Model for DlgSettingsMainWindow and CmdSettingsMainWindow.
Model for DlgSettingsCoords and CmdSettingsCoords.
Storage of one imported image and the data attached to that image.
Definition: Document.h:29
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...
void exportToFile(const DocumentModelExportFormat &modelExportOverride, const Document &document, const MainWindowModel &modelMainWindow, const Transformation &transformation, QTextStream &str) const
Export Document points according to the settings.