16 #ifndef QGSSNAPPINGUTILS_H 17 #define QGSSNAPPINGUTILS_H 20 #include "qgis_core.h" 149 QList<QgsSnappingUtils::LayerConfig>
layers()
const {
return mLayers; }
174 void toggleEnabled();
190 void clearAllLocators();
193 void onIndividualLayerSettingsChanged(
const QHash<QgsVectorLayer *, QgsSnappingConfig::IndividualLayerSettings> &layerSettings );
202 typedef QPair< QgsVectorLayer *, QgsRectangle > LayerAndAreaOfInterest;
207 void prepareIndex(
const QList<LayerAndAreaOfInterest> &layers );
218 QList<LayerConfig> mLayers;
221 typedef QMap<QgsVectorLayer *, QgsPointLocator *> LocatorsMap;
223 LocatorsMap mLocators;
225 LocatorsMap mTemporaryLocators;
227 QSet<QString> mHybridNonindexableLayers;
239 QHash<QString, double> mHybridMaxAreaPerLayer;
241 int mHybridPerLayerFeatureLimit = 50000;
244 bool mIsIndexing =
false;
248 #endif // QGSSNAPPINGUTILS_H
The class defines interface for querying point location:
A rectangle specified with double values.
bool operator!=(const QgsSnappingUtils::LayerConfig &other) const
QgsMapSettings mapSettings() const
virtual void prepareIndexProgress(int index)
Called when finished indexing a layer. When index == count the indexing is complete.
bool operator==(const QgsFeatureIterator &fi1, const QgsFeatureIterator &fi2)
QgsVectorLayer * currentLayer() const
The current layer used if mode is SnapCurrentLayer.
A class to represent a 2D point.
UnitType
Type of unit of tolerance value from settings.
Interface that allows rejection of some matches in intersection queries (e.g.
void setIndexingStrategy(IndexingStrategy strategy)
Set a strategy for indexing geometry data - determines how fast and memory consuming the data structu...
The QgsMapSettings class contains configuration for rendering of the map.
LayerConfig(QgsVectorLayer *l, QgsPointLocator::Types t, double tol, QgsTolerance::UnitType u)
Create a new configuration for a snapping layer.
For all layers build index of full extent. Uses more memory, but queries are faster.
For "big" layers using IndexNeverFull, for the rest IndexAlwaysFull. Compromise between speed and mem...
QList< QgsSnappingUtils::LayerConfig > layers() const
Query layers used for snapping.
QgsTolerance::UnitType unit
The units in which the tolerance is specified.
IndexingStrategy indexingStrategy() const
Find out which strategy is used for indexing - by default hybrid indexing is used.
double tolerance
The range around snapping targets in which snapping should occur.
For all layers only create temporary indexes of small extent. Low memory usage, slower queries...
virtual void prepareIndexStarting(int count)
Called when starting to index - can be overridden and e.g. progress dialog can be provided...
bool operator==(const QgsSnappingUtils::LayerConfig &other) const
QgsVectorLayer * layer
The layer to configure.
Configures how a certain layer should be handled in a snapping operation.
This class represents a coordinate reference system (CRS).
This class has all the configuration of snapping and can return answers to snapping queries...
QgsPointLocator::Types type
To which geometry properties of this layers a snapping should happen.
This is a container for configuration of the snapping of the project.
Represents a vector layer which manages a vector based data sets.