mirror of
				https://github.com/qgis/QGIS.git
				synced 2025-10-31 00:06:02 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			501 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			501 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| /************************************************************************
 | |
|  * This file has been generated automatically from                      *
 | |
|  *                                                                      *
 | |
|  * src/core/geometry/qgstriangle.h                                      *
 | |
|  *                                                                      *
 | |
|  * Do not edit manually ! Edit header and run scripts/sipify.py again   *
 | |
|  ************************************************************************/
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| class QgsTriangle : QgsPolygon
 | |
| {
 | |
| %Docstring(signature="appended")
 | |
| Triangle geometry type.
 | |
| %End
 | |
| 
 | |
| %TypeHeaderCode
 | |
| #include "qgstriangle.h"
 | |
| %End
 | |
|   public:
 | |
| 
 | |
|     QgsTriangle() /HoldGIL/;
 | |
| %Docstring
 | |
| Constructor for an empty triangle geometry.
 | |
| %End
 | |
| 
 | |
|     QgsTriangle( const QgsPoint &p1, const QgsPoint &p2, const QgsPoint &p3 ) /HoldGIL/;
 | |
| %Docstring
 | |
| Construct a QgsTriangle from three :py:class:`QgsPoint`.
 | |
| 
 | |
| :param p1: first point
 | |
| :param p2: second point
 | |
| :param p3: third point
 | |
| %End
 | |
| 
 | |
|     explicit QgsTriangle( const QgsPointXY &p1, const QgsPointXY &p2, const QgsPointXY &p3 ) /HoldGIL/;
 | |
| %Docstring
 | |
| Construct a QgsTriangle from three :py:class:`QgsPointXY`.
 | |
| 
 | |
| :param p1: first point
 | |
| :param p2: second point
 | |
| :param p3: third point
 | |
| %End
 | |
| 
 | |
|     explicit QgsTriangle( QPointF p1, QPointF p2, QPointF p3 ) /HoldGIL/;
 | |
| %Docstring
 | |
| Construct a QgsTriangle from three QPointF.
 | |
| 
 | |
| :param p1: first point
 | |
| :param p2: second point
 | |
| :param p3: third point
 | |
| %End
 | |
| 
 | |
|     virtual bool operator==( const QgsAbstractGeometry &other ) const /HoldGIL/;
 | |
| 
 | |
|     virtual bool operator!=( const QgsAbstractGeometry &other ) const /HoldGIL/;
 | |
| 
 | |
| 
 | |
|     virtual QString geometryType() const /HoldGIL/;
 | |
| 
 | |
|     virtual QgsTriangle *clone() const /Factory/;
 | |
| 
 | |
|     virtual void clear();
 | |
| 
 | |
| 
 | |
|     virtual bool fromWkb( QgsConstWkbPtr &wkbPtr );
 | |
| 
 | |
| 
 | |
|     virtual bool fromWkt( const QString &wkt );
 | |
| 
 | |
| 
 | |
|     virtual QDomElement asGml3( QDomDocument &doc, int precision = 17, const QString &ns = "gml", QgsAbstractGeometry::AxisOrder axisOrder = QgsAbstractGeometry::AxisOrder::XY ) const;
 | |
| 
 | |
| 
 | |
|     virtual QgsPolygon *surfaceToPolygon() const /Factory/;
 | |
| 
 | |
| 
 | |
|     virtual QgsCurvePolygon *toCurveType() const /Factory/;
 | |
| 
 | |
| 
 | |
|     virtual void addInteriorRing( QgsCurve *ring /Transfer/ );
 | |
| 
 | |
| %Docstring
 | |
| Inherited method not used. You cannot add an interior ring into a triangle.
 | |
| %End
 | |
| 
 | |
|     virtual bool deleteVertex( QgsVertexId position );
 | |
| 
 | |
| %Docstring
 | |
| Inherited method not used. You cannot delete or insert a vertex directly. Returns always ``False``.
 | |
| %End
 | |
|     virtual bool insertVertex( QgsVertexId position, const QgsPoint &vertex );
 | |
| 
 | |
| %Docstring
 | |
| Inherited method not used. You cannot delete or insert a vertex directly. Returns always ``False``.
 | |
| %End
 | |
|     virtual bool moveVertex( QgsVertexId vId, const QgsPoint &newPos );
 | |
| 
 | |
| 
 | |
|     virtual void setExteriorRing( QgsCurve *ring /Transfer/ );
 | |
| 
 | |
| 
 | |
|     virtual QgsCurve *boundary() const /Factory/;
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
|     QgsPoint vertexAt( int atVertex ) const /HoldGIL/;
 | |
| %Docstring
 | |
| Returns coordinates of a vertex.
 | |
| 
 | |
| :param atVertex: index of the vertex
 | |
| 
 | |
| :return: Coordinates of the vertex or empty :py:class:`QgsPoint` on error (``atVertex`` < 0 or > 3).
 | |
| %End
 | |
| 
 | |
|     QVector<double> lengths() const /HoldGIL/;
 | |
| %Docstring
 | |
| Returns the three lengths of the triangle.
 | |
| 
 | |
| :return: Lengths of triangle ABC where [AB] is at 0, [BC] is at 1, [CA] is at 2.
 | |
|          An empty list is returned for empty triangle.
 | |
| 
 | |
| Example
 | |
| -------------------------------------
 | |
| 
 | |
| .. code-block:: python
 | |
| 
 | |
|        tri = QgsTriangle( QgsPoint( 0, 0 ), QgsPoint( 0, 5 ), QgsPoint( 5, 5 ) )
 | |
|        tri.lengths()
 | |
|        # [5.0, 5.0, 7.0710678118654755]
 | |
|        QgsTriangle().lengths()
 | |
|        # []
 | |
| %End
 | |
| 
 | |
|     QVector<double> angles() const /HoldGIL/;
 | |
| %Docstring
 | |
| Returns the three angles of the triangle.
 | |
| 
 | |
| :return: Angles in radians of triangle ABC where angle BAC is at 0, angle ABC is at 1, angle BCA is at 2.
 | |
|          An empty list is returned for empty triangle.
 | |
| 
 | |
| Example
 | |
| -------------------------------------
 | |
| 
 | |
| .. code-block:: python
 | |
| 
 | |
|        tri = QgsTriangle( QgsPoint( 0, 0 ), QgsPoint( 0, 5 ), QgsPoint( 5, 5 ) )
 | |
|        [math.degrees(i) for i in tri.angles()]
 | |
|        # [45.0, 90.0, 45.0]
 | |
|        QgsTriangle().angles()
 | |
|        # []
 | |
| %End
 | |
| 
 | |
|     bool isDegenerate() const /HoldGIL/;
 | |
| %Docstring
 | |
| Convenient method checking if the geometry is degenerate (have duplicate or colinear point(s)).
 | |
| 
 | |
| :return: ``True`` if the triangle is degenerate or empty, otherwise ``False``.
 | |
| 
 | |
| Example
 | |
| -------------------------------------
 | |
| 
 | |
| .. code-block:: python
 | |
| 
 | |
|        tri = QgsTriangle()
 | |
|        tri.isDegenerate()
 | |
|        # True
 | |
|        tri = QgsTriangle( QgsPoint( 0, 0 ), QgsPoint( 0, 5 ), QgsPoint( 5, 5 ) )
 | |
|        tri.isDegenerate()
 | |
|        # False
 | |
|        tri = QgsTriangle( QgsPoint( 0, 0 ), QgsPoint( 5, 5 ), QgsPoint( 10, 10 ) )
 | |
|        tri.isDegenerate()
 | |
|        # True
 | |
|        tri = QgsTriangle( QgsPoint( 0, 0 ), QgsPoint( 0, 0 ), QgsPoint( 5, 5 ) )
 | |
|        tri.isDegenerate()
 | |
|        # True
 | |
| %End
 | |
| 
 | |
|     bool isIsocele( double lengthTolerance = 0.0001 ) const /HoldGIL/;
 | |
| %Docstring
 | |
| Is the triangle isocele (two sides with the same length)?
 | |
| 
 | |
| :param lengthTolerance: The tolerance to use
 | |
| 
 | |
| :return: ``True`` or ``False``. Always ``False`` for empty triangle.
 | |
| 
 | |
| Example
 | |
| -------------------------------------
 | |
| 
 | |
| .. code-block:: python
 | |
| 
 | |
|        tri = QgsTriangle( QgsPoint( 0, 0 ), QgsPoint( 0, 5 ), QgsPoint( 5, 5 ) )
 | |
|        tri.lengths()
 | |
|        # [5.0, 5.0, 7.0710678118654755]
 | |
|        tri.isIsocele()
 | |
|        # True
 | |
|        # length of [AB] == length of [BC]
 | |
|        QgsTriangle().isIsocele()
 | |
|        # False
 | |
| %End
 | |
| 
 | |
|     bool isEquilateral( double lengthTolerance = 0.0001 ) const /HoldGIL/;
 | |
| %Docstring
 | |
| Is the triangle equilateral (three sides with the same length)?
 | |
| 
 | |
| :param lengthTolerance: The tolerance to use
 | |
| 
 | |
| :return: ``True`` or ``False``. Always ``False`` for empty triangle.
 | |
| 
 | |
| Example
 | |
| -------------------------------------
 | |
| 
 | |
| .. code-block:: python
 | |
| 
 | |
|        tri = QgsTriangle( QgsPoint( 10, 10 ), QgsPoint( 16, 10 ), QgsPoint( 13, 15.1962 ) )
 | |
|        tri.lengths()
 | |
|        # [6.0, 6.0000412031918575, 6.0000412031918575]
 | |
|        tri.isEquilateral()
 | |
|        # True
 | |
|        # All lengths are close to 6.0
 | |
|        QgsTriangle().isEquilateral()
 | |
|        # False
 | |
| %End
 | |
| 
 | |
|     bool isRight( double angleTolerance = 0.0001 ) const /HoldGIL/;
 | |
| %Docstring
 | |
| Is the triangle right-angled?
 | |
| 
 | |
| :param angleTolerance: The tolerance to use
 | |
| 
 | |
| :return: ``True`` or ``False``. Always ``False`` for empty triangle.
 | |
| 
 | |
| Example
 | |
| -------------------------------------
 | |
| 
 | |
| .. code-block:: python
 | |
| 
 | |
|        tri = QgsTriangle( QgsPoint( 0, 0 ), QgsPoint( 0, 5 ), QgsPoint( 5, 5 ) )
 | |
|        [math.degrees(i) for i in tri.angles()]
 | |
|        # [45.0, 90.0, 45.0]
 | |
|        tri.isRight()
 | |
|        # True
 | |
|        # angle of ABC == 90
 | |
|        QgsTriangle().isRight()
 | |
|        # False
 | |
| %End
 | |
| 
 | |
|     bool isScalene( double lengthTolerance = 0.0001 ) const /HoldGIL/;
 | |
| %Docstring
 | |
| Is the triangle scalene (all sides have different lengths)?
 | |
| 
 | |
| :param lengthTolerance: The tolerance to use
 | |
| 
 | |
| :return: ``True`` or ``False``. Always ``False`` for empty triangle.
 | |
| 
 | |
| Example
 | |
| -------------------------------------
 | |
| 
 | |
| .. code-block:: python
 | |
| 
 | |
|        tri = QgsTriangle( QgsPoint( 7.2825, 4.2368 ), QgsPoint( 13.0058, 3.3218 ), QgsPoint( 9.2145, 6.5242 ) )
 | |
|        tri.lengths()
 | |
|        # [5.795980321740233, 4.962793714229921, 2.994131386562721]
 | |
|        tri.isScalene()
 | |
|        # True
 | |
|        # All lengths are different
 | |
|        QgsTriangle().isScalene()
 | |
|        # False
 | |
| %End
 | |
| 
 | |
|     QVector<QgsLineString> altitudes() const /HoldGIL/;
 | |
| %Docstring
 | |
| An altitude is a segment (defined by a :py:class:`QgsLineString`) from a vertex to the opposite side (or, if necessary, to the extension of the opposite side).
 | |
| 
 | |
| :return: Three altitudes from this triangle.
 | |
|          An empty list is returned for empty triangle.
 | |
| 
 | |
| Example
 | |
| -------------------------------------
 | |
| 
 | |
| .. code-block:: python
 | |
| 
 | |
|        tri = QgsTriangle( QgsPoint( 0, 0 ), QgsPoint( 0, 5 ), QgsPoint( 5, 5 ) )
 | |
|        [alt.asWkt() for alt in tri.altitudes()]
 | |
|        # ['LineString (0 0, 0 5)', 'LineString (0 5, 2.5 2.5)', 'LineString (5 5, 0 5)']
 | |
|        QgsTriangle().altitudes()
 | |
|        # []
 | |
| %End
 | |
| 
 | |
|     QVector<QgsLineString> medians() const /HoldGIL/;
 | |
| %Docstring
 | |
| A median is a segment (defined by a :py:class:`QgsLineString`) from a vertex to the midpoint of the opposite side.
 | |
| 
 | |
| :return: Three medians from this triangle.
 | |
|          An empty list is returned for empty triangle.
 | |
| 
 | |
| Example
 | |
| -------------------------------------
 | |
| 
 | |
| .. code-block:: python
 | |
| 
 | |
|        tri = QgsTriangle( QgsPoint( 0, 0 ), QgsPoint( 0, 5 ), QgsPoint( 5, 5 ) )
 | |
|        [med.asWkt() for med in tri.medians()]
 | |
|        # ['LineString (0 0, 2.5 5)', 'LineString (0 5, 2.5 2.5)', 'LineString (5 5, 0 2.5)']
 | |
|        QgsTriangle().medians()
 | |
|        # []
 | |
| %End
 | |
| 
 | |
|     QVector<QgsLineString> bisectors( double lengthTolerance = 0.0001 ) const /HoldGIL/;
 | |
| %Docstring
 | |
| The segment (defined by a :py:class:`QgsLineString`) returned bisect the angle of a vertex to the opposite side.
 | |
| 
 | |
| :param lengthTolerance: The tolerance to use.
 | |
| 
 | |
| :return: Three angle bisector from this triangle.
 | |
|          An empty list is returned for empty triangle.
 | |
| 
 | |
| Example
 | |
| -------------------------------------
 | |
| 
 | |
| .. code-block:: python
 | |
| 
 | |
|        tri = QgsTriangle( QgsPoint( 0, 0 ), QgsPoint( 0, 5 ), QgsPoint( 5, 5 ) )
 | |
|        [bis.asWkt() for bis in tri.bisectors()]
 | |
|        # ['LineString (0 0, 2.07106781186547462 5)', 'LineString (0 5, 2.5 2.5)', 'LineString (5 5, 0 2.92893218813452538)']
 | |
|        QgsTriangle().bisectors()
 | |
|        # []
 | |
| %End
 | |
| 
 | |
|     QgsTriangle medial() const /HoldGIL/;
 | |
| %Docstring
 | |
| Medial (or midpoint) triangle of a triangle ABC is the triangle with vertices at the midpoints of the triangle's sides.
 | |
| 
 | |
| :return: The medial from this triangle.
 | |
|          An empty triangle is returned for empty triangle.
 | |
| 
 | |
| Example
 | |
| -------------------------------------
 | |
| 
 | |
| .. code-block:: python
 | |
| 
 | |
|        tri = QgsTriangle( QgsPoint( 0, 0 ), QgsPoint( 0, 5 ), QgsPoint( 5, 5 ) )
 | |
|        tri.medial().asWkt()
 | |
|        # 'Triangle ((0 2.5, 2.5 5, 2.5 2.5, 0 2.5))'
 | |
|        QgsTriangle().medial().asWkt()
 | |
|        # 'Triangle ( )'
 | |
| %End
 | |
| 
 | |
|     QgsPoint orthocenter( double lengthTolerance = 0.0001 ) const /HoldGIL/;
 | |
| %Docstring
 | |
| An orthocenter is the point of intersection of the altitudes of a triangle.
 | |
| 
 | |
| :param lengthTolerance: The tolerance to use
 | |
| 
 | |
| :return: The orthocenter of the triangle.
 | |
|          An empty point is returned for empty triangle.
 | |
| 
 | |
| Example
 | |
| -------------------------------------
 | |
| 
 | |
| .. code-block:: python
 | |
| 
 | |
|        tri = QgsTriangle( QgsPoint( 0, 0 ), QgsPoint( 0, 5 ), QgsPoint( 5, 5 ) )
 | |
|        tri.orthocenter().asWkt()
 | |
|        # 'Point (0 5)'
 | |
|        QgsTriangle().orthocenter().asWkt()
 | |
|        # 'Point (0 0)'
 | |
| %End
 | |
| 
 | |
|     QgsPoint circumscribedCenter() const /HoldGIL/;
 | |
| %Docstring
 | |
| Center of the circumscribed circle of the triangle.
 | |
| 
 | |
| :return: The center of the circumscribed circle of the triangle.
 | |
|          An empty point is returned for empty triangle.
 | |
| 
 | |
| Example
 | |
| -------------------------------------
 | |
| 
 | |
| .. code-block:: python
 | |
| 
 | |
|        tri = QgsTriangle( QgsPoint( 0, 0 ), QgsPoint( 0, 5 ), QgsPoint( 5, 5 ) )
 | |
|        tri.circumscribedCenter().asWkt()
 | |
|        # 'Point (2.5 2.5)'
 | |
|        QgsTriangle().circumscribedCenter().asWkt()
 | |
|        # 'Point (0 0)'
 | |
| %End
 | |
| 
 | |
|     double circumscribedRadius() const /HoldGIL/;
 | |
| %Docstring
 | |
| Radius of the circumscribed circle of the triangle.
 | |
| 
 | |
| :return: The radius of the circumscribed circle of the triangle.
 | |
|          0.0 is returned for empty triangle.
 | |
| 
 | |
| Example
 | |
| -------------------------------------
 | |
| 
 | |
| .. code-block:: python
 | |
| 
 | |
|        tri = QgsTriangle( QgsPoint( 0, 0 ), QgsPoint( 0, 5 ), QgsPoint( 5, 5 ) )
 | |
|        tri.circumscribedRadius()
 | |
|        # 3.5355339059327378
 | |
|        QgsTriangle().circumscribedRadius()
 | |
|        # 0.0
 | |
| %End
 | |
| 
 | |
|     QgsCircle circumscribedCircle() const /HoldGIL/;
 | |
| %Docstring
 | |
| Circumscribed circle of the triangle.
 | |
| 
 | |
| :return: The circumbscribed of the triangle with a :py:class:`QgsCircle`.
 | |
|          An empty circle is returned for empty triangle.
 | |
| 
 | |
| Example
 | |
| -------------------------------------
 | |
| 
 | |
| .. code-block:: python
 | |
| 
 | |
|        tri = QgsTriangle( QgsPoint( 0, 0 ), QgsPoint( 0, 5 ), QgsPoint( 5, 5 ) )
 | |
|        tri.circumscribedCircle()
 | |
|        # QgsCircle(Point (2.5 2.5), 3.5355339059327378, 0)
 | |
|        QgsTriangle().circumscribedCircle()
 | |
|        # QgsCircle()
 | |
| %End
 | |
| 
 | |
|     QgsPoint inscribedCenter() const /HoldGIL/;
 | |
| %Docstring
 | |
| Center of the inscribed circle of the triangle. Z dimension is
 | |
| supported and is retrieved from the first 3D point amongst vertices.
 | |
| 
 | |
| :return: The center of the inscribed circle of the triangle.
 | |
|          An empty point is returned for empty triangle.
 | |
| 
 | |
| Example
 | |
| -------------------------------------
 | |
| 
 | |
| .. code-block:: python
 | |
| 
 | |
|        tri = QgsTriangle( QgsPoint( 0, 0 ), QgsPoint( 0, 5 ), QgsPoint( 5, 5 ) )
 | |
|        tri.inscribedCenter().asWkt()
 | |
|        # 'Point (1.46446609406726225 3.53553390593273775)'
 | |
|        QgsTriangle().inscribedCenter().asWkt()
 | |
|        # 'Point (0 0)'
 | |
| %End
 | |
| 
 | |
|     double inscribedRadius() const /HoldGIL/;
 | |
| %Docstring
 | |
| Radius of the inscribed circle of the triangle.
 | |
| 
 | |
| :return: The radius of the inscribed circle of the triangle.
 | |
|          0.0 is returned for empty triangle.
 | |
| 
 | |
| Example
 | |
| -------------------------------------
 | |
| 
 | |
| .. code-block:: python
 | |
| 
 | |
|        tri = QgsTriangle( QgsPoint( 0, 0 ), QgsPoint( 0, 5 ), QgsPoint( 5, 5 ) )
 | |
|        tri.inscribedRadius()
 | |
|        # 1.4644660940672622
 | |
|        QgsTriangle().inscribedRadius()
 | |
|        # 0.0
 | |
| %End
 | |
| 
 | |
|     QgsCircle inscribedCircle() const /HoldGIL/;
 | |
| %Docstring
 | |
| Inscribed circle of the triangle.
 | |
| 
 | |
| :return: The inscribed of the triangle with a :py:class:`QgsCircle`.
 | |
|          An empty circle is returned for empty triangle.
 | |
| 
 | |
| Example
 | |
| -------------------------------------
 | |
| 
 | |
| .. code-block:: python
 | |
| 
 | |
|        tri = QgsTriangle( QgsPoint( 0, 0 ), QgsPoint( 0, 5 ), QgsPoint( 5, 5 ) )
 | |
|        tri.inscribedCircle()
 | |
|        # QgsCircle(Point (1.46446609406726225 3.53553390593273775), 1.4644660940672622, 0)
 | |
|        QgsTriangle().inscribedCircle()
 | |
|        # QgsCircle()
 | |
| %End
 | |
| 
 | |
| 
 | |
|     virtual QgsTriangle *createEmptyWithSameType() const /Factory/;
 | |
| 
 | |
| 
 | |
| 
 | |
| };
 | |
| /************************************************************************
 | |
|  * This file has been generated automatically from                      *
 | |
|  *                                                                      *
 | |
|  * src/core/geometry/qgstriangle.h                                      *
 | |
|  *                                                                      *
 | |
|  * Do not edit manually ! Edit header and run scripts/sipify.py again   *
 | |
|  ************************************************************************/
 |