00001
00002
00003
00004
00005
00006
00007 #ifndef CHECKER_H
00008 #define CHECKER_H
00009
00010 #include "CheckerMode.h"
00011 #include "DocumentAxesPointsRequired.h"
00012 #include "GridLine.h"
00013 #include "GridLines.h"
00014 #include <QColor>
00015 #include <QList>
00016 #include <QPainterPath>
00017 #include <QPolygonF>
00018
00019 class DocumentModelAxesChecker;
00020 class DocumentModelCoords;
00021 class Point;
00022 class QGraphicsEllipseItem;
00023 class QGraphicsItem;
00024 class QGraphicsScene;
00025 class QPolygonF;
00026 class Transformation;
00027
00033 class Checker
00034 {
00035 public:
00037 Checker(QGraphicsScene &scene);
00038
00042 void prepareForDisplay (const QPolygonF &polygon,
00043 int pointRadius,
00044 const DocumentModelAxesChecker &modelAxesChecker,
00045 const DocumentModelCoords &modelCoords,
00046 DocumentAxesPointsRequired documentAxesPointsRequired);
00047
00050 void prepareForDisplay (const QList<Point> &Points,
00051 int pointRadius,
00052 const DocumentModelAxesChecker &modelAxesChecker,
00053 const DocumentModelCoords &modelCoords,
00054 const Transformation &transformation,
00055 DocumentAxesPointsRequired documentAxesPointsRequired);
00056
00058 void setVisible (bool visible);
00059
00062 virtual void updateModelAxesChecker (const DocumentModelAxesChecker &modelAxesChecker);
00063
00064 private:
00065 Checker();
00066
00067
00068
00069 void adjustPolarAngleRanges (const DocumentModelCoords &modelCoords,
00070 const Transformation &transformation,
00071 const QList<Point> &points,
00072 double &xMin,
00073 double &xMax,
00074 double &yMin) const;
00075
00076
00077 void setLineColor (GridLine &gridLine,
00078 const QPen &pen);
00079
00080 QGraphicsScene &m_scene;
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091 GridLines m_gridLines;
00092 };
00093
00094 #endif // CHECKER_H