Krita Source Code Documentation
Loading...
Searching...
No Matches
KisToolKnife.cpp File Reference
#include "KisToolKnife.h"
#include "QApplication"
#include "QPainterPath"
#include <klocalizedstring.h>
#include <KoColor.h>
#include <KisViewManager.h>
#include "kis_canvas2.h"
#include "kis_cursor.h"
#include "kis_painter.h"
#include "kis_paintop_preset.h"
#include "kis_shape_layer.h"
#include "kundo2magicstring.h"
#include "kundo2stack.h"
#include "commands_new/kis_transaction_based_command.h"
#include "kis_transaction.h"
#include "KoPathShape.h"
#include "kis_processing_applicator.h"
#include "kis_datamanager.h"
#include "kis_canvas_resource_provider.h"
#include "KoColorSpaceRegistry.h"
#include <KisCursorOverrideLock.h>
#include "KisToolKnifeOptionsWidget.h"
#include "libs/image/kis_paint_device_debug_utils.h"
#include <KoSelectedShapesProxy.h>
#include "CutThroughShapeStrategy.h"
#include "RemoveGutterStrategy.h"
#include "kis_paint_layer.h"
#include "kis_algebra_2d.h"
#include "kis_resources_snapshot.h"
#include <KoSelection.h>
#include <KoShapeManager.h>

Go to the source code of this file.

Classes

struct  KisToolKnife::Private
 

Functions

QPolygonF createDiamond (int size, QPointF location=QPointF())
 
void paintSelectedEdge (QPainter &painter, const KoViewConverter &converter, const QLineF &lineSegment)
 
void paintSelectedPoint (QPainter &painter, const KoViewConverter &converter, const QPointF &point)
 

Function Documentation

◆ createDiamond()

QPolygonF createDiamond ( int size,
QPointF location = QPointF() )

Definition at line 107 of file KisToolKnife.cpp.

108{
109 QPolygonF polygon;
110 polygon << QPointF(-size, 0);
111 polygon << QPointF(0, size);
112 polygon << QPointF(size, 0);
113 polygon << QPointF(0, -size);
114 polygon.translate(location);
115 return polygon;
116}

◆ paintSelectedEdge()

void paintSelectedEdge ( QPainter & painter,
const KoViewConverter & converter,
const QLineF & lineSegment )

Definition at line 71 of file KisToolKnife.cpp.

72{
73 QLineF lineInView = converter.documentToView().map(lineSegment);
74 QList<QLineF> parallels = KisAlgebra2D::getParallelLines(lineInView, 5);
75
76 painter.save();
77 qreal width = 2;
78 QColor color = Qt::blue;
79 color.setAlphaF(0.8);
80 QColor white = Qt::white;
81 white.setAlphaF(0.75);
82
83 QPen pen = QPen(color, width);
84 QPen alternative = QPen(white, width);
85
86 alternative.setStyle(Qt::CustomDashLine);
87 qreal dashLength = 6;
88 alternative.setDashPattern({dashLength - 1, dashLength + 1});
89 alternative.setCapStyle(Qt::RoundCap);
90
91 pen.setCosmetic(true);
92 painter.setPen(pen);
93
94 //painter.drawLines(parallels.toVector());
95 painter.drawLine(lineInView);
96
97 alternative.setCosmetic(true);
98 painter.setPen(alternative);
99 //painter.drawLines(parallels.toVector());
100 painter.drawLine(lineInView);
101
102
103 painter.restore();
104
105}
virtual QPointF documentToView(const QPointF &documentPoint) const
QList< QLineF > getParallelLines(const QLineF &line, const qreal distance)

References KoViewConverter::documentToView(), and KisAlgebra2D::getParallelLines().

◆ paintSelectedPoint()

void paintSelectedPoint ( QPainter & painter,
const KoViewConverter & converter,
const QPointF & point )

Definition at line 118 of file KisToolKnife.cpp.

119{
120 QPointF p = point;
121 p = converter.documentToView().map(p);
122 QPolygonF diamond = createDiamond(6, p);
123 painter.save();
124 QColor color = Qt::blue;
125 color.setAlphaF(0.9);
126 QColor white = Qt::white;
127 white.setAlphaF(0.75);
128
129 QPen pen = QPen(color, 2);
130 pen.setCosmetic(true);
131 QBrush brush = QBrush(white);
132 painter.setPen(pen);
133 painter.setBrush(brush);
134
135 painter.drawPolygon(diamond);
136 painter.restore();
137}
const Params2D p
QPolygonF createDiamond(int size, QPointF location=QPointF())

References createDiamond(), KoViewConverter::documentToView(), and p.