Engauge Digitizer  2
 All Classes Files Functions Variables Enumerations Enumerator Friends Pages
Curve.h
1 #ifndef CURVE_H
2 #define CURVE_H
3 
4 #include "CallbackSearchReturn.h"
5 #include "ColorFilterSettings.h"
6 #include "CurveStyle.h"
7 #include "functor.h"
8 #include "Point.h"
9 #include "Points.h"
10 #include <QHash>
11 #include <QList>
12 #include <QString>
13 
14 extern const QString AXIS_CURVE_NAME;
15 extern const QString DEFAULT_GRAPH_CURVE_NAME;
16 extern const QString DUMMY_CURVE_NAME;
17 
18 class CurvesGraphs;
19 class QDataStream;
20 class QTextStream;
21 class QXmlStreamReader;
22 class QXmlStreamWriter;
23 class Transformation;
24 
26 class Curve
27 {
28 public:
30  Curve(const QString &curveName,
32  const CurveStyle &curveStyle);
33 
35  Curve (QDataStream &str);
36 
38  Curve (QXmlStreamReader &reader);
39 
41  Curve (const Curve &curve);
42 
44  Curve &operator=(const Curve &curve);
45 
47  void addPoint (Point point);
48 
51 
53  QString curveName () const;
54 
56  CurveStyle curveStyle() const;
57 
59  void editPoint (const QPointF &posGraph,
60  const QString &identifier);
61 
63  void exportToClipboard (const QHash<QString, bool> &selectedHash,
64  const Transformation &transformation,
65  QTextStream &strCsv,
66  QTextStream &strHtml,
67  CurvesGraphs &curvesGraphs) const;
68 
70  void iterateThroughCurvePoints (const Functor2wRet<const QString &, const Point &, CallbackSearchReturn> &ftorWithCallback) const;
71 
73  void iterateThroughCurveSegments (const Functor2wRet<const Point &, const Point &, CallbackSearchReturn> &ftorWithCallback) const;
74 
76  void movePoint (const QString &pointIdentifier,
77  const QPointF &deltaScreen);
78 
80  int numPoints () const;
81 
83  const Points points () const;
84 
86  QPointF positionGraph (const QString &pointIdentifier) const;
87 
89  QPointF positionScreen (const QString &pointIdentifier) const;
90 
92  void printStream (QString indentation,
93  QTextStream &str) const;
94 
96  void removePoint (const QString &identifier);
97 
99  void saveXml(QXmlStreamWriter &writer) const;
100 
102  void setColorFilterSettings (const ColorFilterSettings &colorFilterSettings);
103 
105  void setCurveName (const QString &curveName);
106 
108  void setCurveStyle (const CurveStyle &curveStyle);
109 
112  void updatePointOrdinals (const Transformation &transformation);
113 
114 private:
115  Curve();
116 
117  void loadCurvePoints(QXmlStreamReader &reader);
118  void loadXml(QXmlStreamReader &reader);
119  Point *pointForPointIdentifier (const QString pointIdentifier);
120  void updatePointOrdinalsFunctions (const Transformation &transformation);
121  void updatePointOrdinalsRelations ();
122 
123  QString m_curveName;
124  Points m_points;
125 
126  ColorFilterSettings m_colorFilterSettings;
127  CurveStyle m_curveStyle;
128 };
129 
130 #endif // CURVE_H
void removePoint(const QString &identifier)
Perform the opposite of addPointAtEnd.
Definition: Curve.cpp:428
QPointF positionScreen(const QString &pointIdentifier) const
Return the position, in screen coordinates, of the specified Point.
Definition: Curve.cpp:391
Color filter parameters for one curve. For a class, this is handled the same as LineStyle and PointSt...
void exportToClipboard(const QHash< QString, bool > &selectedHash, const Transformation &transformation, QTextStream &strCsv, QTextStream &strHtml, CurvesGraphs &curvesGraphs) const
Export points in this Curve found in the specified point list.
Definition: Curve.cpp:154
const Points points() const
Return a shallow copy of the Points.
Definition: Curve.cpp:369
void setCurveStyle(const CurveStyle &curveStyle)
Set curve style.
Definition: Curve.cpp:473
void addPoint(Point point)
Add Point to this Curve.
Definition: Curve.cpp:117
void setColorFilterSettings(const ColorFilterSettings &colorFilterSettings)
Set color filter.
Definition: Curve.cpp:463
int numPoints() const
Number of points.
Definition: Curve.cpp:350
void updatePointOrdinals(const Transformation &transformation)
See CurveGraphs::updatePointOrdinals.
Definition: Curve.cpp:478
Class that represents one digitized point. The screen-to-graph coordinate transformation is always ex...
Definition: Point.h:17
QPointF positionGraph(const QString &pointIdentifier) const
Return the position, in graph coordinates, of the specified Point.
Definition: Curve.cpp:374
void printStream(QString indentation, QTextStream &str) const
Debugging method that supports print method of this class and printStream method of some other class(...
Definition: Curve.cpp:408
void editPoint(const QPointF &posGraph, const QString &identifier)
Edit the graph coordinates of an axis point. This method does not apply to a graph point...
Definition: Curve.cpp:137
Curve & operator=(const Curve &curve)
Assignment constructor.
Definition: Curve.cpp:107
void movePoint(const QString &pointIdentifier, const QPointF &deltaScreen)
Translate the position of a point by the specified distance vector.
Definition: Curve.cpp:341
Affine transformation between screen and graph coordinates, based on digitized axis points...
Container for all graph curves. The axes point curve is external to this class.
Definition: CurvesGraphs.h:18
void iterateThroughCurvePoints(const Functor2wRet< const QString &, const Point &, CallbackSearchReturn > &ftorWithCallback) const
Apply functor to Points on Curve.
Definition: Curve.cpp:219
void setCurveName(const QString &curveName)
Change the curve name.
Definition: Curve.cpp:468
Container for LineStyle and PointStyle for one Curve.
Definition: CurveStyle.h:12
Container for one set of digitized Points.
Definition: Curve.h:26
CurveStyle curveStyle() const
Return the curve style.
Definition: Curve.cpp:132
void iterateThroughCurveSegments(const Functor2wRet< const Point &, const Point &, CallbackSearchReturn > &ftorWithCallback) const
Apply functor to successive Points, as line segments, on Curve. This could be a bit slow...
Definition: Curve.cpp:234
void saveXml(QXmlStreamWriter &writer) const
Serialize curve.
Definition: Curve.cpp:441
ColorFilterSettings colorFilterSettings() const
Return the color filter.
Definition: Curve.cpp:122
QString curveName() const
Name of this Curve.
Definition: Curve.cpp:127