/************************************************************************
 * This file has been generated automatically from                      *
 *                                                                      *
 * src/gui/maptools/qgsmaptooledit.h                                    *
 *                                                                      *
 * Do not edit manually ! Edit header and run scripts/sipify.py again   *
 ************************************************************************/




class QgsMapToolEdit : QgsMapTool
{
%Docstring(signature="appended")
Base class for map tools that edit vector geometry
%End

%TypeHeaderCode
#include "qgsmaptooledit.h"
%End
  public:
    QgsMapToolEdit( QgsMapCanvas *canvas );

    virtual Flags flags() const;

    static double defaultZValue();
%Docstring
Returns default Z value. Used for setting Z coordinate to new vertex.
%End

    static double defaultMValue();
%Docstring
Returns default M value. Used for setting M coordinate to new vertex.

.. versionadded:: 3.20
%End

    QgsGeometryRubberBand *createGeometryRubberBand( Qgis::GeometryType geometryType = Qgis::GeometryType::Line, bool alternativeBand = false ) const /Factory/;
%Docstring
Creates a geometry rubber band with the color/line width from the QGIS
settings. The caller takes ownership of the returned object

:param geometryType: 
:param alternativeBand: if ``True``, rubber band will be set with more
                        transparency and a dash pattern. default is
                        ``False``.
%End

  protected:
    static QColor digitizingStrokeColor();
%Docstring
Returns stroke color for rubber bands (from global settings)
%End
    static int digitizingStrokeWidth();
%Docstring
Returns stroke width for rubber bands (from global settings)
%End
    static QColor digitizingFillColor();
%Docstring
Returns fill color for rubber bands (from global settings)
%End

    QgsRubberBand *createRubberBand( Qgis::GeometryType geometryType = Qgis::GeometryType::Line, bool alternativeBand = false ) /Factory/;
%Docstring
Creates a rubber band with the color/line width from the QGIS settings.
The caller takes ownership of the returned object

:param geometryType: 
:param alternativeBand: if ``True``, rubber band will be set with more
                        transparency and a dash pattern. default is
                        ``False``.
%End

    QgsVectorLayer *currentVectorLayer();
%Docstring
Returns the current vector layer of the map canvas or 0
%End

    enum TopologicalResult /BaseType=IntEnum/
    {
      Success,
      InvalidCanvas,
      InvalidLayer,
    };

 TopologicalResult addTopologicalPoints( const QVector<QgsPointXY> &vertices ) /Deprecated/;
%Docstring
Adds a list of ``vertices`` to other features to keep topology up to
date, e.g. to neighbouring polygons. The ``vertices`` list specifies a
set of topological points to add, in the layer's coordinate reference
system.

.. 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

    TopologicalResult addTopologicalPoints( const QVector<QgsPoint> &vertices );
%Docstring
Adds a list of ``vertices`` to other features to keep topology up to
date, e.g. to neighbouring polygons. The ``vertices`` list specifies a
set of topological points to add, in the layer's coordinate reference
system.

.. versionadded:: 3.10
%End

    void notifyNotVectorLayer();
%Docstring
Display a timed message bar noting the active layer is not vector.
%End
    void notifyNotEditableLayer();
%Docstring
Display a timed message bar noting the active vector layer is not
editable.
%End

};

/************************************************************************
 * This file has been generated automatically from                      *
 *                                                                      *
 * src/gui/maptools/qgsmaptooledit.h                                    *
 *                                                                      *
 * Do not edit manually ! Edit header and run scripts/sipify.py again   *
 ************************************************************************/
