17#ifndef QGSLAYOUTITEMNODEITEM_H
18#define QGSLAYOUTITEMNODEITEM_H
39 void setNodes(
const QPolygonF &nodes );
45 QPolygonF
nodes()
const {
return mPolygon; }
55 bool addNode( QPointF point,
bool checkArea =
true,
double radius = 10 );
67 bool moveNode(
int index, QPointF node );
77 int nodeAtPosition( QPointF point,
bool searchInRadius =
true,
double radius = 10 )
const;
85 bool nodePosition(
int index, QPointF &position )
const;
90 bool removeNode(
int index );
98 bool setSelectedNode(
int index );
111 QRectF boundingRect()
const override;
138 double mMaxSymbolBleed = 0.0;
141 virtual bool _addNode(
int nodeIndex, QPointF newNode,
double radius ) = 0;
159 void rescaleToFitBoundingBox();
162 double computeDistance( QPointF pt1, QPointF pt2 )
const;
165 void updateSceneRect();
176 virtual void updateBoundingRect();
183 int mSelectedNode = -1;
189 bool mDrawNodes =
false;
Contains settings and helpers relating to a render of a QgsLayoutItem.
Base class for graphical items within a QgsLayout.
virtual bool writePropertiesToElement(QDomElement &element, QDomDocument &document, const QgsReadWriteContext &context) const
Stores item state within an XML DOM element.
virtual bool readPropertiesFromElement(const QDomElement &element, const QDomDocument &document, const QgsReadWriteContext &context)
Sets item state from a DOM element.
virtual double estimatedFrameBleed() const
Returns the estimated amount the item's frame bleeds outside the item's actual rectangle.
virtual void draw(QgsLayoutItemRenderContext &context)=0
Draws the item's contents using the specified item render context.
An abstract layout item that provides generic methods for node based shapes such as polygon or polyli...
virtual bool _removeNode(int nodeIndex)=0
Method called in removeNode.
QPolygonF nodes() const
Returns the nodes the shape consists of.
virtual void _writeXmlStyle(QDomDocument &doc, QDomElement &elmt, const QgsReadWriteContext &context) const =0
Method called in writeXml.
QRectF mCurrentRectangle
Current bounding rectangle of shape.
virtual void _readXmlStyle(const QDomElement &elmt, const QgsReadWriteContext &context)=0
Method called in readXml.
int nodesSize() const
Returns the number of nodes in the shape.
void setDisplayNodes(bool display=true)
Set whether the item's nodes should be displayed.
int selectedNode() const
Returns the currently selected node, or -1 if no node is selected.
virtual void _draw(QgsLayoutItemRenderContext &context, const QStyleOptionGraphicsItem *itemStyle=nullptr)=0
Method called in paint.
virtual bool _addNode(int nodeIndex, QPointF newNode, double radius)=0
Method called in addNode.
void deselectNode()
Deselects any selected nodes.
QPolygonF mPolygon
Shape's nodes.
Base class for layouts, which can contain items such as maps, labels, scalebars, etc.
The class is used as a container of context for various read/write operations on other objects.