29 : mMapSettings( mapRenderer->mapSettings() )
30 , mSnapMode( SnapWithOneResult )
36 : mMapSettings( mapSettings )
37 , mSnapMode( SnapWithOneResult )
49 return snapMapPoint( mapCoordPoint, snappingResult, excludePoints );
54 snappingResult.
clear();
65 for ( snapLayerIt = mSnapLayers.begin(); snapLayerIt != mSnapLayers.end(); ++snapLayerIt )
67 if ( !snapLayerIt->mLayer->hasGeometryType() )
70 currentResultList.
clear();
75 if ( snapLayerIt->mLayer->snapWithContext( layerCoordPoint, tolerance,
76 currentResultList, snapLayerIt->mSnapTo ) != 0 )
83 for ( currentResultIt = currentResultList.
begin(); currentResultIt != currentResultList.
end(); ++currentResultIt )
87 newResult = currentResultIt.
value();
96 cleanResultList( snappingResultList, excludePoints );
100 if ( evalIt == snappingResultList.
end() )
108 for ( evalIt = snappingResultList.
begin(); evalIt != snappingResultList.
end(); ++evalIt )
110 if ( evalIt.
value().snappedVertexNr != -1 )
112 returnResult = evalIt.
value();
113 snappingResultList.
erase( evalIt );
119 snappingResult.
push_back( returnResult );
128 double tolerance = 0.000001;
130 for ( evalIt = snappingResultList.
begin(); evalIt != snappingResultList.
end(); ++evalIt )
142 for ( evalIt = snappingResultList.
begin(); evalIt != snappingResultList.
end(); ++evalIt )
153 mSnapLayers = snapLayers;
159 mSnapMode = snapMode;
169 for ( ; result_it != list.
end(); ++result_it )
171 currentSnappingResult = result_it.
value();
175 if ( excludeList.
contains( currentResultPoint ) )
183 for ( ; remove_it != keysToRemove.
constEnd(); ++remove_it )
185 list.
remove( *remove_it );
QgsPoint layerToMapCoordinates(QgsMapLayer *theLayer, QgsPoint point) const
transform point coordinates from layer's CRS to output CRS
iterator erase(iterator pos)
Q_DECL_DEPRECATED int snapPoint(const QPoint &startPoint, QList< QgsSnappingResult > &snappingResult, const QList< QgsPoint > &excludePoints=QList< QgsPoint >())
Does the snapping operation.
void push_back(const T &value)
const QgsMapToPixel & mapToPixel() const
A non GUI class for rendering a map layer set onto a QPainter.
static double toleranceInMapUnits(double tolerance, QgsMapLayer *layer, const QgsMapSettings &mapSettings, UnitType units=LayerUnits)
Static function to translate tolerance value into layer units.
QgsPoint mapToLayerCoordinates(QgsMapLayer *theLayer, QgsPoint point) const
transform point coordinates from output CRS to layer's CRS
double sqrDist(double x, double y) const
Returns the squared distance between this point and x,y.
The QgsMapSettings class contains configuration for rendering of the map.
int snapMapPoint(const QgsPoint &mapCoordPoint, QList< QgsSnappingResult > &snappingResult, const QList< QgsPoint > &excludePoints=QList< QgsPoint >())
Does the snapping operation.
Represents the result of a snapping operation.
QMap< Key, T >::iterator insert(const Key &key, const T &value)
Several snapping results which have the same position are returned.
A class to represent a point.
QgsPoint beforeVertex
The layer coordinates of the vertex before snappedVertex.
QgsPoint afterVertex
The layer coordinates of the vertex after snappedVertex.
bool contains(const T &value) const
QgsPoint toMapCoordinates(int x, int y) const
int snappedVertexNr
The vertex index of snappedVertex or -1 if no such vertex number (e.g.
Only one snapping result is returned.
QgsPoint snappedVertex
The coordinates of the snapping result.
Q_DECL_DEPRECATED QgsSnapper(QgsMapRenderer *mapRender)
@ deprecated since 2.4 - use constructor with QgsMapSettings
const_iterator constEnd() const
const_iterator constBegin() const
int remove(const Key &key)
void setSnapLayers(const QList< QgsSnapper::SnapLayer > &snapLayers)
void setSnapMode(QgsSnapper::SnappingMode snapMode)