mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-26 00:02:08 -05:00
441 lines
13 KiB
Plaintext
441 lines
13 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
|
|
Triangle geometry type.
|
|
|
|
.. versionadded:: 3.0
|
|
%End
|
|
|
|
%TypeHeaderCode
|
|
#include "qgstriangle.h"
|
|
%End
|
|
public:
|
|
QgsTriangle();
|
|
|
|
QgsTriangle( const QgsPoint &p1, const QgsPoint &p2, const QgsPoint &p3 );
|
|
%Docstring
|
|
Construct a QgsTriangle from three :py:class:`QgsPointV2`.
|
|
|
|
:param p1: first point
|
|
:param p2: second point
|
|
:param p3: third point
|
|
%End
|
|
|
|
explicit QgsTriangle( const QgsPointXY &p1, const QgsPointXY &p2, const QgsPointXY &p3 );
|
|
%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 QPointF p1, const QPointF p2, const QPointF p3 );
|
|
%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;
|
|
bool operator!=( const QgsTriangle &other ) const;
|
|
|
|
virtual QString geometryType() const;
|
|
|
|
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;
|
|
%Docstring
|
|
Returns coordinates of a vertex.
|
|
|
|
:param atVertex: index of the vertex
|
|
|
|
:return: Coordinates of the vertex or QgsPoint(0,0) on error (``atVertex`` < 0 or > 3).
|
|
%End
|
|
|
|
QVector<double> lengths() const;
|
|
%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;
|
|
%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();
|
|
%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;
|
|
%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;
|
|
%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;
|
|
%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;
|
|
%Docstring
|
|
Is the triangle scalene (all sides have differen 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;
|
|
%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;
|
|
%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;
|
|
%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;
|
|
%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;
|
|
%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;
|
|
%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;
|
|
%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;
|
|
%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;
|
|
%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;
|
|
%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;
|
|
%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 *
|
|
************************************************************************/
|