16 #ifndef QGSSNAPPINGUTILS_H 17 #define QGSSNAPPINGUTILS_H 20 #include "qgis_core.h" 149 QList<QgsSnappingUtils::LayerConfig>
layers()
const {
return mLayers; }
169 void setEnableSnappingForInvisibleFeature(
bool enable );
183 void toggleEnabled();
199 void clearAllLocators();
202 void onIndividualLayerSettingsChanged(
const QHash<QgsVectorLayer *, QgsSnappingConfig::IndividualLayerSettings> &layerSettings );
211 typedef QPair< QgsVectorLayer *, QgsRectangle > LayerAndAreaOfInterest;
216 void prepareIndex(
const QList<LayerAndAreaOfInterest> &layers );
227 QList<LayerConfig> mLayers;
230 typedef QMap<QgsVectorLayer *, QgsPointLocator *> LocatorsMap;
232 LocatorsMap mLocators;
234 LocatorsMap mTemporaryLocators;
236 QSet<QString> mHybridNonindexableLayers;
248 QHash<QString, double> mHybridMaxAreaPerLayer;
250 int mHybridPerLayerFeatureLimit = 50000;
253 bool mIsIndexing =
false;
256 bool mEnableSnappingForInvisibleFeature =
true;
261 #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)
Sets a strategy for indexing geometry data - determines how fast and memory consuming the data struct...
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.