QGIS API Documentation 3.41.0-Master (af5edcb665c)
Loading...
Searching...
No Matches
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#ifdef SIP_RUN
47 if ( dynamic_cast<QgsVectorLayerDirector *>( sipCpp ) != NULL )
48 sipType = sipType_QgsVectorLayerDirector;
49 else
50 sipType = NULL;
52#endif
53
54 Q_OBJECT
55
56 public:
58 {
59 qDeleteAll( mStrategies );
60 }
61
71 virtual void makeGraph( QgsGraphBuilderInterface *builder, const QVector<QgsPointXY> &additionalPoints, QVector<QgsPointXY> &snappedPoints SIP_OUT, QgsFeedback *feedback = nullptr ) const
72 {
73 Q_UNUSED( builder )
74 Q_UNUSED( additionalPoints )
75 Q_UNUSED( snappedPoints )
76 Q_UNUSED( feedback )
77 }
78
81 {
82 mStrategies.push_back( prop );
83 }
84
86 virtual QString name() const = 0;
87
88 protected:
89 QList<QgsNetworkStrategy *> mStrategies;
90};
91
92#endif // QGSGRAPHDIRECTOR_H
Base class for feedback objects to be used for cancellation of something running in a worker thread.
Definition qgsfeedback.h:44
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:191
#define SIP_TRANSFER
Definition qgis_sip.h:36
#define SIP_OUT
Definition qgis_sip.h:58
#define SIP_END
Definition qgis_sip.h:208