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 editPointGraph (bool isX,
00049 bool isY,
00050 double x,
00051 double y,
00052 const QStringList &identifiers,
00053 const Transformation &transformation);
00054
00056 void iterateThroughCurvePoints (const QString &curveNameWanted,
00057 const Functor2wRet<const QString &, const Point &, CallbackSearchReturn> &ftorWithCallback);
00058
00060 void iterateThroughCurveSegments (const QString &curveNameWanted,
00061 const Functor2wRet<const Point &, const Point &, CallbackSearchReturn> &ftorWithCallback) const;
00062
00064 void iterateThroughCurvesPoints (const Functor2wRet<const QString &, const Point &, CallbackSearchReturn> &ftorWithCallback);
00065
00067 void iterateThroughCurvesPoints (const Functor2wRet<const QString &, const Point &, CallbackSearchReturn> &ftorWithCallback) const;
00068
00070 void loadPreVersion6 (QDataStream &str);
00071
00073 void loadXml(QXmlStreamReader &reader);
00074
00076 int numCurves () const;
00077
00079 void printStream (QString indentation,
00080 QTextStream &str) const;
00081
00083 void removePoint (const QString &pointIdentifier);
00084
00086 void saveXml(QXmlStreamWriter &writer) const;
00087
00089 void updatePointOrdinals (const Transformation &transformation);
00090
00091 private:
00092
00093 CurveList m_curvesGraphs;
00094 };
00095
00096 #endif // CURVES_GRAPHS_H