00001
00002
00003
00004
00005
00006
00007 #ifndef GRAPHICS_LINES_FOR_CURVES_H
00008 #define GRAPHICS_LINES_FOR_CURVES_H
00009
00010 #include <QHash>
00011
00012 class CurveStyles;
00013 class GeometryWindow;
00014 class GraphicsLinesForCurve;
00015 class GraphicsPoint;
00016 class GraphicsScene;
00017 class Point;
00018 class QGraphicsItem;
00019 class QPointF;
00020 class QTextStream;
00021 class Transformation;
00022
00023 typedef QHash<QString, GraphicsLinesForCurve*> GraphicsLinesContainer;
00024
00026 class GraphicsLinesForCurves
00027 {
00028 public:
00030 GraphicsLinesForCurves();
00031
00034 void addPoint (const QString &curveName,
00035 const QString &pointIdentifier,
00036 double ordinal,
00037 GraphicsPoint &point);
00038
00040 void addRemoveCurves (GraphicsScene &scene,
00041 const QStringList &curveNames);
00042
00044 void lineMembershipPurge (const CurveStyles &curveStyles);
00045
00047 void lineMembershipReset ();
00048
00050 void print () const;
00051
00053 void printStream (QString indentation,
00054 QTextStream &str) const;
00055
00057 void removePoint (const QString &identifier);
00058
00061 void removeTemporaryPointIfExists ();
00062
00064 void resetOnLoad();
00065
00067 void updateAfterCommand (GraphicsScene &scene,
00068 const CurveStyles &curveStyles,
00069 const QString &curveName,
00070 const Point &point,
00071 GeometryWindow *geometryWindow);
00072
00074 void updateCurveStyles (const CurveStyles &modelCurveStyles);
00075
00077 void updateGraphicsLinesToMatchGraphicsPoints (const CurveStyles &curveStyles);
00078
00080 void updateHighlightOpacity (double highlightOpacity);
00081
00083 void updatePointOrdinalsAfterDrag (const CurveStyles &curveStyles,
00084 const Transformation &transformation);
00085
00086 private:
00087
00088 GraphicsLinesContainer m_graphicsLinesForCurve;
00089 };
00090
00091 #endif // GRAPHICS_LINES_FOR_CURVES_H