Krita

VectorLayer.h
1/*
2 * SPDX-FileCopyrightText: 2017 Wolthera van Hövell tot Westerflier <griffinvalley@gmail.com>
3 *
4 * SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6#ifndef LIBKIS_VECTORLAYER_H
7#define LIBKIS_VECTORLAYER_H
8
9#include <QObject>
10
11#include <kis_types.h>
12
13#include "kritalibkis_export.h"
14#include "libkis.h"
15
16#include <KoShapeControllerBase.h>
17
18#include "Node.h"
19#include "Shape.h"
20
21/**
22 * @brief The VectorLayer class
23 * A vector layer is a special layer that stores
24 * and shows vector shapes.
25 *
26 * Vector shapes all have their coordinates in points, which
27 * is a unit that represents 1/72th of an inch. Keep this in
28 * mind wen parsing the bounding box and position data.
29 */
30
31class KRITALIBKIS_EXPORT VectorLayer : public Node
32{
34 Q_DISABLE_COPY(VectorLayer)
35
36public:
37 explicit VectorLayer(KoShapeControllerBase* shapeController, KisImageSP image, QString name, QObject *parent = 0);
38 explicit VectorLayer(KisShapeLayerSP layer, QObject *parent = 0);
39 ~VectorLayer() override;
40public Q_SLOTS:
41
42 /**
43 * @brief type Krita has several types of nodes, split in layers and masks. Group
44 * layers can contain other layers, any layer can contain masks.
45 *
46 * @return vectorlayer
47 */
48 virtual QString type() const override;
49
50 /**
51 * @brief shapes
52 * @return the list of top-level shapes in this vector layer.
53 */
54 QList<Shape *> shapes() const;
55
56 /**
57 * @brief toSvg
58 * convert the shapes in the layer to svg.
59 * @return the svg in a string.
60 */
61 QString toSvg();
62
63 /**
64 * @brief addShapesFromSvg
65 * add shapes to the layer from a valid svg.
66 * @param svg valid svg string.
67 * @return the list of shapes added to the layer from the svg.
68 */
70
71 /**
72 * @brief shapeAtPoint
73 * check if the position is located within any non-group shape's boundingBox() on the current layer.
74 * @param position a QPointF of the position.
75 * @return the shape at the position, or None if no shape is found.
76 */
78
79 /**
80 * @brief shapeInRect
81 * get all non-group shapes that the shape's boundingBox() intersects or is contained within a given rectangle on the current layer.
82 * @param rect a QRectF
83 * @param omitHiddenShapes true if non-visible() shapes should be omitted, false if they should be included. \p omitHiddenShapes defaults to true.
84 * @param containedMode false if only shapes that are within or intersect with the outline should be included, true if only shapes that are fully contained within the outline should be included. \p containedMode defaults to false
85 * @return returns a list of shapes.
86 */
87 QList<Shape *> shapesInRect(const QRectF &rect, bool omitHiddenShapes = true, bool containedMode = false) const;
88
89 /**
90 * @brief createGroupShape
91 * combine a list of top level shapes into a group.
92 * @param name the name of the shape.
93 * @param shapes list of top level shapes.
94 * @return if successful, a GroupShape object will be returned.
95 */
97
98 /**
99 * @brief return antialiasing status for the Vector layer
100 * @return True if antialiasing is active for the layer
101 */
102 bool isAntialiased() const;
103
104 /**
105 * @brief set antialiasing status for the Vector layer
106 * @param antialiased set to True to activate antialiasing
107 */
108 void setAntialiased(const bool antialiased);
109};
110
111#endif // LIBKIS_VECTORLAYER_H
112
QPoint position() const
position returns the position of the paint device of this node.
Definition Node.cpp:628
virtual QString type() const
type Krita has several types of nodes, split in layers and masks.
Definition Node.cpp:463
QString name() const
Definition Node.cpp:428
The Shape class The shape class is a wrapper around Krita's vector objects.
Definition Shape.h:38
bool isAntialiased() const
return antialiasing status for the Vector layer
QList< Shape * > addShapesFromSvg(const QString &svg)
addShapesFromSvg add shapes to the layer from a valid svg.
QList< Shape * > shapesInRect(const QRectF &rect, bool omitHiddenShapes=true, bool containedMode=false) const
shapeInRect get all non-group shapes that the shape's boundingBox() intersects or is contained within...
QList< Shape * > shapes() const
shapes
QString toSvg()
toSvg convert the shapes in the layer to svg.
Shape * createGroupShape(const QString &name, QList< Shape * > shapes) const
createGroupShape combine a list of top level shapes into a group.
void setAntialiased(const bool antialiased)
set antialiasing status for the Vector layer
Shape * shapeAtPosition(const QPointF &position) const
shapeAtPoint check if the position is located within any non-group shape's boundingBox() on the curre...
QObject(QObject *parent)
Q_OBJECTQ_OBJECT
Q_SLOTSQ_SLOTS
QObject * parent() const const
This file is part of the KDE documentation.
Documentation copyright © 1996-2025 The KDE developers.
Generated on Fri Jan 24 2025 11:51:04 by doxygen 1.13.2 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.