QGIS API Documentation 3.37.0-Master (fdefdf9c27f)
qgslabelsearchtree.h
Go to the documentation of this file.
1/***************************************************************************
2 qgslabelsearchtree.h
3 Node for raster calculator tree
4 --------------------
5 begin : 2010-11-02
6 copyright : (C) 2010 by Marco Hugentobler
7 email : marco dot hugentobler at sourcepole dot ch
8***************************************************************************/
9
10/***************************************************************************
11 * *
12 * This program is free software; you can redistribute it and/or modify *
13 * it under the terms of the GNU General Public License as published by *
14 * the Free Software Foundation; either version 2 of the License, or *
15 * (at your option) any later version. *
16 * *
17 ***************************************************************************/
18
19#ifndef QGSLABELSEARCHTREE_H
20#define QGSLABELSEARCHTREE_H
21
22#include "qgis_core.h"
23#include "qgis_sip.h"
24#include <QList>
25#include <QVector>
26#include "qgslabelposition.h"
27#include "qgscalloutposition.h"
29#include "qgsmapsettings.h"
30
31class QgsPointXY;
32
33#ifndef SIP_RUN
34namespace pal
35{
36 class LabelPosition;
37}
38#endif
39
40// TODO QGIS 4.0 - this should be private, not exposed to SIP
41
46class CORE_EXPORT QgsLabelSearchTree
47{
48 public:
49
55
60
65 Q_DECL_DEPRECATED void clear() SIP_DEPRECATED;
66
67 //TODO: why does this break bindings with QList<QgsLabelPosition>?
68
73 void label( const QgsPointXY &p, QList<QgsLabelPosition *> &posList ) const SIP_SKIP;
74
75 //TODO: why does this break bindings with QList<QgsLabelPosition>?
76
82 QList< QgsLabelPosition > allLabels() const;
83
88 void labelsInRect( const QgsRectangle &r, QList<QgsLabelPosition *> &posList ) const SIP_SKIP;
89
95 bool insertLabel( pal::LabelPosition *labelPos, QgsFeatureId featureId, const QString &layerName, const QString &labeltext, const QFont &labelfont, bool diagram = false, bool pinned = false, const QString &providerId = QString(), bool isUnplaced = false, long long linkedId = 0 ) SIP_SKIP;
96
104 bool insertCallout( const QgsCalloutPosition &position ) SIP_SKIP;
105
115 QList<const QgsCalloutPosition *> calloutsInRectangle( const QgsRectangle &rectangle ) const;
116
125 QList<QgsLabelPosition *> groupedLabelPositions( long long groupId ) const SIP_SKIP;
126
131 void setMapSettings( const QgsMapSettings &settings );
132
133 private:
135 long long mNextFeatureId = 1;
136 QHash< long long, QList< QgsLabelPosition * > > mLinkedLabelHash;
137 std::vector< std::unique_ptr< QgsLabelPosition > > mOwnedPositions;
139 std::vector< std::unique_ptr< QgsCalloutPosition > > mOwnedCalloutPositions;
140 QgsMapSettings mMapSettings;
141 QTransform mTransform;
142
143#ifdef SIP_RUN
147 QgsLabelSearchTree &operator=( const QgsLabelSearchTree & );
148#endif
149};
150
151#endif // QGSLABELTREE_H
Represents the calculated placement of a map label callout line.
A generic rtree spatial index based on a libspatialindex backend.
Represents the calculated placement of a map label.
A class to query the labeling structure at a given point (small wrapper around pal RTree class)
QgsLabelSearchTree & operator=(const QgsLabelSearchTree &rh)=delete
QgsLabelSearchTree cannot be copied.
QgsLabelSearchTree()
Constructor for QgsLabelSearchTree.
QgsLabelSearchTree(const QgsLabelSearchTree &rh)=delete
QgsLabelSearchTree cannot be copied.
The QgsMapSettings class contains configuration for rendering of the map.
A class to represent a 2D point.
Definition: qgspointxy.h:60
A rectangle specified with double values.
Definition: qgsrectangle.h:42
std::unique_ptr< GEOSGeometry, GeosDeleter > unique_ptr
Scoped GEOS pointer.
Definition: qgsgeos.h:73
#define SIP_DEPRECATED
Definition: qgis_sip.h:106
#define SIP_SKIP
Definition: qgis_sip.h:126
qint64 QgsFeatureId
64 bit feature ids negative numbers are used for uncommitted/newly added features
Definition: qgsfeatureid.h:28