00001
00002
00003
00004
00005
00006
00007 #ifndef CURVES_GRAPHS_H
00008 #define CURVES_GRAPHS_H
00009
00010 #include "CallbackSearchReturn.h"
00011 #include "Curve.h"
00012 #include <QList>
00013 #include <QStringList>
00014
00015 class CurveStyles;
00016 class Point;
00017 class QXmlStreamReader;
00018 class QXmlStreamWriter;
00019 class Transformation;
00020
00021 typedef QList<Curve> CurveList;
00022
00024 class CurvesGraphs
00025 {
00026 public:
00027 CurvesGraphs();
00028
00030 void addGraphCurveAtEnd (Curve curve);
00031
00033 void addPoint (const Point &point);
00034
00036 Curve *curveForCurveName (const QString &curveName);
00037
00039 const Curve *curveForCurveName (const QString &curveName) const;
00040
00042 QStringList curvesGraphsNames () const;
00043
00045 int curvesGraphsNumPoints (const QString &curveName) const;
00046
00048 void iterateThroughCurvePoints (const QString &curveNameWanted,
00049 const Functor2wRet<const QString &, const Point &, CallbackSearchReturn> &ftorWithCallback);
00050
00052 void iterateThroughCurveSegments (const QString &curveNameWanted,
00053 const Functor2wRet<const Point &, const Point &, CallbackSearchReturn> &ftorWithCallback) const;
00054
00056 void iterateThroughCurvesPoints (const Functor2wRet<const QString &, const Point &, CallbackSearchReturn> &ftorWithCallback);
00057
00059 void iterateThroughCurvesPoints (const Functor2wRet<const QString &, const Point &, CallbackSearchReturn> &ftorWithCallback) const;
00060
00062 void loadPreVersion6 (QDataStream &str);
00063
00065 void loadXml(QXmlStreamReader &reader);
00066
00068 int numCurves () const;
00069
00071 void printStream (QString indentation,
00072 QTextStream &str) const;
00073
00075 void removePoint (const QString &pointIdentifier);
00076
00078 void saveXml(QXmlStreamWriter &writer) const;
00079
00081 void updatePointOrdinals (const Transformation &transformation);
00082
00083 private:
00084
00085 CurveList m_curvesGraphs;
00086 };
00087
00088 #endif // CURVES_GRAPHS_H