00001
00002
00003
00004
00005
00006
00007 #ifndef GRAPHICS_SCENE_H
00008 #define GRAPHICS_SCENE_H
00009
00010 #include "CmdMediator.h"
00011 #include "GraphicsLinesForCurves.h"
00012 #include <QGraphicsScene>
00013 #include <QStringList>
00014
00015 class CmdMediator;
00016 class Curve;
00017 class CurvesGraphs;
00018 class CurveStyles;
00019 class GeometryWindow;
00020 class GraphicsPoint;
00021 class MainWindow;
00022 class PointStyle;
00023 class QTextStream;
00024 class Transformation;
00025
00032 class GraphicsScene : public QGraphicsScene
00033 {
00034 public:
00036 GraphicsScene(MainWindow *mainWindow);
00037
00039 void addTemporaryPoint (const QString &identifier,
00040 GraphicsPoint *point);
00041
00043 GraphicsPoint *createPoint (const QString &identifier,
00044 const PointStyle &pointStyle,
00045 const QPointF &posScreen,
00046 GeometryWindow *geometryWindow);
00047
00049 void hideAllItemsExceptImage();
00050
00052 QStringList positionHasChangedPointIdentifiers () const;
00053
00055 void printStream (QString indentation,
00056 QTextStream &str);
00057
00059 void removePoint (const QString &identifier);
00060
00063 void removeTemporaryPointIfExists ();
00064
00066 void resetOnLoad();
00067
00069 void resetPositionHasChangedFlags();
00070
00072 void showCurves (bool show,
00073 bool showAll = false,
00074 const QString &curveName = "");
00075
00078 void updateAfterCommand (CmdMediator &cmdMediator,
00079 double highlightOpacity,
00080 GeometryWindow *geometryWindow);
00081
00083 void updateCurveStyles(const CurveStyles &modelCurveStyles);
00084
00087 void updateGraphicsLinesToMatchGraphicsPoints (const CurveStyles &modelCurveStyles,
00088 const Transformation &transformation);
00089
00090 private:
00091
00093 QString dumpCursors () const;
00094
00095 const QGraphicsPixmapItem *image () const;
00096
00098 void updateCurves (CmdMediator &cmdMediator);
00099
00101 void updatePointMembership (CmdMediator &cmdMediator,
00102 GeometryWindow *geometryWindow);
00103
00105 GraphicsLinesForCurves m_graphicsLinesForCurves;
00106 };
00107
00108 #endif // GRAPHICS_SCENE_H