00001
00002
00003
00004
00005
00006
00007 #ifndef EXPORT_FILE_RELATIONS_H
00008 #define EXPORT_FILE_RELATIONS_H
00009
00010 #include "ExportFileAbstractBase.h"
00011 #include "ExportPointsIntervalUnits.h"
00012 #include "ExportValuesOrdinal.h"
00013 #include <QStringList>
00014 #include <QVector>
00015
00016 class Document;
00017 class DocumentModelCoords;
00018 class DocumentModelExportFormat;
00019 class DocumentModelGeneral;
00020 class MainWindowModel;
00021 class QTextStream;
00022 class Transformation;
00023
00025 class ExportFileRelations : public ExportFileAbstractBase
00026 {
00027 public:
00029 ExportFileRelations();
00030
00033 void exportToFile (const DocumentModelExportFormat &modelExportOverride,
00034 const Document &document,
00035 const MainWindowModel &modelMainWindow,
00036 const Transformation &transformation,
00037 QTextStream &str) const;
00038
00039 private:
00040 void exportAllPerLineXThetaValuesMerged (const DocumentModelExportFormat &modelExportOverride,
00041 const Document &document,
00042 const MainWindowModel &modelMainWindow,
00043 const QStringList &curvesIncluded,
00044 const QString &delimiter,
00045 const Transformation &transformation,
00046 QTextStream &str) const;
00047 void exportOnePerLineXThetaValuesMerged (const DocumentModelExportFormat &modelExportOverride,
00048 const Document &document,
00049 const MainWindowModel &modelMainWindow,
00050 const QStringList &curvesIncluded,
00051 const QString &delimiter,
00052 const Transformation &transformation,
00053 QTextStream &str) const;
00054 void initializeXThetaYRadiusValues (const QStringList &curvesIncluded,
00055 QVector<QVector<QString*> > &xThetaYRadiusValues) const;
00056 QPointF linearlyInterpolate (const Points &points,
00057 double ordinal,
00058 const Transformation &transformation) const;
00059 void loadXThetaYRadiusValues (const DocumentModelExportFormat &modelExportOverride,
00060 const Document &document,
00061 const MainWindowModel &modelMainWindow,
00062 const QStringList &curvesIncluded,
00063 const Transformation &transformation,
00064 QVector<QVector<QString*> > &xThetaYRadiusValues) const;
00065 void loadXThetaYRadiusValuesForCurveInterpolatedSmooth (const DocumentModelCoords &modelCoords,
00066 const DocumentModelGeneral &modelGeneral,
00067 const MainWindowModel &modelMainWindow,
00068 const Points &points,
00069 const ExportValuesOrdinal &ordinals,
00070 QVector<QString*> &xThetaValues,
00071 QVector<QString*> &yRadiusValues,
00072 const Transformation &transformation) const;
00073 void loadXThetaYRadiusValuesForCurveInterpolatedStraight (const DocumentModelCoords &modelCoords,
00074 const DocumentModelGeneral &modelGeneral,
00075 const MainWindowModel &modelMainWindow,
00076 const Points &points,
00077 const ExportValuesOrdinal &ordinals,
00078 QVector<QString*> &xThetaValues,
00079 QVector<QString*> &yRadiusValues,
00080 const Transformation &transformation) const;
00081 void loadXThetaYRadiusValuesForCurveRaw (const DocumentModelCoords &modelCoords,
00082 const DocumentModelGeneral &modelGeneral,
00083 const MainWindowModel &modelMainWindow,
00084 const Points &points,
00085 QVector<QString*> &xThetaValues,
00086 QVector<QString*> &yRadiusValues,
00087 const Transformation &transformation) const;
00088 int maxColumnSizeAllocation (const DocumentModelExportFormat &modelExportOverride,
00089 const Document &document,
00090 const Transformation &transformation,
00091 const QStringList &curvesIncluded) const;
00092 ExportValuesOrdinal ordinalsAtIntervals (double pointsIntervalRelations,
00093 ExportPointsIntervalUnits pointsIntervalUnits,
00094 CurveConnectAs curveConnectAs,
00095 const Transformation &transformation,
00096 const Points &points) const;
00097 ExportValuesOrdinal ordinalsAtIntervalsSmoothGraph (double pointsIntervalRelations,
00098 const Transformation &transformation,
00099 const Points &points) const;
00100 ExportValuesOrdinal ordinalsAtIntervalsSmoothScreen (double pointsIntervalRelations,
00101 const Points &points) const;
00102 ExportValuesOrdinal ordinalsAtIntervalsStraightGraph (double pointsIntervalRelations,
00103 const Transformation &transformation,
00104 const Points &points) const;
00105 ExportValuesOrdinal ordinalsAtIntervalsStraightScreen (double pointsIntervalRelations,
00106 const Points &points) const;
00107
00109 void outputXThetaYRadiusValues (const DocumentModelExportFormat &modelExport,
00110 const QStringList &curvesIncluded,
00111 QVector<QVector<QString*> > &xThetaYRadiusValues,
00112 const QString &delimiter,
00113 QTextStream &str) const;
00114 };
00115
00116 #endif // EXPORT_FILE_RELATIONS_H