mirror of
https://github.com/qgis/QGIS.git
synced 2025-10-08 00:05:09 -04:00
370 lines
9.0 KiB
Plaintext
370 lines
9.0 KiB
Plaintext
/************************************************************************
|
|
* This file has been generated automatically from *
|
|
* *
|
|
* src/gui/qgsmaptoolcapture.h *
|
|
* *
|
|
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
|
|
************************************************************************/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class QgsMapToolCapture : QgsMapToolAdvancedDigitizing
|
|
{
|
|
%Docstring(signature="appended")
|
|
:py:class:`QgsMapToolCapture` is a base class capable of capturing point, lines and polygons.
|
|
The tool supports different techniques: straight segments, curves, streaming and shapes
|
|
Once the the geometry is captured the virtual private handler geometryCaptured is called
|
|
as well as a more specific handler (pointCaptured, lineCaptured or polygonCaptured)
|
|
%End
|
|
|
|
%TypeHeaderCode
|
|
#include "qgsmaptoolcapture.h"
|
|
%End
|
|
public:
|
|
|
|
enum CaptureMode
|
|
{
|
|
CaptureNone,
|
|
CapturePoint,
|
|
CaptureLine,
|
|
CapturePolygon
|
|
};
|
|
|
|
enum Capability
|
|
{
|
|
NoCapabilities,
|
|
SupportsCurves,
|
|
ValidateGeometries,
|
|
};
|
|
|
|
typedef QFlags<QgsMapToolCapture::Capability> Capabilities;
|
|
|
|
|
|
QgsMapToolCapture( QgsMapCanvas *canvas, QgsAdvancedDigitizingDockWidget *cadDockWidget, CaptureMode mode );
|
|
%Docstring
|
|
constructor
|
|
%End
|
|
|
|
~QgsMapToolCapture();
|
|
|
|
virtual QgsMapToolCapture::Capabilities capabilities() const;
|
|
%Docstring
|
|
Returns flags containing the supported capabilities
|
|
%End
|
|
|
|
virtual bool supportsTechnique( Qgis::CaptureTechnique technique ) const;
|
|
%Docstring
|
|
Returns ``True`` if the tool supports the specified capture ``technique``.
|
|
|
|
.. versionadded:: 3.20
|
|
%End
|
|
|
|
void setCurrentCaptureTechnique( Qgis::CaptureTechnique technique );
|
|
%Docstring
|
|
Sets the current capture if it is supported by the map tool
|
|
|
|
.. versionadded:: 3.26
|
|
%End
|
|
|
|
Qgis::CaptureTechnique currentCaptureTechnique() const;
|
|
%Docstring
|
|
Returns the active capture technique
|
|
|
|
.. versionadded:: 3.32
|
|
%End
|
|
|
|
|
|
virtual void activate();
|
|
|
|
virtual void deactivate();
|
|
|
|
|
|
CaptureMode mode() const;
|
|
%Docstring
|
|
The capture mode
|
|
|
|
:return: Capture mode
|
|
%End
|
|
|
|
int addCurve( QgsCurve *c );
|
|
%Docstring
|
|
Adds a whole curve (e.g. circularstring) to the captured geometry. Curve must be in map CRS
|
|
%End
|
|
|
|
void clearCurve( );
|
|
%Docstring
|
|
Clear capture curve.
|
|
%End
|
|
|
|
const QgsCompoundCurve *captureCurve() const;
|
|
%Docstring
|
|
Gets the capture curve
|
|
|
|
:return: Capture curve
|
|
%End
|
|
|
|
QList<QgsPointLocator::Match> snappingMatches() const;
|
|
%Docstring
|
|
Returns a list of matches for each point on the captureCurve.
|
|
%End
|
|
|
|
virtual void cadCanvasMoveEvent( QgsMapMouseEvent *e );
|
|
|
|
virtual void cadCanvasReleaseEvent( QgsMapMouseEvent *e );
|
|
|
|
|
|
virtual void keyPressEvent( QKeyEvent *e );
|
|
|
|
%Docstring
|
|
Intercept key events like Esc or Del to delete the last point
|
|
|
|
:param e: key event
|
|
%End
|
|
|
|
void deleteTempRubberBand();
|
|
%Docstring
|
|
Clean a temporary rubberband
|
|
%End
|
|
|
|
virtual void clean();
|
|
|
|
%Docstring
|
|
convenient method to clean members
|
|
%End
|
|
|
|
QgsRubberBand *takeRubberBand() /Factory/;
|
|
%Docstring
|
|
Returns the rubberBand currently owned by this map tool and
|
|
transfers ownership to the caller.
|
|
|
|
May be ``None``.
|
|
|
|
.. versionadded:: 3.8
|
|
%End
|
|
|
|
QgsPoint mapPoint( const QgsMapMouseEvent &e ) const;
|
|
%Docstring
|
|
Creates a :py:class:`QgsPoint` with ZM support if necessary (according to the
|
|
WkbType of the current layer). If the point is snapped, then the Z
|
|
value is derived from the snapped point.
|
|
|
|
:param e: A mouse event
|
|
|
|
:return: a point with ZM support if necessary
|
|
%End
|
|
|
|
QgsPoint mapPoint( const QgsPointXY &point ) const;
|
|
%Docstring
|
|
Creates a :py:class:`QgsPoint` with ZM support if necessary (according to the
|
|
WkbType of the current layer).
|
|
|
|
:param point: A point in 2D
|
|
|
|
:return: a point with ZM support if necessary
|
|
%End
|
|
|
|
|
|
public slots:
|
|
|
|
void setCircularDigitizingEnabled( bool enable ) /Deprecated/;
|
|
%Docstring
|
|
Enable the digitizing with curve
|
|
|
|
.. deprecated:: QGIS 3.26
|
|
use :py:func:`~QgsMapToolCapture.setCurrentCaptureTechnique` instead
|
|
%End
|
|
|
|
void setStreamDigitizingEnabled( bool enable ) /Deprecated/;
|
|
%Docstring
|
|
Toggles the stream digitizing mode.
|
|
|
|
.. versionadded:: 3.20
|
|
|
|
.. deprecated:: QGIS 3.26
|
|
use :py:func:`~QgsMapToolCapture.setCurrentCaptureTechnique` instead
|
|
%End
|
|
|
|
protected:
|
|
|
|
|
|
int nextPoint( const QgsPoint &mapPoint, QgsPoint &layerPoint );
|
|
%Docstring
|
|
Converts a map point to layer coordinates
|
|
|
|
:param mapPoint: the point in map coordinates
|
|
\param[in,out] layerPoint the point in layer coordinates
|
|
|
|
:return:
|
|
0 in case of success
|
|
1 if the current layer is ``None``
|
|
2 if the transformation failed
|
|
%End
|
|
|
|
|
|
int nextPoint( QPoint p, QgsPoint &layerPoint, QgsPoint &mapPoint );
|
|
%Docstring
|
|
Converts a point to map coordinates and layer coordinates
|
|
|
|
:param p: the input point
|
|
\param[in,out] layerPoint the point in layer coordinates
|
|
\param[in,out] mapPoint the point in map coordinates
|
|
|
|
:return:
|
|
0 in case of success
|
|
1 if the current layer is ``None`` or not a vector layer
|
|
2 if the transformation failed
|
|
%End
|
|
|
|
|
|
int fetchLayerPoint( const QgsPointLocator::Match &match, QgsPoint &layerPoint );
|
|
%Docstring
|
|
Fetches the original point from the source layer if it has the same
|
|
CRS as the current layer.
|
|
If topological editing is activated, the points are projected to the
|
|
current layer CRS.
|
|
|
|
:return:
|
|
0 in case of success
|
|
1 if not applicable (CRS mismatch / invalid layer)
|
|
2 in case of failure
|
|
%End
|
|
|
|
int addVertex( const QgsPointXY &point );
|
|
%Docstring
|
|
Adds a point to the rubber band (in map coordinates) and to the capture list (in layer coordinates)
|
|
|
|
:return: 0 in case of success, 2 if coordinate transformation failed
|
|
%End
|
|
|
|
int addVertex( const QgsPointXY &mapPoint, const QgsPointLocator::Match &match );
|
|
%Docstring
|
|
Variant to supply more information in the case of snapping
|
|
|
|
:param mapPoint: The vertex to add in map coordinates
|
|
:param match: Data about the snapping match. Can be an invalid match, if point not snapped.
|
|
%End
|
|
|
|
void undo( bool isAutoRepeat = false );
|
|
%Docstring
|
|
Removes the last vertex from mRubberBand and mCaptureList.
|
|
|
|
Since QGIS 3.20, if ``isAutoRepeat`` is set to ``True`` then the undo operation will be treated
|
|
as a auto repeated undo as if the user has held down the undo key for an extended period of time.
|
|
%End
|
|
|
|
void startCapturing();
|
|
%Docstring
|
|
Start capturing
|
|
%End
|
|
|
|
bool isCapturing() const;
|
|
%Docstring
|
|
Are we currently capturing?
|
|
|
|
:return: Is the tool in capture mode?
|
|
%End
|
|
|
|
int size();
|
|
%Docstring
|
|
Number of points digitized
|
|
|
|
:return: Number of points
|
|
%End
|
|
|
|
QVector<QgsPointXY> points() const /Deprecated/;
|
|
%Docstring
|
|
List of digitized points
|
|
|
|
:return: List of points
|
|
|
|
.. deprecated:: QGIS 3.12
|
|
- will be removed in QGIS 4.0. Use the variant returns :py:class:`QgsPoint` objects instead of :py:class:`QgsPointXY`.
|
|
%End
|
|
|
|
|
|
QgsPointSequence pointsZM() const;
|
|
%Docstring
|
|
List of digitized points
|
|
|
|
:return: List of points
|
|
|
|
.. versionadded:: 3.12
|
|
%End
|
|
|
|
void setPoints( const QVector<QgsPointXY> &pointList ) /Deprecated/;
|
|
%Docstring
|
|
Set the points on which to work
|
|
|
|
:param pointList: A list of points
|
|
|
|
.. deprecated:: QGIS 3.12
|
|
- will be removed in QGIS 4.0. Use the variant which accepts :py:class:`QgsPoint` objects instead of :py:class:`QgsPointXY`.
|
|
%End
|
|
|
|
void setPoints( const QgsPointSequence &pointList );
|
|
%Docstring
|
|
Set the points on which to work
|
|
|
|
:param pointList: A list of points
|
|
|
|
.. versionadded:: 3.12
|
|
%End
|
|
|
|
void closePolygon();
|
|
%Docstring
|
|
Close an open polygon
|
|
%End
|
|
|
|
protected slots:
|
|
|
|
void stopCapturing();
|
|
%Docstring
|
|
Stop capturing
|
|
%End
|
|
|
|
private:
|
|
virtual void geometryCaptured( const QgsGeometry &geometry );
|
|
%Docstring
|
|
Called when the geometry is captured
|
|
A more specific handler is also called afterwards (pointCaptured, lineCaptured or polygonCaptured)
|
|
|
|
.. versionadded:: 3.26
|
|
%End
|
|
virtual void pointCaptured( const QgsPoint &point );
|
|
%Docstring
|
|
Called when a point is captured
|
|
geometryCaptured is called just before
|
|
|
|
.. versionadded:: 3.26
|
|
%End
|
|
virtual void lineCaptured( const QgsCurve *line );
|
|
%Docstring
|
|
Called when a line is captured
|
|
geometryCaptured is called just before
|
|
|
|
.. versionadded:: 3.26
|
|
%End
|
|
virtual void polygonCaptured( const QgsCurvePolygon *polygon );
|
|
%Docstring
|
|
Called when a polygon is captured
|
|
geometryCaptured is called just before
|
|
|
|
.. versionadded:: 3.26
|
|
%End
|
|
};
|
|
|
|
QFlags<QgsMapToolCapture::Capability> operator|(QgsMapToolCapture::Capability f1, QFlags<QgsMapToolCapture::Capability> f2);
|
|
|
|
|
|
/************************************************************************
|
|
* This file has been generated automatically from *
|
|
* *
|
|
* src/gui/qgsmaptoolcapture.h *
|
|
* *
|
|
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
|
|
************************************************************************/
|