mirror of
				https://github.com/qgis/QGIS.git
				synced 2025-10-31 00:06:02 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			480 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			480 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| /************************************************************************
 | |
|  * This file has been generated automatically from                      *
 | |
|  *                                                                      *
 | |
|  * src/core/geometry/qgspoint.h                                         *
 | |
|  *                                                                      *
 | |
|  * Do not edit manually ! Edit header and run scripts/sipify.pl again   *
 | |
|  ************************************************************************/
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| class QgsPoint: QgsAbstractGeometry
 | |
| {
 | |
| %Docstring
 | |
| Point geometry type, with support for z-dimension and m-values.
 | |
| 
 | |
| .. versionadded:: 3.0
 | |
| %End
 | |
| 
 | |
| %TypeHeaderCode
 | |
| #include "qgspoint.h"
 | |
| %End
 | |
|   public:
 | |
|     static const QMetaObject staticMetaObject;
 | |
| 
 | |
|   public:
 | |
| 
 | |
|     QgsPoint( SIP_PYOBJECT x = Py_None, SIP_PYOBJECT y = Py_None, SIP_PYOBJECT z = Py_None, SIP_PYOBJECT m = Py_None, SIP_PYOBJECT wkbType = Py_None ) [( double x = 0.0, double y = 0.0, double z = 0.0, double m = 0.0, QgsWkbTypes::Type wkbType = QgsWkbTypes::Unknown )];
 | |
| %Docstring
 | |
| Construct a point with the provided initial coordinate values.
 | |
| 
 | |
| If ``wkbType`` is set to `QgsWkbTypes.Point`, `QgsWkbTypes.PointZ`, `QgsWkbTypes.PointM` or `QgsWkbTypes.PointZM`
 | |
| the type will be set accordingly. If it is left to the default `QgsWkbTypes.Unknown`, the type will be set
 | |
| based on the following rules:
 | |
| 
 | |
| - If only x and y are specified, the type will be a 2D point.
 | |
| - If any or both of the Z and M are specified, the appropriate type will be created.
 | |
| 
 | |
| .. code-block:: python
 | |
| 
 | |
|        pt = QgsPoint(43.4, 5.3)
 | |
|        pt.asWkt() # Point(43.4 5.3)
 | |
| 
 | |
|        pt_z = QgsPoint(120, 343, 77)
 | |
|        pt.asWkt() # PointZ(120 343 77)
 | |
| 
 | |
|        pt_m = QgsPoint(33, 88, m=5)
 | |
|        pt_m.m() # 5
 | |
|        pt_m.wkbType() # QgsWkbTypes.PointM
 | |
| 
 | |
|        pt = QgsPoint(30, 40, wkbType=QgsWkbTypes.PointZ)
 | |
|        pt.z() # nan
 | |
|        pt.wkbType() # QgsWkbTypes.PointZ
 | |
| %End
 | |
| %MethodCode
 | |
|     if ( sipCanConvertToType( a0, sipType_QgsPointXY, SIP_NOT_NONE ) && a1 == Py_None && a2 == Py_None && a3 == Py_None && a4 == Py_None )
 | |
|     {
 | |
|       int state;
 | |
|       sipIsErr = 0;
 | |
| 
 | |
|       QgsPointXY *p = reinterpret_cast<QgsPointXY *>( sipConvertToType( a0, sipType_QgsPointXY, 0, SIP_NOT_NONE, &state, &sipIsErr ) );
 | |
|       if ( sipIsErr )
 | |
|       {
 | |
|         sipReleaseType( p, sipType_QgsPointXY, state );
 | |
|       }
 | |
|       else
 | |
|       {
 | |
|         sipCpp = new sipQgsPoint( QgsPoint( *p ) );
 | |
|       }
 | |
|     }
 | |
|     else if ( sipCanConvertToType( a0, sipType_QPointF, SIP_NOT_NONE ) && a1 == Py_None && a2 == Py_None && a3 == Py_None && a4 == Py_None )
 | |
|     {
 | |
|       int state;
 | |
|       sipIsErr = 0;
 | |
| 
 | |
|       QPointF *p = reinterpret_cast<QPointF *>( sipConvertToType( a0, sipType_QPointF, 0, SIP_NOT_NONE, &state, &sipIsErr ) );
 | |
|       if ( sipIsErr )
 | |
|       {
 | |
|         sipReleaseType( p, sipType_QPointF, state );
 | |
|       }
 | |
|       else
 | |
|       {
 | |
|         sipCpp = new sipQgsPoint( QgsPoint( *p ) );
 | |
|       }
 | |
|     }
 | |
|     else if (
 | |
|       ( a0 == Py_None || PyFloat_AsDouble( a0 ) != -1.0 || !PyErr_Occurred() ) &&
 | |
|       ( a1 == Py_None || PyFloat_AsDouble( a1 ) != -1.0 || !PyErr_Occurred() ) &&
 | |
|       ( a2 == Py_None || PyFloat_AsDouble( a2 ) != -1.0 || !PyErr_Occurred() ) &&
 | |
|       ( a3 == Py_None || PyFloat_AsDouble( a3 ) != -1.0 || !PyErr_Occurred() ) )
 | |
|     {
 | |
|       double x = a0 == Py_None ? std::numeric_limits<double>::quiet_NaN() : PyFloat_AsDouble( a0 );
 | |
|       double y = a1 == Py_None ? std::numeric_limits<double>::quiet_NaN() : PyFloat_AsDouble( a1 );
 | |
|       double z = a2 == Py_None ? std::numeric_limits<double>::quiet_NaN() : PyFloat_AsDouble( a2 );
 | |
|       double m = a3 == Py_None ? std::numeric_limits<double>::quiet_NaN() : PyFloat_AsDouble( a3 );
 | |
|       QgsWkbTypes::Type wkbType = a4 == Py_None ? QgsWkbTypes::Unknown : static_cast<QgsWkbTypes::Type>( sipConvertToEnum( a4, sipType_QgsWkbTypes_Type ) );
 | |
|       sipCpp = new sipQgsPoint( QgsPoint( x, y, z, m, wkbType ) );
 | |
|     }
 | |
|     else // Invalid ctor arguments
 | |
|     {
 | |
|       PyErr_SetString( PyExc_TypeError, QStringLiteral( "Invalid type in constructor arguments." ).toUtf8().constData() );
 | |
|       sipIsErr = 1;
 | |
|     }
 | |
| %End
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
|     virtual bool operator==( const QgsAbstractGeometry &other ) const /HoldGIL/;
 | |
| 
 | |
|     virtual bool operator!=( const QgsAbstractGeometry &other ) const /HoldGIL/;
 | |
| 
 | |
|     double x() const /HoldGIL/;
 | |
| %Docstring
 | |
| Returns the point's x-coordinate.
 | |
| 
 | |
| .. seealso:: :py:func:`setX`
 | |
| 
 | |
| .. seealso:: :py:func:`rx`
 | |
| %End
 | |
| 
 | |
|     double y() const /HoldGIL/;
 | |
| %Docstring
 | |
| Returns the point's y-coordinate.
 | |
| 
 | |
| .. seealso:: :py:func:`setY`
 | |
| 
 | |
| .. seealso:: :py:func:`ry`
 | |
| %End
 | |
| 
 | |
|     double z() const /HoldGIL/;
 | |
| %Docstring
 | |
| Returns the point's z-coordinate.
 | |
| 
 | |
| .. seealso:: :py:func:`setZ`
 | |
| 
 | |
| .. seealso:: :py:func:`rz`
 | |
| %End
 | |
| 
 | |
|     double m() const /HoldGIL/;
 | |
| %Docstring
 | |
| Returns the point's m value.
 | |
| 
 | |
| .. seealso:: :py:func:`setM`
 | |
| 
 | |
| .. seealso:: :py:func:`rm`
 | |
| %End
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
|     void setX( double x ) /HoldGIL/;
 | |
| %Docstring
 | |
| Sets the point's x-coordinate.
 | |
| 
 | |
| .. seealso:: x
 | |
| 
 | |
| .. seealso:: :py:func:`rx`
 | |
| %End
 | |
| 
 | |
|     void setY( double y ) /HoldGIL/;
 | |
| %Docstring
 | |
| Sets the point's y-coordinate.
 | |
| 
 | |
| .. seealso:: y
 | |
| 
 | |
| .. seealso:: :py:func:`ry`
 | |
| %End
 | |
| 
 | |
|     void setZ( double z ) /HoldGIL/;
 | |
| %Docstring
 | |
| Sets the point's z-coordinate.
 | |
| 
 | |
| .. note::
 | |
| 
 | |
|    calling this will have no effect if the point does not contain a z-dimension. Use :py:func:`~QgsPoint.addZValue` to
 | |
|    add a z value and force the point to have a z dimension.
 | |
| 
 | |
| .. seealso:: z
 | |
| 
 | |
| .. seealso:: :py:func:`rz`
 | |
| %End
 | |
| 
 | |
|     void setM( double m ) /HoldGIL/;
 | |
| %Docstring
 | |
| Sets the point's m-value.
 | |
| 
 | |
| .. note::
 | |
| 
 | |
|    calling this will have no effect if the point does not contain a m-dimension. Use :py:func:`~QgsPoint.addMValue` to
 | |
|    add a m value and force the point to have an m dimension.
 | |
| 
 | |
| .. seealso:: m
 | |
| 
 | |
| .. seealso:: :py:func:`rm`
 | |
| %End
 | |
| 
 | |
|     QPointF toQPointF() const /HoldGIL/;
 | |
| %Docstring
 | |
| Returns the point as a QPointF.
 | |
| 
 | |
| .. versionadded:: 2.14
 | |
| %End
 | |
| 
 | |
|     double distance( double x, double y ) const /HoldGIL/;
 | |
| %Docstring
 | |
| Returns the Cartesian 2D distance between this point and a specified x, y coordinate. In certain
 | |
| cases it may be more appropriate to call the faster :py:func:`~QgsPoint.distanceSquared` method, e.g.,
 | |
| when comparing distances.
 | |
| 
 | |
| .. seealso:: :py:func:`distanceSquared`
 | |
| 
 | |
| .. versionadded:: 3.0
 | |
| %End
 | |
| 
 | |
|     double distance( const QgsPoint &other ) const /HoldGIL/;
 | |
| %Docstring
 | |
| Returns the Cartesian 2D distance between this point and another point. In certain
 | |
| cases it may be more appropriate to call the faster :py:func:`~QgsPoint.distanceSquared` method, e.g.,
 | |
| when comparing distances.
 | |
| 
 | |
| .. versionadded:: 3.0
 | |
| %End
 | |
| 
 | |
|     double distanceSquared( double x, double y ) const /HoldGIL/;
 | |
| %Docstring
 | |
| Returns the Cartesian 2D squared distance between this point a specified x, y coordinate. Calling
 | |
| this is faster than calling :py:func:`~QgsPoint.distance`, and may be useful in use cases such as comparing
 | |
| distances where the extra expense of calling :py:func:`~QgsPoint.distance` is not required.
 | |
| 
 | |
| .. seealso:: :py:func:`distance`
 | |
| 
 | |
| .. versionadded:: 3.0
 | |
| %End
 | |
| 
 | |
|     double distanceSquared( const QgsPoint &other ) const /HoldGIL/;
 | |
| %Docstring
 | |
| Returns the Cartesian 2D squared distance between this point another point. Calling
 | |
| this is faster than calling :py:func:`~QgsPoint.distance`, and may be useful in use cases such as comparing
 | |
| distances where the extra expense of calling :py:func:`~QgsPoint.distance` is not required.
 | |
| 
 | |
| .. seealso:: :py:func:`distance`
 | |
| 
 | |
| .. versionadded:: 3.0
 | |
| %End
 | |
| 
 | |
|     double distance3D( double x, double y, double z ) const /HoldGIL/;
 | |
| %Docstring
 | |
| Returns the Cartesian 3D distance between this point and a specified x, y, z coordinate. In certain
 | |
| cases it may be more appropriate to call the faster :py:func:`~QgsPoint.distanceSquared` method, e.g.,
 | |
| when comparing distances.
 | |
| 
 | |
| .. seealso:: :py:func:`distanceSquared`
 | |
| 
 | |
| .. versionadded:: 3.0
 | |
| %End
 | |
| 
 | |
|     double distance3D( const QgsPoint &other ) const /HoldGIL/;
 | |
| %Docstring
 | |
| Returns the Cartesian 3D distance between this point and another point. In certain
 | |
| cases it may be more appropriate to call the faster :py:func:`~QgsPoint.distanceSquared` method, e.g.,
 | |
| when comparing distances.
 | |
| 
 | |
| .. versionadded:: 3.0
 | |
| %End
 | |
| 
 | |
|     double distanceSquared3D( double x, double y, double z ) const /HoldGIL/;
 | |
| %Docstring
 | |
| Returns the Cartesian 3D squared distance between this point and a specified x, y, z coordinate. Calling
 | |
| this is faster than calling :py:func:`~QgsPoint.distance`, and may be useful in use cases such as comparing
 | |
| distances where the extra expense of calling :py:func:`~QgsPoint.distance` is not required.
 | |
| 
 | |
| .. seealso:: :py:func:`distance`
 | |
| 
 | |
| .. versionadded:: 3.0
 | |
| %End
 | |
| 
 | |
|     double distanceSquared3D( const QgsPoint &other ) const /HoldGIL/;
 | |
| %Docstring
 | |
| Returns the Cartesian 3D squared distance between this point and another point. Calling
 | |
| this is faster than calling :py:func:`~QgsPoint.distance`, and may be useful in use cases such as comparing
 | |
| distances where the extra expense of calling :py:func:`~QgsPoint.distance` is not required.
 | |
| 
 | |
| .. seealso:: :py:func:`distance`
 | |
| 
 | |
| .. versionadded:: 3.0
 | |
| %End
 | |
| 
 | |
|     double azimuth( const QgsPoint &other ) const /HoldGIL/;
 | |
| %Docstring
 | |
| Calculates Cartesian azimuth between this point and other one (clockwise in degree, starting from north)
 | |
| 
 | |
| .. versionadded:: 3.0
 | |
| %End
 | |
| 
 | |
|     double inclination( const QgsPoint &other ) const /HoldGIL/;
 | |
| %Docstring
 | |
| Calculates Cartesian inclination between this point and other one (starting from zenith = 0 to nadir = 180. Horizon = 90)
 | |
| Returns 90.0 if the distance between this point and other one is equal to 0 (same point).
 | |
| 
 | |
| .. versionadded:: 3.0
 | |
| %End
 | |
| 
 | |
|     QgsPoint project( double distance, double azimuth, double inclination = 90.0 ) const /HoldGIL/;
 | |
| %Docstring
 | |
| Returns a new point which corresponds to this point projected by a specified distance
 | |
| with specified angles (azimuth and inclination), using Cartesian mathematics.
 | |
| M value is preserved.
 | |
| 
 | |
| :param distance: distance to project
 | |
| :param azimuth: angle to project in X Y, clockwise in degrees starting from north
 | |
| :param inclination: angle to project in Z (3D). If the point is 2D, the Z value is assumed to be 0.
 | |
| 
 | |
| :return: The point projected. If a 2D point is projected a 3D point will be returned except if
 | |
|          inclination is 90. A 3D point is always returned if a 3D point is projected.
 | |
| 
 | |
| Example
 | |
| -------
 | |
| 
 | |
| .. code-block:: python
 | |
| 
 | |
|        p = QgsPoint( 1, 2 ) # 2D point
 | |
|        pr = p.project ( 1, 0 )
 | |
|        # pr is a 2D point: 'Point (1 3)'
 | |
|        pr = p.project ( 1, 0, 90 )
 | |
|        # pr is a 2D point: 'Point (1 3)'
 | |
|        pr = p.project (1, 0, 0 )
 | |
|        # pr is a 3D point: 'PointZ (1 2 1)'
 | |
|        p = QgsPoint( QgsWkbTypes.PointZ, 1, 2, 2 ) # 3D point
 | |
|        pr = p.project ( 1, 0 )
 | |
|        # pr is a 3D point: 'PointZ (1 3 2)'
 | |
|        pr = p.project ( 1, 0, 90 )
 | |
|        # pr is a 3D point: 'PointZ (1 3 2)'
 | |
|        pr = p.project (1, 0, 0 )
 | |
|        # pr is a 3D point: 'PointZ (1 2 3)'
 | |
| 
 | |
| .. versionadded:: 3.0
 | |
| %End
 | |
| 
 | |
|     QgsVector operator-( const QgsPoint &p ) const /HoldGIL/;
 | |
| 
 | |
|     QgsPoint &operator+=( QgsVector v ) /HoldGIL/;
 | |
| 
 | |
|     QgsPoint &operator-=( QgsVector v ) /HoldGIL/;
 | |
| 
 | |
|     QgsPoint operator+( QgsVector v ) const /HoldGIL/;
 | |
| 
 | |
|     QgsPoint operator-( QgsVector v ) const /HoldGIL/;
 | |
| 
 | |
|     virtual bool isEmpty() const /HoldGIL/;
 | |
| 
 | |
|     virtual QgsRectangle boundingBox() const /HoldGIL/;
 | |
| 
 | |
|     virtual QString geometryType() const /HoldGIL/;
 | |
| 
 | |
|     virtual int dimension() const /HoldGIL/;
 | |
| 
 | |
|     virtual QgsPoint *clone() const /Factory/;
 | |
| 
 | |
|     virtual QgsPoint *snappedToGrid( double hSpacing, double vSpacing, double dSpacing = 0, double mSpacing = 0 ) const /Factory/;
 | |
| 
 | |
|     virtual bool removeDuplicateNodes( double epsilon = 4 * DBL_EPSILON, bool useZValues = false );
 | |
| 
 | |
|     virtual void clear();
 | |
| 
 | |
|     virtual bool fromWkb( QgsConstWkbPtr &wkb );
 | |
| 
 | |
|     virtual bool fromWkt( const QString &wkt );
 | |
| 
 | |
|     virtual int wkbSize( QgsAbstractGeometry::WkbFlags flags = QgsAbstractGeometry::WkbFlags() ) const;
 | |
| 
 | |
|     virtual QByteArray asWkb( QgsAbstractGeometry::WkbFlags = QgsAbstractGeometry::WkbFlags() ) const;
 | |
| 
 | |
|     virtual QString asWkt( int precision = 17 ) const;
 | |
| 
 | |
|     virtual QDomElement asGml2( QDomDocument &doc, int precision = 17, const QString &ns = "gml", QgsAbstractGeometry::AxisOrder axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const;
 | |
| 
 | |
|     virtual QDomElement asGml3( QDomDocument &doc, int precision = 17, const QString &ns = "gml", QgsAbstractGeometry::AxisOrder axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const;
 | |
| 
 | |
|     virtual QString asKml( int precision = 17 ) const;
 | |
| 
 | |
|     virtual void draw( QPainter &p ) const;
 | |
| 
 | |
|     virtual QPainterPath asQPainterPath() const;
 | |
| 
 | |
|     virtual void transform( const QgsCoordinateTransform &ct, QgsCoordinateTransform::TransformDirection d = QgsCoordinateTransform::ForwardTransform, bool transformZ = false ) throw( QgsCsException );
 | |
| 
 | |
|     virtual void transform( const QTransform &t, double zTranslate = 0.0, double zScale = 1.0, double mTranslate = 0.0, double mScale = 1.0 );
 | |
| 
 | |
|     virtual QgsCoordinateSequence coordinateSequence() const;
 | |
| 
 | |
|     virtual int nCoordinates() const /HoldGIL/;
 | |
| 
 | |
|     virtual int vertexNumberFromVertexId( QgsVertexId id ) const;
 | |
| 
 | |
|     virtual QgsAbstractGeometry *boundary() const /Factory/;
 | |
| 
 | |
|     virtual bool isValid( QString &error /Out/, int flags = 0 ) const /HoldGIL/;
 | |
| 
 | |
| 
 | |
|     virtual bool insertVertex( QgsVertexId position, const QgsPoint &vertex );
 | |
| 
 | |
|     virtual bool moveVertex( QgsVertexId position, const QgsPoint &newPos );
 | |
| 
 | |
|     virtual bool deleteVertex( QgsVertexId position );
 | |
| 
 | |
| 
 | |
|     virtual double closestSegment( const QgsPoint &pt, QgsPoint &segmentPt /Out/, QgsVertexId &vertexAfter /Out/, int *leftOf /Out/ = 0, double epsilon = 4 * DBL_EPSILON ) const;
 | |
| 
 | |
|     virtual bool nextVertex( QgsVertexId &id, QgsPoint &vertex /Out/ ) const;
 | |
| 
 | |
|     virtual void adjacentVertices( QgsVertexId vertex, QgsVertexId &previousVertex /Out/, QgsVertexId &nextVertex /Out/ ) const;
 | |
| 
 | |
| 
 | |
|     virtual double vertexAngle( QgsVertexId vertex ) const;
 | |
| 
 | |
| %Docstring
 | |
| Angle undefined. Always returns 0.0
 | |
| 
 | |
| :param vertex: the vertex id
 | |
| 
 | |
| :return: 0.0
 | |
| %End
 | |
| 
 | |
|     virtual int vertexCount( int /*part*/ = 0, int /*ring*/ = 0 ) const;
 | |
| 
 | |
|     virtual int ringCount( int /*part*/ = 0 ) const;
 | |
| 
 | |
|     virtual int partCount() const;
 | |
| 
 | |
|     virtual QgsPoint vertexAt( QgsVertexId /*id*/ ) const;
 | |
| 
 | |
|     virtual QgsPoint *toCurveType() const /Factory/;
 | |
| 
 | |
|     virtual double segmentLength( QgsVertexId startVertex ) const;
 | |
| 
 | |
| 
 | |
|     virtual bool addZValue( double zValue = 0 );
 | |
| 
 | |
|     virtual bool addMValue( double mValue = 0 );
 | |
| 
 | |
|     virtual bool dropZValue();
 | |
| 
 | |
|     virtual bool dropMValue();
 | |
| 
 | |
|     virtual void swapXy();
 | |
| 
 | |
|     virtual bool convertTo( QgsWkbTypes::Type type );
 | |
| 
 | |
| 
 | |
| 
 | |
|     virtual QgsPoint *createEmptyWithSameType() const /Factory/;
 | |
| 
 | |
| 
 | |
|     SIP_PYOBJECT __repr__();
 | |
| %MethodCode
 | |
|     QString str = QStringLiteral( "<QgsPoint: %1>" ).arg( sipCpp->asWkt() );
 | |
|     sipRes = PyUnicode_FromString( str.toUtf8().constData() );
 | |
| %End
 | |
| 
 | |
|   protected:
 | |
| 
 | |
|     virtual int childCount() const;
 | |
| 
 | |
|     virtual QgsPoint childPoint( int index ) const;
 | |
| 
 | |
| 
 | |
| };
 | |
| 
 | |
| 
 | |
| /************************************************************************
 | |
|  * This file has been generated automatically from                      *
 | |
|  *                                                                      *
 | |
|  * src/core/geometry/qgspoint.h                                         *
 | |
|  *                                                                      *
 | |
|  * Do not edit manually ! Edit header and run scripts/sipify.pl again   *
 | |
|  ************************************************************************/
 |