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 QTextStream;
13 class Transformation;
14 
17 {
18 public:
21 
24  void exportToFile (const DocumentModelExportFormat &modelExportOverride,
25  const Document &document,
26  const Transformation &transformation,
27  QTextStream &str) const;
28 
29 private:
30 
31  void exportAllPerLineXThetaValuesMerged (const DocumentModelExportFormat &modelExportOverride,
32  const Document &document,
33  const QStringList &curvesIncluded,
34  const ExportValuesXOrY &xThetaValues,
35  const QString &delimiter,
36  const Transformation &transformation,
37  QTextStream &str) const;
38  void exportOnePerLineXThetaValuesMerged (const DocumentModelExportFormat &modelExportOverride,
39  const Document &document,
40  const QStringList &curvesIncluded,
41  const ExportValuesXOrY &xThetaValues,
42  const QString &delimiter,
43  const Transformation &transformation,
44  QTextStream &str) const;
45 
49  void initializeYRadiusValues (const QStringList &curvesIncluded,
50  const ExportValuesXOrY &xThetaValuesMerged,
51  QVector<QVector<QString*> > &yRadiusValues) const;
52 
53  double linearlyInterpolate (const Points &points,
54  double xThetaValue,
55  const Transformation &transformation) const;
56  void loadYRadiusValues (const DocumentModelExportFormat &modelExport,
57  const Document &document,
58  const QStringList &curvesIncluded,
59  const Transformation &transformation,
60  const ExportValuesXOrY &xThetaValues,
61  QVector<QVector<QString*> > &yRadiusValues) const;
62  void loadYRadiusValuesForCurveInterpolatedSmooth (const DocumentModelCoords &modelCoords,
63  const Points &points,
64  const ExportValuesXOrY &xThetaValues,
65  const Transformation &transformation,
66  QVector<QString*> &yRadiusValues) const;
67  void loadYRadiusValuesForCurveInterpolatedStraight (const DocumentModelCoords &modelCoords,
68  const Points &points,
69  const ExportValuesXOrY &xThetaValues,
70  const Transformation &transformation,
71  QVector<QString*> &yRadiusValues) const;
72  void loadYRadiusValuesForCurveRaw (const DocumentModelCoords &modelCoords,
73  const Points &points,
74  const ExportValuesXOrY &xThetaValues,
75  const Transformation &transformation,
76  QVector<QString*> &yRadiusValues) const;
77 
79  void outputXThetaYRadiusValues (const DocumentModelExportFormat &modelExportOverride,
80  const DocumentModelCoords &modelCoords,
81  const QStringList &curvesIncluded,
82  const ExportValuesXOrY &xThetaValuesMerged,
83  const Transformation &transformation,
84  QVector<QVector<QString*> > &yRadiusValues,
85  const QString &delimiter,
86  QTextStream &str) const;
87  // Only include rows that have at least one y/radius entry. This check is required when outputing one curve per row
88  // since the union of all x/theta values is applied to each curve
89  bool rowHasAtLeastOneYRadiusEntry (const QVector<QVector<QString*> > &yRadiusValues,
90  int row) const;
91 };
92 
93 #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 DlgSettingsCoords and CmdSettingsCoords.
void exportToFile(const DocumentModelExportFormat &modelExportOverride, const Document &document, const Transformation &transformation, QTextStream &str) const
Export Document points according to the settings.
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...