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 MainWindowModel;
00020 class QTextStream;
00021 class Transformation;
00022
00024 class ExportFileRelations : public ExportFileAbstractBase
00025 {
00026 public:
00028 ExportFileRelations();
00029
00032 void exportToFile (const DocumentModelExportFormat &modelExportOverride,
00033 const Document &document,
00034 const MainWindowModel &modelMainWindow,
00035 const Transformation &transformation,
00036 QTextStream &str) const;
00037
00038 private:
00039 void exportAllPerLineXThetaValuesMerged (const DocumentModelExportFormat &modelExportOverride,
00040 const Document &document,
00041 const MainWindowModel &modelMainWindow,
00042 const QStringList &curvesIncluded,
00043 const QString &delimiter,
00044 const Transformation &transformation,
00045 QTextStream &str) const;
00046 void exportOnePerLineXThetaValuesMerged (const DocumentModelExportFormat &modelExportOverride,
00047 const Document &document,
00048 const MainWindowModel &modelMainWindow,
00049 const QStringList &curvesIncluded,
00050 const QString &delimiter,
00051 const Transformation &transformation,
00052 QTextStream &str) const;
00053 void initializeXThetaYRadiusValues (const QStringList &curvesIncluded,
00054 QVector<QVector<QString*> > &xThetaYRadiusValues) const;
00055 QPointF linearlyInterpolate (const Points &points,
00056 double ordinal,
00057 const Transformation &transformation) const;
00058 void loadXThetaYRadiusValues (const DocumentModelExportFormat &modelExportOverride,
00059 const Document &document,
00060 const MainWindowModel &modelMainWindow,
00061 const QStringList &curvesIncluded,
00062 const Transformation &transformation,
00063 QVector<QVector<QString*> > &xThetaYRadiusValues) const;
00064 void loadXThetaYRadiusValuesForCurveInterpolatedSmooth (const DocumentModelCoords &modelCoords,
00065 const MainWindowModel &modelMainWindow,
00066 const Points &points,
00067 const ExportValuesOrdinal &ordinals,
00068 QVector<QString*> &xThetaValues,
00069 QVector<QString*> &yRadiusValues,
00070 const Transformation &transformation) const;
00071 void loadXThetaYRadiusValuesForCurveInterpolatedStraight (const DocumentModelCoords &modelCoords,
00072 const MainWindowModel &modelMainWindow,
00073 const Points &points,
00074 const ExportValuesOrdinal &ordinals,
00075 QVector<QString*> &xThetaValues,
00076 QVector<QString*> &yRadiusValues,
00077 const Transformation &transformation) const;
00078 void loadXThetaYRadiusValuesForCurveRaw (const DocumentModelCoords &modelCoords,
00079 const MainWindowModel &modelMainWindow,
00080 const Points &points,
00081 QVector<QString*> &xThetaValues,
00082 QVector<QString*> &yRadiusValues,
00083 const Transformation &transformation) const;
00084 int maxColumnSizeAllocation (const DocumentModelExportFormat &modelExportOverride,
00085 const Document &document,
00086 const Transformation &transformation,
00087 const QStringList &curvesIncluded) const;
00088 ExportValuesOrdinal ordinalsAtIntervals (double pointsIntervalRelations,
00089 ExportPointsIntervalUnits pointsIntervalUnits,
00090 CurveConnectAs curveConnectAs,
00091 const Transformation &transformation,
00092 const Points &points) const;
00093 ExportValuesOrdinal ordinalsAtIntervalsSmoothGraph (double pointsIntervalRelations,
00094 const Transformation &transformation,
00095 const Points &points) const;
00096 ExportValuesOrdinal ordinalsAtIntervalsSmoothScreen (double pointsIntervalRelations,
00097 const Points &points) const;
00098 ExportValuesOrdinal ordinalsAtIntervalsStraightGraph (double pointsIntervalRelations,
00099 const Transformation &transformation,
00100 const Points &points) const;
00101 ExportValuesOrdinal ordinalsAtIntervalsStraightScreen (double pointsIntervalRelations,
00102 const Points &points) const;
00103
00105 void outputXThetaYRadiusValues (const DocumentModelExportFormat &modelExport,
00106 const QStringList &curvesIncluded,
00107 QVector<QVector<QString*> > &xThetaYRadiusValues,
00108 const QString &delimiter,
00109 QTextStream &str) const;
00110 };
00111
00112 #endif // EXPORT_FILE_RELATIONS_H