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 ScaleBar;
00025 class Transformation;
00026
00033 class GraphicsScene : public QGraphicsScene
00034 {
00035 public:
00037 GraphicsScene(MainWindow *mainWindow);
00038
00040 void addTemporaryPoint (const QString &identifier,
00041 GraphicsPoint *point);
00042
00045 void addTemporaryScaleBar (GraphicsPoint *point0,
00046 GraphicsPoint *point1,
00047 const QString &pointIdentifier0,
00048 const QString &pointIdentifier1);
00049
00051 GraphicsPoint *createPoint (const QString &identifier,
00052 const PointStyle &pointStyle,
00053 const QPointF &posScreen,
00054 GeometryWindow *geometryWindow);
00055
00057 void hideAllItemsExceptImage();
00058
00060 QStringList positionHasChangedPointIdentifiers () const;
00061
00063 void printStream (QString indentation,
00064 QTextStream &str);
00065
00067 void removePoint (const QString &identifier);
00068
00071 void removeTemporaryPointIfExists ();
00072
00074 void removeTemporaryScaleBarIfExists ();
00075
00077 void resetOnLoad();
00078
00080 void resetPositionHasChangedFlags();
00081
00083 void showCurves (bool show,
00084 bool showAll = false,
00085 const QString &curveName = "");
00086
00089 void updateAfterCommand (CmdMediator &cmdMediator,
00090 double highlightOpacity,
00091 GeometryWindow *geometryWindow);
00092
00094 void updateCurveStyles(const CurveStyles &modelCurveStyles);
00095
00098 void updateGraphicsLinesToMatchGraphicsPoints (const CurveStyles &modelCurveStyles,
00099 const Transformation &transformation);
00100
00101 private:
00102
00104 QString dumpCursors () const;
00105
00106 const QGraphicsPixmapItem *image () const;
00107
00109 void updateCurves (CmdMediator &cmdMediator);
00110
00112 void updatePointMembership (CmdMediator &cmdMediator,
00113 GeometryWindow *geometryWindow);
00114
00116 GraphicsLinesForCurves m_graphicsLinesForCurves;
00117 };
00118
00119 #endif // GRAPHICS_SCENE_H