Engauge Digitizer 2
Loading...
Searching...
No Matches
GuidelineOffset.cpp
Go to the documentation of this file.
1/******************************************************************************************************
2 * (C) 2019 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#include "GuidelineOffset.h"
8#include "Logger.h"
9#include <QGraphicsView>
10#include "QtToString.h"
11#include "Transformation.h"
12
16
17QPointF GuidelineOffset::XT (const QGraphicsView &view,
18 const Transformation &transformation) const
19{
20 // Get scrolled extent so new Guideline appears in visible portion
21 QRect viewportRect = view.viewport()->rect();
22 QRect scrolledRect = view.viewportTransform ().inverted ().mapRect (viewportRect);
23 QRectF sceneRect = view.scene()->sceneRect();
24
25 LOG4CPP_DEBUG_S ((*mainCat)) << "GuidelineOffset::bottomTop"
26 << " viewportRect=" << QRectFToString (viewportRect).toLatin1().data()
27 << " scrolledRect=" << QRectFToString (scrolledRect).toLatin1().data()
28 << " sceneRect=" << QRectFToString (sceneRect).toLatin1().data();
29
30 // Use center of visible sscene
31 QPointF posScene (scrolledRect.center().x(),
32 scrolledRect.center().y()), posGraph;
33
34 transformation.transformScreenToRawGraph (posScene,
35 posGraph);
36
37 return posGraph;
38}
39
40QPointF GuidelineOffset::YR (const QGraphicsView &view,
41 const Transformation &transformation) const
42{
43 // Get scrolled extent so new Guideline appears in visible portion
44 QRect viewportRect = view.viewport()->rect();
45 QRect scrolledRect = view.viewportTransform ().inverted ().mapRect (viewportRect);
46 QRectF sceneRect = view.scene()->sceneRect();
47
48 LOG4CPP_DEBUG_S ((*mainCat)) << "GuidelineOffset::leftRight"
49 << " viewportRect=" << QRectFToString (viewportRect).toLatin1().data()
50 << " scrolledRect=" << QRectFToString (scrolledRect).toLatin1().data()
51 << " sceneRect=" << QRectFToString (sceneRect).toLatin1().data();
52
53 // Use center of visible sscene
54 QPointF posScene (scrolledRect.center().x(),
55 scrolledRect.center().y()), posGraph;
56
57 transformation.transformScreenToRawGraph (posScene,
58 posGraph);
59
60 return posGraph;
61}
log4cpp::Category * mainCat
Definition Logger.cpp:14
QString QRectFToString(const QRectF &rectF)
QPointF YR(const QGraphicsView &view, const Transformation &transformation) const
Compute UR offset for point in center of scene, and returns point in graph coordinates.
QPointF XT(const QGraphicsView &view, const Transformation &transformation) const
Compute XT offset for point in center of scene, and returns point in graph coordinates.
Affine transformation between screen and graph coordinates, based on digitized axis points.
void transformScreenToRawGraph(const QPointF &coordScreen, QPointF &coordGraph) const
Transform from cartesian pixel screen coordinates to cartesian/polar graph coordinates.
#define LOG4CPP_DEBUG_S(logger)
Definition convenience.h:20