QGIS API Documentation  3.4.15-Madeira (e83d02e274)
qgsanalysis.cpp
Go to the documentation of this file.
1 /***************************************************************************
2  qgsanalysis.cpp
3  ----------
4  begin : September 2018
5  copyright : (C) 2018 by Matthias Kuhn
6  email : [email protected]
7  ***************************************************************************/
8 
9 /***************************************************************************
10  * *
11  * This program is free software; you can redistribute it and/or modify *
12  * it under the terms of the GNU General Public License as published by *
13  * the Free Software Foundation; either version 2 of the License, or *
14  * (at your option) any later version. *
15  * *
16  ***************************************************************************/
17 
18 #include "qgsanalysis.h"
19 #include "qgsgeometrycheckregistry.h"
20 #include "qgsgeometrycheckfactory.h"
21 #include "qgis.h"
22 
23 #include "qgsgeometryselfintersectioncheck.h"
24 #include "qgsgeometrygapcheck.h"
25 #include "qgsgeometrymissingvertexcheck.h"
26 #include "qgsgeometryoverlapcheck.h"
27 #include "qgsgeometryisvalidcheck.h"
28 
30 {
31  static QgsAnalysis *sInstance( new QgsAnalysis() );
32  return sInstance;
33 }
34 
35 QgsGeometryCheckRegistry *QgsAnalysis::geometryCheckRegistry()
36 {
37  return instance()->mGeometryCheckRegistry.get();
38 }
39 
41  : mGeometryCheckRegistry( qgis::make_unique<QgsGeometryCheckRegistry>() )
42 {
43  qRegisterMetaType< QList<std::shared_ptr<QgsGeometryCheckError> > >( "QList<std::shared_ptr<QgsGeometryCheckError>>" );
44 
45  mGeometryCheckRegistry->registerGeometryCheck( new QgsGeometryCheckFactoryT<QgsGeometrySelfIntersectionCheck>() );
46  mGeometryCheckRegistry->registerGeometryCheck( new QgsGeometryCheckFactoryT<QgsGeometryIsValidCheck>() );
47  mGeometryCheckRegistry->registerGeometryCheck( new QgsGeometryCheckFactoryT<QgsGeometryGapCheck>() );
48  mGeometryCheckRegistry->registerGeometryCheck( new QgsGeometryCheckFactoryT<QgsGeometryOverlapCheck>() );
49  mGeometryCheckRegistry->registerGeometryCheck( new QgsGeometryCheckFactoryT<QgsGeometryMissingVertexCheck>() );
50 }
static QgsGeometryCheckRegistry * geometryCheckRegistry()
Returns the global geometry checker registry, used for managing all geometry check factories...
Definition: qgsanalysis.cpp:35
QgsAnalysis is a singleton class containing various registry and other global members related to anal...
Definition: qgsanalysis.h:34
static QgsAnalysis * instance()
Returns a pointer to the singleton instance.
Definition: qgsanalysis.cpp:29
QgsAnalysis(const QgsAnalysis &other)=delete
QgsAnalysis cannot be copied.