QGIS API Documentation
3.6.0-Noosa (5873452)
|
This class has all the configuration of snapping and can return answers to snapping queries. More...
#include <qgssnappingutils.h>
Classes | |
struct | LayerConfig |
Configures how a certain layer should be handled in a snapping operation. More... | |
Public Types | |
enum | IndexingStrategy { IndexAlwaysFull, IndexNeverFull, IndexHybrid, IndexExtent } |
Public Slots | |
void | setConfig (const QgsSnappingConfig &snappingConfig) |
The snapping configuration controls the behavior of this object. More... | |
void | toggleEnabled () |
Toggles the state of snapping. More... | |
Signals | |
void | configChanged (const QgsSnappingConfig &snappingConfig) |
Emitted when the snapping settings object changes. More... | |
Public Member Functions | |
QgsSnappingUtils (QObject *parent=nullptr, bool enableSnappingForInvisibleFeature=true) | |
Constructor for QgsSnappingUtils. More... | |
~QgsSnappingUtils () override | |
QgsSnappingConfig | config () const |
The snapping configuration controls the behavior of this object. More... | |
QgsVectorLayer * | currentLayer () const |
The current layer used if mode is SnapCurrentLayer. More... | |
QString | dump () |
Gets extra information about the instance. More... | |
IndexingStrategy | indexingStrategy () const |
Find out which strategy is used for indexing - by default hybrid indexing is used. More... | |
QList< QgsSnappingUtils::LayerConfig > | layers () const |
Query layers used for snapping. More... | |
QgsPointLocator * | locatorForLayer (QgsVectorLayer *vl) |
Gets a point locator for the given layer. If such locator does not exist, it will be created. More... | |
QgsMapSettings | mapSettings () const |
void | setCurrentLayer (QgsVectorLayer *layer) |
Sets current layer so that if mode is SnapCurrentLayer we know which layer to use. More... | |
void | setEnableSnappingForInvisibleFeature (bool enable) |
Set if invisible features must be snapped or not. More... | |
void | setIndexingStrategy (IndexingStrategy strategy) |
Sets a strategy for indexing geometry data - determines how fast and memory consuming the data structures will be. More... | |
void | setMapSettings (const QgsMapSettings &settings) |
Assign current map settings to the utils - used for conversion between screen coords to map coords. More... | |
QgsPointLocator::Match | snapToCurrentLayer (QPoint point, QgsPointLocator::Types type, QgsPointLocator::MatchFilter *filter=nullptr) |
Snap to current layer. More... | |
QgsPointLocator::Match | snapToMap (QPoint point, QgsPointLocator::MatchFilter *filter=nullptr) |
Snap to map according to the current configuration. Optional filter allows discarding unwanted matches. More... | |
QgsPointLocator::Match | snapToMap (const QgsPointXY &pointMap, QgsPointLocator::MatchFilter *filter=nullptr) |
Protected Member Functions | |
void | clearAllLocators () |
Deletes all existing locators (e.g. when destination CRS has changed and we need to reindex) More... | |
virtual void | prepareIndexProgress (int index) |
Called when finished indexing a layer. When index == count the indexing is complete. More... | |
virtual void | prepareIndexStarting (int count) |
Called when starting to index - can be overridden and e.g. progress dialog can be provided. More... | |
Properties | |
QgsSnappingConfig | config |
This class has all the configuration of snapping and can return answers to snapping queries.
Internally, it keeps a cache of QgsPointLocator instances for multiple layers.
Currently it supports the following queries:
Indexing strategy determines how fast the queries will be and how much memory will be used.
When working with map canvas, it may be useful to use derived class QgsMapCanvasSnappingUtils which keeps the configuration in sync with map canvas (e.g. current view, active layer).
Definition at line 47 of file qgssnappingutils.h.
Definition at line 86 of file qgssnappingutils.h.
QgsSnappingUtils::QgsSnappingUtils | ( | QObject * | parent = nullptr , |
bool | enableSnappingForInvisibleFeature = true |
||
) |
Constructor for QgsSnappingUtils.
Definition at line 24 of file qgssnappingutils.cpp.
|
override |
Definition at line 31 of file qgssnappingutils.cpp.
|
protected |
Deletes all existing locators (e.g. when destination CRS has changed and we need to reindex)
Definition at line 50 of file qgssnappingutils.cpp.
QgsSnappingConfig QgsSnappingUtils::config | ( | ) | const |
The snapping configuration controls the behavior of this object.
|
signal |
Emitted when the snapping settings object changes.
|
inline |
The current layer used if mode is SnapCurrentLayer.
Definition at line 82 of file qgssnappingutils.h.
QString QgsSnappingUtils::dump | ( | ) |
Gets extra information about the instance.
Definition at line 498 of file qgssnappingutils.cpp.
|
inline |
Find out which strategy is used for indexing - by default hybrid indexing is used.
Definition at line 97 of file qgssnappingutils.h.
|
inline |
Query layers used for snapping.
Definition at line 149 of file qgssnappingutils.h.
QgsPointLocator * QgsSnappingUtils::locatorForLayer | ( | QgsVectorLayer * | vl | ) |
Gets a point locator for the given layer. If such locator does not exist, it will be created.
Definition at line 37 of file qgssnappingutils.cpp.
|
inline |
Definition at line 77 of file qgssnappingutils.h.
|
inlineprotectedvirtual |
Called when finished indexing a layer. When index == count the indexing is complete.
Reimplemented in QgsMapCanvasSnappingUtils.
Definition at line 196 of file qgssnappingutils.h.
|
inlineprotectedvirtual |
Called when starting to index - can be overridden and e.g. progress dialog can be provided.
Reimplemented in QgsMapCanvasSnappingUtils.
Definition at line 194 of file qgssnappingutils.h.
|
slot |
The snapping configuration controls the behavior of this object.
Definition at line 447 of file qgssnappingutils.cpp.
void QgsSnappingUtils::setCurrentLayer | ( | QgsVectorLayer * | layer | ) |
Sets current layer so that if mode is SnapCurrentLayer we know which layer to use.
Definition at line 493 of file qgssnappingutils.cpp.
void QgsSnappingUtils::setEnableSnappingForInvisibleFeature | ( | bool | enable | ) |
Set if invisible features must be snapped or not.
enable | Enable or not this feature |
Definition at line 442 of file qgssnappingutils.cpp.
|
inline |
Sets a strategy for indexing geometry data - determines how fast and memory consuming the data structures will be.
Definition at line 95 of file qgssnappingutils.h.
void QgsSnappingUtils::setMapSettings | ( | const QgsMapSettings & | settings | ) |
Assign current map settings to the utils - used for conversion between screen coords to map coords.
Definition at line 483 of file qgssnappingutils.cpp.
QgsPointLocator::Match QgsSnappingUtils::snapToCurrentLayer | ( | QPoint | point, |
QgsPointLocator::Types | type, | ||
QgsPointLocator::MatchFilter * | filter = nullptr |
||
) |
QgsPointLocator::Match QgsSnappingUtils::snapToMap | ( | QPoint | point, |
QgsPointLocator::MatchFilter * | filter = nullptr |
||
) |
Snap to map according to the current configuration. Optional filter allows discarding unwanted matches.
Definition at line 218 of file qgssnappingutils.cpp.
QgsPointLocator::Match QgsSnappingUtils::snapToMap | ( | const QgsPointXY & | pointMap, |
QgsPointLocator::MatchFilter * | filter = nullptr |
||
) |
Definition at line 229 of file qgssnappingutils.cpp.
|
slot |
|
readwrite |
Definition at line 51 of file qgssnappingutils.h.