Engauge Digitizer 2
Loading...
Searching...
No Matches
GridLineFactory.h
Go to the documentation of this file.
1/******************************************************************************************************
2 * (C) 2014 markummitchell@github.com. This file is part of Engauge Digitizer, which is released *
3 * under GNU General Public License version 2 (GPLv2) or (at your option) any later version. See file *
4 * LICENSE or go to gnu.org/licenses for details. Distribution requires prior written permission. *
5 ******************************************************************************************************/
6
7#ifndef GRID_LINE_FACTORY_H
8#define GRID_LINE_FACTORY_H
9
10#include "GridLine.h"
11#include "Point.h"
12#include <QList>
13
14class Document;
17class GridLines;
18class MainWindowModel;
19class QGraphicsScene;
20class QTransform;
21class Transformation;
22
30{
31public:
33 GridLineFactory(QGraphicsScene &scene,
34 const DocumentModelCoords &modelCoords);
35
37 GridLineFactory(QGraphicsScene &scene,
38 int pointRadius,
39 const QList<Point> &pointsToIsolate,
40 const DocumentModelCoords &modelCoords);
41
44 GridLine *createGridLine (double xFrom,
45 double yFrom,
46 double xTo,
47 double yTo,
48 const Transformation &transformation);
49
52 const Document &document,
53 const MainWindowModel &modelMainWindow,
54 const Transformation &transformation,
55 GridLines &gridLines);
56
57private:
59
60 void bindItemToScene(QGraphicsItem *item) const;
61 void createTransformAlign (const Transformation &transformation,
62 double radiusLinearCartesian,
63 const QPointF &posOriginScreen,
64 QTransform &transformAlign,
65 double &ellipseXAxis,
66 double &ellipseYAxis) const;
67 QGraphicsItem *ellipseItem (const Transformation &transformation,
68 double radiusLinearCartesian,
69 const QPointF &posStartScreen,
70 const QPointF &posEndScreen) const;
71 void finishActiveGridLine (const QPointF &posStartScreen,
72 const QPointF &posEndScreen,
73 double yFrom,
74 double yTo,
75 const Transformation &transformation,
76 GridLine &gridLine) const;
77 QGraphicsItem *lineItem (const QPointF &posStartScreen,
78 const QPointF &posEndScreen) const;
79 double minScreenDistanceFromPoints (const QPointF &posScreen);
80
81 QGraphicsScene &m_scene;
82 const int m_pointRadius;
83 const QList<Point> m_pointsToIsolate;
84 const DocumentModelCoords m_modelCoords;
85 bool m_isChecker;
86};
87
88#endif // GRID_LINE_FACTORY_H
Model for DlgSettingsCoords and CmdSettingsCoords.
Model for DlgSettingsGridDisplay and CmdSettingsGridDisplay.
Storage of one imported image and the data attached to that image.
Definition Document.h:44
void createGridLinesForEvenlySpacedGrid(const DocumentModelGridDisplay &modelGridDisplay, const Document &document, const MainWindowModel &modelMainWindow, const Transformation &transformation, GridLines &gridLines)
Create a rectangular (cartesian) or annular (polar) grid of evenly spaced grid lines.
GridLine * createGridLine(double xFrom, double yFrom, double xTo, double yTo, const Transformation &transformation)
Create grid line, either along constant X/theta or constant Y/radius side.
GridLineFactory(QGraphicsScene &scene, const DocumentModelCoords &modelCoords)
Simple constructor for general use (i.e. not by Checker)
Single grid line drawn a straight or curved line.
Definition GridLine.h:21
Container class for GridLine objects.
Definition GridLines.h:19
Model for DlgSettingsMainWindow.
Affine transformation between screen and graph coordinates, based on digitized axis points.