mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-24 00:47:57 -05:00
282 lines
6.0 KiB
Plaintext
282 lines
6.0 KiB
Plaintext
/************************************************************************
|
|
* This file has been generated automatically from *
|
|
* *
|
|
* src/analysis/network/qgsgraph.h *
|
|
* *
|
|
* Do not edit manually ! Edit header and run scripts/sipify.py again *
|
|
************************************************************************/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class QgsGraphEdge
|
|
{
|
|
%Docstring(signature="appended")
|
|
This class implements a graph edge
|
|
%End
|
|
|
|
%TypeHeaderCode
|
|
#include "qgsgraph.h"
|
|
%End
|
|
public:
|
|
|
|
QgsGraphEdge();
|
|
|
|
QVariant cost( int strategyIndex ) const;
|
|
%Docstring
|
|
Returns edge cost calculated using specified strategy
|
|
|
|
:param strategyIndex: strategy index
|
|
%End
|
|
|
|
QVector< QVariant > strategies() const;
|
|
%Docstring
|
|
Returns array of available strategies
|
|
%End
|
|
|
|
int toVertex() const;
|
|
%Docstring
|
|
Returns the index of the vertex at the end of this edge.
|
|
|
|
.. seealso:: :py:func:`fromVertex`
|
|
%End
|
|
|
|
int fromVertex() const;
|
|
%Docstring
|
|
Returns the index of the vertex at the start of this edge.
|
|
|
|
.. seealso:: :py:func:`toVertex`
|
|
%End
|
|
|
|
};
|
|
|
|
|
|
typedef QList< int > QgsGraphEdgeIds;
|
|
|
|
class QgsGraphVertex
|
|
{
|
|
%Docstring(signature="appended")
|
|
This class implements a graph vertex
|
|
%End
|
|
|
|
%TypeHeaderCode
|
|
#include "qgsgraph.h"
|
|
%End
|
|
public:
|
|
|
|
QgsGraphVertex();
|
|
|
|
|
|
QgsGraphVertex( const QgsPointXY &point );
|
|
%Docstring
|
|
This constructor initializes QgsGraphVertex object and associates a vertex with a point
|
|
%End
|
|
|
|
QgsGraphEdgeIds incomingEdges() const;
|
|
%Docstring
|
|
Returns the incoming edge ids, i.e. edges which end at this node.
|
|
|
|
.. seealso:: :py:func:`outgoingEdges`
|
|
%End
|
|
|
|
QgsGraphEdgeIds outgoingEdges() const;
|
|
%Docstring
|
|
Returns outgoing edge ids, i.e. edges which start at this node.
|
|
|
|
.. seealso:: :py:func:`incomingEdges`
|
|
%End
|
|
|
|
QgsPointXY point() const;
|
|
%Docstring
|
|
Returns point associated with graph vertex.
|
|
%End
|
|
|
|
};
|
|
|
|
|
|
class QgsGraph
|
|
{
|
|
%Docstring(signature="appended")
|
|
Mathematical graph representation
|
|
%End
|
|
|
|
%TypeHeaderCode
|
|
#include "qgsgraph.h"
|
|
%End
|
|
public:
|
|
|
|
QgsGraph();
|
|
|
|
|
|
int addVertex( const QgsPointXY &pt );
|
|
%Docstring
|
|
Add a vertex to the graph
|
|
%End
|
|
|
|
int addEdge( int fromVertexIdx, int toVertexIdx, const QVector< QVariant > &strategies );
|
|
%Docstring
|
|
Add an edge to the graph, going from the ``fromVertexIdx``
|
|
to ``toVertexIdx``.
|
|
%End
|
|
|
|
int vertexCount() const;
|
|
%Docstring
|
|
Returns number of graph vertices
|
|
%End
|
|
|
|
|
|
QgsGraphVertex vertex( int idx ) const;
|
|
%Docstring
|
|
Returns the vertex at the given index.
|
|
|
|
:raises IndexError: if the vertex is not found.
|
|
%End
|
|
%MethodCode
|
|
if ( sipCpp->hasVertex( a0 ) )
|
|
{
|
|
return sipConvertFromNewType( new QgsGraphVertex( sipCpp->vertex( a0 ) ), sipType_QgsGraphVertex, Py_None );
|
|
}
|
|
else
|
|
{
|
|
PyErr_SetString( PyExc_IndexError, QByteArray::number( a0 ) );
|
|
sipIsErr = 1;
|
|
}
|
|
%End
|
|
|
|
|
|
void removeVertex( int index );
|
|
%Docstring
|
|
Removes the vertex at specified ``index``.
|
|
|
|
All edges which are incoming or outgoing edges for the vertex will also be removed.
|
|
|
|
:raises IndexError: if the vertex is not found.
|
|
|
|
.. versionadded:: 3.24
|
|
%End
|
|
%MethodCode
|
|
if ( sipCpp->hasVertex( a0 ) )
|
|
{
|
|
sipCpp->removeVertex( a0 );
|
|
}
|
|
else
|
|
{
|
|
PyErr_SetString( PyExc_IndexError, QByteArray::number( a0 ) );
|
|
sipIsErr = 1;
|
|
}
|
|
%End
|
|
|
|
int edgeCount() const;
|
|
%Docstring
|
|
Returns number of graph edges
|
|
%End
|
|
|
|
|
|
QgsGraphEdge edge( int idx ) const;
|
|
%Docstring
|
|
Returns the edge at the given index.
|
|
|
|
:raises IndexError: if the edge is not found.
|
|
%End
|
|
%MethodCode
|
|
if ( sipCpp->hasEdge( a0 ) )
|
|
{
|
|
return sipConvertFromNewType( new QgsGraphEdge( sipCpp->edge( a0 ) ), sipType_QgsGraphEdge, Py_None );
|
|
}
|
|
else
|
|
{
|
|
PyErr_SetString( PyExc_IndexError, QByteArray::number( a0 ) );
|
|
sipIsErr = 1;
|
|
}
|
|
%End
|
|
|
|
|
|
|
|
void removeEdge( int index );
|
|
%Docstring
|
|
Removes the edge at specified ``index``.
|
|
|
|
The incoming and outgoing edges for all graph vertices will be updated accordingly. Vertices which
|
|
no longer have any incoming or outgoing edges as a result will be removed from the graph automatically.
|
|
|
|
:raises IndexError: if the vertex is not found.
|
|
|
|
.. versionadded:: 3.24
|
|
%End
|
|
%MethodCode
|
|
if ( sipCpp->hasEdge( a0 ) )
|
|
{
|
|
sipCpp->removeEdge( a0 );
|
|
}
|
|
else
|
|
{
|
|
PyErr_SetString( PyExc_IndexError, QByteArray::number( a0 ) );
|
|
sipIsErr = 1;
|
|
}
|
|
%End
|
|
|
|
int findVertex( const QgsPointXY &pt ) const;
|
|
%Docstring
|
|
Find vertex by associated point
|
|
|
|
:return: vertex index
|
|
%End
|
|
|
|
|
|
int findOppositeEdge( int index ) const;
|
|
%Docstring
|
|
Finds the first edge which is the opposite of the edge with the specified index.
|
|
|
|
This represents the edge which has the same vertices as the specified edge, but
|
|
the opposite direction in the graph.(I.e. the edge which starts at the "from" vertex
|
|
of the specified edge and ends at the "to" vertex.)
|
|
|
|
Returns -1 if no opposite edge exists.
|
|
|
|
:raises IndexError: if the edge with the specified ``index`` is not found.
|
|
|
|
.. versionadded:: 3.24
|
|
%End
|
|
%MethodCode
|
|
if ( sipCpp->hasEdge( a0 ) )
|
|
{
|
|
sipRes = sipCpp->findOppositeEdge( a0 );
|
|
}
|
|
else
|
|
{
|
|
PyErr_SetString( PyExc_IndexError, QByteArray::number( a0 ) );
|
|
sipIsErr = 1;
|
|
}
|
|
%End
|
|
|
|
bool hasEdge( int index ) const;
|
|
%Docstring
|
|
Returns whether the edge of the given index exists.
|
|
|
|
.. versionadded:: 3.24
|
|
%End
|
|
|
|
bool hasVertex( int index ) const;
|
|
%Docstring
|
|
Returns whether the vertex of the given index exists.
|
|
|
|
.. versionadded:: 3.24
|
|
%End
|
|
|
|
protected:
|
|
|
|
|
|
|
|
};
|
|
|
|
/************************************************************************
|
|
* This file has been generated automatically from *
|
|
* *
|
|
* src/analysis/network/qgsgraph.h *
|
|
* *
|
|
* Do not edit manually ! Edit header and run scripts/sipify.py again *
|
|
************************************************************************/
|