17#ifndef QGSLAYOUTITEMNODEITEM_H
18#define QGSLAYOUTITEMNODEITEM_H
38 void setNodes(
const QPolygonF &nodes );
44 QPolygonF
nodes()
const {
return mPolygon; }
54 bool addNode( QPointF point,
bool checkArea =
true,
double radius = 10 );
66 bool moveNode(
int index, QPointF node );
76 int nodeAtPosition( QPointF point,
bool searchInRadius =
true,
double radius = 10 )
const;
84 bool nodePosition(
int index, QPointF &position )
const;
89 bool removeNode(
int index );
97 bool setSelectedNode(
int index );
110 QRectF boundingRect()
const override;
146 double mMaxSymbolBleed = 0.0;
149 virtual bool _addNode(
int nodeIndex, QPointF newNode,
double radius ) = 0;
167 void rescaleToFitBoundingBox();
170 double computeDistance( QPointF pt1, QPointF pt2 )
const;
173 void updateSceneRect();
184 virtual void updateBoundingRect();
191 int mSelectedNode = -1;
197 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 Flags itemFlags() const
Returns the item's flags, which indicate how the item behaves.
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.
virtual bool isValid() const =0
Must be reimplemented in subclasses.
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.