Krita Source Code Documentation
Loading...
Searching...
No Matches
KisSnapPointStrategy.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2017 Dmitry Kazakov <dimula73@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
8
9#include <QPainterPath>
10#include <KoViewConverter.h>
11#include "kis_global.h"
12
17
23
27
28bool KisSnapPointStrategy::snap(const QPointF &mousePosition, KoSnapProxy *proxy, qreal maxSnapDistance)
29{
30 Q_UNUSED(proxy);
31
32 QPointF snappedPoint = mousePosition;
33 qreal minDistance = std::numeric_limits<qreal>::max();
34
35 Q_FOREACH (const QPointF &pt, m_d->points) {
36 const qreal dist = kisDistance(mousePosition, pt);
37
38 if (dist < maxSnapDistance && dist < minDistance) {
39 minDistance = dist;
40 snappedPoint = pt;
41 }
42 }
43
44 setSnappedPosition(snappedPoint, ToPoint);
45 return minDistance < std::numeric_limits<qreal>::max();
46}
47
48QPainterPath KisSnapPointStrategy::decoration(const KoViewConverter &converter) const
49{
50 QRectF unzoomedRect = converter.viewToDocument(QRectF(0, 0, 11, 11));
51 unzoomedRect.moveCenter(snappedPosition());
52 QPainterPath decoration;
53 decoration.addEllipse(unzoomedRect);
54 return decoration;
55}
56
57void KisSnapPointStrategy::addPoint(const QPointF &pt)
58{
59 m_d->points << pt;
60}
61
bool snap(const QPointF &mousePosition, KoSnapProxy *proxy, qreal maxSnapDistance) override
QPainterPath decoration(const KoViewConverter &converter) const override
returns the current snap strategy decoration
KisSnapPointStrategy(KoSnapGuide::Strategy type=KoSnapGuide::CustomSnapping)
void addPoint(const QPointF &pt)
const QScopedPointer< Private > m_d
Strategy
the different possible snap Strategies
Definition KoSnapGuide.h:49
void setSnappedPosition(const QPointF &position, SnapType snapType)
sets the current snapped position
QPointF snappedPosition() const
returns the snapped position form the last call to snapToPoints
virtual QPointF viewToDocument(const QPointF &viewPoint) const
qreal kisDistance(const QPointF &pt1, const QPointF &pt2)
Definition kis_global.h:190