QGIS API Documentation  3.26.3-Buenos Aires (65e4edfdad)
qgsmapclippingregion.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsmapclippingregion.h
3  --------------------------------------
4  Date : June 2020
5  Copyright : (C) 2020 by Nyall Dawson
6  Email : nyall dot dawson at gmail dot com
7  ***************************************************************************
8  * *
9  * This program is free software; you can redistribute it and/or modify *
10  * it under the terms of the GNU General Public License as published by *
11  * the Free Software Foundation; either version 2 of the License, or *
12  * (at your option) any later version. *
13  * *
14  ***************************************************************************/
15 
16 #ifndef QGSMAPCLIPPINGREGION_H
17 #define QGSMAPCLIPPINGREGION_H
18 
19 #include "qgis_core.h"
20 #include "qgsgeometry.h"
21 #include "qgsmaplayer.h"
22 
23 #include <QPointer>
24 
33 class CORE_EXPORT QgsMapClippingRegion
34 {
35  public:
36 
41  enum class FeatureClippingType : int
42  {
43  ClipToIntersection,
44  ClipPainterOnly,
45  NoClipping,
46  };
47 
51  explicit QgsMapClippingRegion( const QgsGeometry &geometry )
52  : mGeometry( geometry )
53  {}
54 
60  QgsGeometry geometry() const;
61 
67  void setGeometry( const QgsGeometry &geometry );
68 
77  {
78  return mFeatureClip;
79  }
80 
89  {
90  mFeatureClip = type;
91  }
92 
99  bool restrictToLayers() const;
100 
107  void setRestrictToLayers( bool enabled );
108 
119  void setRestrictedLayers( const QList< QgsMapLayer * > &layers );
120 
131  QList< QgsMapLayer * > restrictedLayers() const;
132 
136  bool appliesToLayer( const QgsMapLayer *layer ) const;
137 
138  private:
139 
141  QgsGeometry mGeometry;
142 
143  bool mRestrictToLayers = false;
144  QgsWeakMapLayerPointerList mRestrictToLayersList;
145 
146  FeatureClippingType mFeatureClip = FeatureClippingType::ClipToIntersection;
147 
148 };
149 
150 #endif // QGSMAPCLIPPINGREGION_H
QgsMapClippingRegion
A map clipping region (in map coordinates and CRS).
Definition: qgsmapclippingregion.h:33
QgsWeakMapLayerPointerList
QList< QgsWeakMapLayerPointer > QgsWeakMapLayerPointerList
A list of weak pointers to QgsMapLayers.
Definition: qgsmaplayer.h:2153
qgsmaplayer.h
QgsMapClippingRegion::FeatureClippingType
FeatureClippingType
Feature clipping behavior, which controls how features from vector layers will be clipped.
Definition: qgsmapclippingregion.h:41
qgsgeometry.h
QgsGeometry
A geometry is the spatial representation of a feature.
Definition: qgsgeometry.h:124
QgsMapLayer
Base class for all map layer types. This is the base class for all map layer types (vector,...
Definition: qgsmaplayer.h:72
QgsMapClippingRegion::QgsMapClippingRegion
QgsMapClippingRegion(const QgsGeometry &geometry)
Constructor for a map clipping region, with the specified geometry in the destination map CRS.
Definition: qgsmapclippingregion.h:51
QgsMapClippingRegion::setFeatureClip
void setFeatureClip(FeatureClippingType type)
Sets the feature clipping type.
Definition: qgsmapclippingregion.h:88
QgsMapClippingRegion::featureClip
FeatureClippingType featureClip() const
Returns the feature clipping type.
Definition: qgsmapclippingregion.h:76