mirror of
				https://github.com/qgis/QGIS.git
				synced 2025-11-04 00:04:25 -05: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.pl again   *
 | 
						|
 ************************************************************************/
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
class QgsTriangle : QgsPolygon
 | 
						|
{
 | 
						|
%Docstring(signature="appended")
 | 
						|
Triangle geometry type.
 | 
						|
 | 
						|
.. versionadded:: 3.0
 | 
						|
%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
 | 
						|
 | 
						|
    bool operator==( const QgsTriangle &other ) const /HoldGIL/;
 | 
						|
    bool operator!=( const QgsTriangle &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() /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.pl again   *
 | 
						|
 ************************************************************************/
 |