Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_boundary.cc
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2005 Bart Coppens <kde@bartcoppens.be>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7#include "kis_boundary.h"
8#include <QPainter>
9#include <QPainterPath>
10#include <QPen>
11
12#include "KoColorSpace.h"
15
21
26
28{
29 delete d;
30}
31
33{
34 if (!d->m_device)
35 return;
36
38 generator.setSimpleOutline(true);
39 d->m_boundary = generator.outline(d->m_device->data(), 0, 0, d->m_device->bounds().width(), d->m_device->bounds().height());
40
41 d->path = QPainterPath();
42 Q_FOREACH (const QPolygon & polygon, d->m_boundary) {
43 d->path.addPolygon(polygon);
44 d->path.closeSubpath();
45 }
46
47}
48
49void KisBoundary::paint(QPainter& painter) const
50{
51 QPen pen;
52 pen.setWidth(0);
53 pen.setBrush(Qt::black);
54 painter.setPen(pen);
55
56 Q_FOREACH (const QPolygon & polygon, d->m_boundary) {
57 painter.drawPolygon(polygon);
58 }
59}
60
61QPainterPath KisBoundary::path() const
62{
63 return d->path;
64}
65
const quint8 OPACITY_TRANSPARENT_U8
void paint(QPainter &painter) const
void generateBoundary()
Private *const d
QPainterPath path() const
returns the outline saved in QPainterPath
KisBoundary(KisFixedPaintDeviceSP dev)
const KoColorSpace * colorSpace() const
void setSimpleOutline(bool simple)
QVector< QPolygon > outline(quint8 *buffer, qint32 xOffset, qint32 yOffset, qint32 width, qint32 height)
KisFixedPaintDeviceSP m_device
QVector< QPolygon > m_boundary