mirror of
				https://github.com/qgis/QGIS.git
				synced 2025-10-31 00:06:02 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			212 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			212 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| /************************************************************************
 | |
|  * This file has been generated automatically from                      *
 | |
|  *                                                                      *
 | |
|  * src/core/geometry/qgsquadrilateral.h                                 *
 | |
|  *                                                                      *
 | |
|  * Do not edit manually ! Edit header and run scripts/sipify.pl again   *
 | |
|  ************************************************************************/
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| class QgsQuadrilateral
 | |
| {
 | |
| %Docstring(signature="appended")
 | |
| Quadrilateral geometry type.
 | |
| 
 | |
| A quadrilateral is a polygon with four edges (or sides) and four vertices or corners.
 | |
| This class allows the creation of simple quadrilateral (which does not self-intersect).
 | |
| 
 | |
| .. versionadded:: 3.6
 | |
| %End
 | |
| 
 | |
| %TypeHeaderCode
 | |
| #include "qgsquadrilateral.h"
 | |
| %End
 | |
|   public:
 | |
| 
 | |
|     QgsQuadrilateral() /HoldGIL/;
 | |
| %Docstring
 | |
| Constructor for an empty quadrilateral geometry.
 | |
| %End
 | |
| 
 | |
|     QgsQuadrilateral( const QgsPoint &p1, const QgsPoint &p2, const QgsPoint &p3, const QgsPoint &p4 ) /HoldGIL/;
 | |
| %Docstring
 | |
| Construct a QgsQuadrilateral from four :py:class:`QgsPoint`.
 | |
| 
 | |
| :param p1: first point
 | |
| :param p2: second point
 | |
| :param p3: third point
 | |
| :param p4: fourth point
 | |
| 
 | |
| .. seealso:: :py:func:`setPoints`
 | |
| %End
 | |
| 
 | |
|     explicit QgsQuadrilateral( const QgsPointXY &p1, const QgsPointXY &p2, const QgsPointXY &p3, const QgsPointXY &p4 ) /HoldGIL/;
 | |
| %Docstring
 | |
| Construct a QgsQuadrilateral from four :py:class:`QgsPointXY`.
 | |
| 
 | |
| :param p1: first point
 | |
| :param p2: second point
 | |
| :param p3: third point
 | |
| :param p4: fourth point
 | |
| 
 | |
| .. seealso:: :py:func:`setPoints`
 | |
| %End
 | |
| 
 | |
| 
 | |
|     enum ConstructionOption
 | |
|     {
 | |
|       Distance,
 | |
|       Projected,
 | |
|     };
 | |
| 
 | |
|     static QgsQuadrilateral rectangleFrom3Points( const QgsPoint &p1, const QgsPoint &p2, const QgsPoint &p3, ConstructionOption mode ) /HoldGIL/;
 | |
| %Docstring
 | |
| Construct a QgsQuadrilateral as a Rectangle from 3 points.
 | |
| In the case where one of the points is of type PointZ. The other points
 | |
| will also be of type Z, even if they are of type Point. In addition,
 | |
| the z used will be the one of the first point with a Z.
 | |
| This ensures consistency in point types and the ability to export to a
 | |
| Polygon or LineString.
 | |
| M is taken from point ``p1``.
 | |
| 
 | |
| :param p1: first point
 | |
| :param p2: second point
 | |
| :param p3: third point
 | |
| :param mode: Construction mode to construct the rectangle from 3 points
 | |
| 
 | |
| .. seealso:: ConstructionOption
 | |
| %End
 | |
| 
 | |
|     static QgsQuadrilateral rectangleFromExtent( const QgsPoint &p1, const QgsPoint &p2 ) /HoldGIL/;
 | |
| %Docstring
 | |
| Construct a QgsQuadrilateral as a rectangle from an extent, defined by
 | |
| two opposite corner points.
 | |
| Z and M are taken from point ``p1``.
 | |
| QgsQuadrilateral will have the same dimension as ``p1`` dimension.
 | |
| 
 | |
| :param p1: first point
 | |
| :param p2: second point
 | |
| %End
 | |
| 
 | |
| 
 | |
|     static QgsQuadrilateral squareFromDiagonal( const QgsPoint &p1, const QgsPoint &p2 ) /HoldGIL/;
 | |
| %Docstring
 | |
| Construct a QgsQuadrilateral as a square from a diagonal.
 | |
| Z and M are taken from point ``p1``.
 | |
| QgsQuadrilateral will have the same dimension as ``p1`` dimension.
 | |
| 
 | |
| :param p1: first point
 | |
| :param p2: second point
 | |
| %End
 | |
| 
 | |
|     static QgsQuadrilateral rectangleFromCenterPoint( const QgsPoint ¢er, const QgsPoint &point ) /HoldGIL/;
 | |
| %Docstring
 | |
| Construct a QgsQuadrilateral as a rectangle from center point ``center``
 | |
| and another point ``point``.
 | |
| Z and M are taken from point ``p1``.
 | |
| QgsQuadrilateral will have the same dimension as ``center`` dimension.
 | |
| 
 | |
| :param center: center point
 | |
| :param point: corner point
 | |
| %End
 | |
| 
 | |
|     static QgsQuadrilateral fromRectangle( const QgsRectangle &rectangle ) /HoldGIL/;
 | |
| %Docstring
 | |
| Construct a QgsQuadrilateral as a rectangle from a :py:class:`QgsRectangle`.
 | |
| 
 | |
| :param rectangle: rectangle
 | |
| %End
 | |
| 
 | |
| 
 | |
|     bool equals( const QgsQuadrilateral &other, double epsilon = 4 * DBL_EPSILON ) const /HoldGIL/;
 | |
| %Docstring
 | |
| Compares two QgsQuadrilateral, allowing specification of the maximum allowable difference between points.
 | |
| 
 | |
| :param other: the QgsQuadrilateral to compare
 | |
| :param epsilon: the maximum difference allowed / tolerance
 | |
| %End
 | |
|     bool operator==( const QgsQuadrilateral &other ) const /HoldGIL/;
 | |
|     bool operator!=( const QgsQuadrilateral &other ) const /HoldGIL/;
 | |
| 
 | |
|     bool isValid() const /HoldGIL/;
 | |
| %Docstring
 | |
| Convenient method to determine if a QgsQuadrilateral is valid.
 | |
| A QgsQuadrilateral must be simple (not self-intersecting) and
 | |
| cannot have collinear points.
 | |
| %End
 | |
| 
 | |
|     enum Point
 | |
|     {
 | |
|       Point1,
 | |
|       Point2,
 | |
|       Point3,
 | |
|       Point4,
 | |
|     };
 | |
| 
 | |
|     bool setPoint( const QgsPoint &newPoint, Point index ) /HoldGIL/;
 | |
| %Docstring
 | |
| Sets the point ``newPoint`` at the ``index``.
 | |
| Returns ``False`` if the QgsQuadrilateral is not valid.
 | |
| 
 | |
| .. seealso:: Point
 | |
| %End
 | |
| 
 | |
|     bool setPoints( const QgsPoint &p1, const QgsPoint &p2, const QgsPoint &p3, const QgsPoint &p4 ) /HoldGIL/;
 | |
| %Docstring
 | |
| Set all points
 | |
| Returns ``False`` if the QgsQuadrilateral is not valid:
 | |
| 
 | |
| - The points do not have the same type
 | |
| - The quadrilateral would have auto intersections
 | |
| - The quadrilateral has double points
 | |
| - The quadrilateral has collinear points
 | |
| %End
 | |
| 
 | |
|     QgsPointSequence points() const;
 | |
| %Docstring
 | |
| Returns a list including the vertices of the quadrilateral.
 | |
| %End
 | |
| 
 | |
|     QgsPolygon *toPolygon( bool force2D = false ) const /Factory/;
 | |
| %Docstring
 | |
| Returns the quadrilateral as a new polygon. Ownership is transferred to the caller.
 | |
| %End
 | |
| 
 | |
|     QgsLineString *toLineString( bool force2D = false ) const /Factory/;
 | |
| %Docstring
 | |
| Returns the quadrilateral as a new linestring. Ownership is transferred to the caller.
 | |
| %End
 | |
| 
 | |
|     QString toString( int pointPrecision = 17 ) const;
 | |
| %Docstring
 | |
| Returns a string representation of the quadrilateral.
 | |
| Members will be truncated to the specified precision.
 | |
| %End
 | |
| 
 | |
|     double area() const /HoldGIL/;
 | |
| %Docstring
 | |
| Returns the area of the quadrilateral, or 0 if the quadrilateral is empty.
 | |
| %End
 | |
| 
 | |
|     double perimeter() const /HoldGIL/;
 | |
| %Docstring
 | |
| Returns the perimeter of the quadrilateral, or 0 if the quadrilateral is empty.
 | |
| %End
 | |
|     SIP_PYOBJECT __repr__();
 | |
| %MethodCode
 | |
|     QString str = QStringLiteral( "<QgsQuadrilateral: %1>" ).arg( sipCpp->toString() );
 | |
|     sipRes = PyUnicode_FromString( str.toUtf8().constData() );
 | |
| %End
 | |
| };
 | |
| 
 | |
| /************************************************************************
 | |
|  * This file has been generated automatically from                      *
 | |
|  *                                                                      *
 | |
|  * src/core/geometry/qgsquadrilateral.h                                 *
 | |
|  *                                                                      *
 | |
|  * Do not edit manually ! Edit header and run scripts/sipify.pl again   *
 | |
|  ************************************************************************/
 |