7#ifndef KOSNAPSTRATEGY_H
8#define KOSNAPSTRATEGY_H
14class TestSnapStrategy;
34 virtual bool snap(
const QPointF &mousePosition,
KoSnapProxy * proxy, qreal maxSnapDistance) = 0;
40 static qreal scalarProduct(
const QPointF &
p1,
const QPointF &
p2);
43 QPointF snappedPosition()
const;
51 void setSnappedPosition(
const QPointF &position,
SnapType snapType);
61 return int(lhs) < int(rhs);
69 bool snap(
const QPointF &mousePosition,
KoSnapProxy * proxy, qreal maxSnapDistance)
override;
70 QPainterPath decoration(
const KoViewConverter &converter)
const override;
81 bool snap(
const QPointF &mousePosition,
KoSnapProxy * proxy, qreal maxSnapDistance)
override;
82 QPainterPath decoration(
const KoViewConverter &converter)
const override;
88 friend class TestSnapStrategy;
91 bool snap(
const QPointF &mousePosition,
KoSnapProxy * proxy, qreal maxSnapDistance)
override;
92 QPainterPath decoration(
const KoViewConverter &converter)
const override;
94 qreal project(
const QPointF &lineStart ,
const QPointF &lineEnd,
const QPointF &point);
95 QPointF extensionDirection(
KoPathPoint * point,
const QTransform &matrix);
96 bool snapToExtension(QPointF &position,
KoPathPoint * point,
const QTransform &matrix);
105 bool snap(
const QPointF &mousePosition,
KoSnapProxy * proxy, qreal maxSnapDistance)
override;
106 QPainterPath decoration(
const KoViewConverter &converter)
const override;
114 bool snap(
const QPointF &mousePosition,
KoSnapProxy * proxy, qreal maxSnapDistance)
override;
115 QPainterPath decoration(
const KoViewConverter &converter)
const override;
121 friend class TestSnapStrategy;
124 bool snap(
const QPointF &mousePosition,
KoSnapProxy * proxy, qreal maxSnapDistance)
override;
125 QPainterPath decoration(
const KoViewConverter &converter)
const override;
127 qreal squareDistanceToLine(
const QPointF &lineA,
const QPointF &lineB,
const QPointF &point, QPointF &pointOnLine);
128 QPointF m_boxPoints[5];
bool operator<(KoSnapStrategy::SnapType lhs, KoSnapStrategy::SnapType rhs)
snaps to shape bounding boxes
snaps extension lines of path shapes
snaps to intersections of shapes
A KoPathPoint represents a point in a path.
Strategy
the different possible snap Strategies
QPointF m_snappedPosition
virtual QPainterPath decoration(const KoViewConverter &converter) const =0
returns the current snap strategy decoration
virtual ~KoSnapStrategy()
virtual bool snap(const QPointF &mousePosition, KoSnapProxy *proxy, qreal maxSnapDistance)=0
KoSnapGuide::Strategy m_snapStrategyType
snaps to x- or y-coordinates of path points