QGIS API Documentation 3.29.0-Master (ade4f0cf0f)
qgsgraphdirector.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsgraphdirector.h
3 --------------------------------------
4 Date : 2010-10-18
5 Copyright : (C) 2010 by Yakushev Sergey
6 Email : YakushevS <at> list.ru
7****************************************************************************
8* *
9* This program is free software; you can redistribute it and/or modify *
10* it under the terms of the GNU General Public License as published by *
11* the Free Software Foundation; either version 2 of the License, or *
12* (at your option) any later version. *
13* *
14***************************************************************************/
15
16#ifndef QGSGRAPHDIRECTOR_H
17#define QGSGRAPHDIRECTOR_H
18
19#include <QObject>
20#include <QVector>
21#include <QList>
22
23#include "qgis_sip.h"
24#include "qgsfeedback.h"
25#include "qgsnetworkstrategy.h"
26#include "qgis_analysis.h"
27
29class QgsPoint;
30
31#ifdef SIP_RUN
32% ModuleHeaderCode
34% End
35#endif
36
43class ANALYSIS_EXPORT QgsGraphDirector : public QObject
44{
45
46#ifdef SIP_RUN
48 if ( dynamic_cast< QgsVectorLayerDirector * >( sipCpp ) != NULL )
49 sipType = sipType_QgsVectorLayerDirector;
50 else
51 sipType = NULL;
53#endif
54
55 Q_OBJECT
56
57 public:
58
60 {
61 qDeleteAll( mStrategies );
62 }
63
73 virtual void makeGraph( QgsGraphBuilderInterface *builder,
74 const QVector< QgsPointXY > &additionalPoints,
75 QVector< QgsPointXY > &snappedPoints SIP_OUT,
76 QgsFeedback *feedback = nullptr ) const
77 {
78 Q_UNUSED( builder )
79 Q_UNUSED( additionalPoints )
80 Q_UNUSED( snappedPoints )
81 Q_UNUSED( feedback )
82 }
83
86 {
87 mStrategies.push_back( prop );
88 }
89
91 virtual QString name() const = 0;
92
93 protected:
94 QList<QgsNetworkStrategy *> mStrategies;
95};
96
97#endif // QGSGRAPHDIRECTOR_H
Base class for feedback objects to be used for cancellation of something running in a worker thread.
Definition: qgsfeedback.h:45
Determine interface for creating a graph.
Determine making the graph.
void addStrategy(QgsNetworkStrategy *prop)
Add optimization strategy.
~QgsGraphDirector() override
QList< QgsNetworkStrategy * > mStrategies
virtual void makeGraph(QgsGraphBuilderInterface *builder, const QVector< QgsPointXY > &additionalPoints, QVector< QgsPointXY > &snappedPoints, QgsFeedback *feedback=nullptr) const
Make a graph using QgsGraphBuilder.
virtual QString name() const =0
Returns director name.
QgsNetworkStrategy defines strategy used for calculation of the edge cost.
Point geometry type, with support for z-dimension and m-values.
Definition: qgspoint.h:49
Determine making the graph from vector line layer.
#define SIP_CONVERT_TO_SUBCLASS_CODE(code)
Definition: qgis_sip.h:186
#define SIP_TRANSFER
Definition: qgis_sip.h:36
#define SIP_OUT
Definition: qgis_sip.h:58
#define SIP_END
Definition: qgis_sip.h:203