QGIS API Documentation  3.6.0-Noosa (5873452)
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 "qgspallabeling.h"
27 #include "rtree.hpp"
28 
29 class QgsPointXY;
30 
31 #ifndef SIP_RUN
32 namespace pal
33 {
34  class LabelPosition;
35 }
36 #endif
37 
42 class CORE_EXPORT QgsLabelSearchTree
43 {
44  public:
45 
49  QgsLabelSearchTree() = default;
51 
53  QgsLabelSearchTree( const QgsLabelSearchTree &rh ) = delete;
55  QgsLabelSearchTree &operator=( const QgsLabelSearchTree &rh ) = delete;
56 
58  void clear();
59 
65  void label( const QgsPointXY &p, QList<QgsLabelPosition *> &posList ) const SIP_SKIP;
66 
72  void labelsInRect( const QgsRectangle &r, QList<QgsLabelPosition *> &posList ) const SIP_SKIP;
73 
79  bool insertLabel( pal::LabelPosition *labelPos, int featureId, const QString &layerName, const QString &labeltext, const QFont &labelfont, bool diagram = false, bool pinned = false, const QString &providerId = QString() ) SIP_SKIP;
80 
81  private:
82  // set as mutable because RTree template is not const-correct
83  mutable pal::RTree<QgsLabelPosition *, double, 2, double> mSpatialIndex;
84  QList< QgsLabelPosition * > mOwnedPositions;
85 
86 #ifdef SIP_RUN
90  QgsLabelSearchTree &operator=( const QgsLabelSearchTree & );
91 #endif
92 };
93 
94 #endif // QGSLABELTREE_H
A rectangle specified with double values.
Definition: qgsrectangle.h:41
A class to query the labeling structure at a given point (small wrapper around pal RTree class) ...
A class to represent a 2D point.
Definition: qgspointxy.h:43
#define SIP_SKIP
Definition: qgis_sip.h:119
LabelPosition is a candidate feature label position.
Definition: labelposition.h:55