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.
A container for the context for various read/write operations on objects.