QGIS/python/PyQt6/gui/auto_generated/maptools/qgsmaptoolcapture.sip.in
Nyall Dawson 085043b459 Use protected, not private virtual methods for map tool classes
These are NOT called by sip when implementing the class in Python,
making these classes unusable in PyQGIS. Just make the virtual
methods protected instead.
2025-06-04 07:36:51 +10:00

385 lines
9.6 KiB
Plaintext

/************************************************************************
* This file has been generated automatically from *
* *
* src/gui/maptools/qgsmaptoolcapture.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.py again *
************************************************************************/
class QgsMapToolCapture : QgsMapToolAdvancedDigitizing
{
%Docstring(signature="appended")
Base class for map tools 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 /BaseType=IntEnum/
{
CaptureNone,
CapturePoint,
CaptureLine,
CapturePolygon
};
enum Capability /BaseType=IntEnum/
{
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="Since 3.26. Use setCurrentCaptureTechnique() instead."/;
%Docstring
Enable the digitizing with curve
.. deprecated:: 3.26
Use :py:func:`~QgsMapToolCapture.setCurrentCaptureTechnique` instead.
%End
void setStreamDigitizingEnabled( bool enable ) /Deprecated="Since 3.26. Use setCurrentCaptureTechnique() instead."/;
%Docstring
Toggles the stream digitizing mode.
.. versionadded:: 3.20
.. deprecated:: 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 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 layerPoint: the point in layer coordinates
:param 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="Since 3.12. Will be removed in QGIS 4.0. Use the variant returns QgsPoint objects instead of QgsPointXY."/;
%Docstring
List of digitized points
:return: List of points
.. deprecated:: 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="Since 3.12. Will be removed in QGIS 4.0. Use the variant which accepts QgsPoint objects instead of QgsPointXY."/;
%Docstring
Set the points on which to work
:param pointList: A list of points
.. deprecated:: 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
virtual void geometryCaptured( const QgsGeometry &geometry );
%Docstring
Called when the geometry is captured.
A more specific handler is also called afterwards
(:py:func:`~QgsMapToolCapture.pointCaptured`,
:py:func:`~QgsMapToolCapture.lineCaptured` or
:py:func:`~QgsMapToolCapture.polygonCaptured`).
.. versionadded:: 3.26
%End
virtual void pointCaptured( const QgsPoint &point );
%Docstring
Called when a point is captured.
The generic :py:func:`~QgsMapToolCapture.geometryCaptured` method will
be called immediately before this point-specific method.
.. versionadded:: 3.26
%End
virtual void lineCaptured( const QgsCurve *line );
%Docstring
Called when a line is captured
The generic :py:func:`~QgsMapToolCapture.geometryCaptured` method will
be called immediately before this line-specific method.
.. versionadded:: 3.26
%End
virtual void polygonCaptured( const QgsCurvePolygon *polygon );
%Docstring
Called when a polygon is captured.
The generic :py:func:`~QgsMapToolCapture.geometryCaptured` method will
be called immediately before this polygon-specific method.
.. versionadded:: 3.26
%End
protected slots:
void stopCapturing();
%Docstring
Stop capturing
%End
};
QFlags<QgsMapToolCapture::Capability> operator|(QgsMapToolCapture::Capability f1, QFlags<QgsMapToolCapture::Capability> f2);
/************************************************************************
* This file has been generated automatically from *
* *
* src/gui/maptools/qgsmaptoolcapture.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.py again *
************************************************************************/