QGIS API Documentation 3.28.14-Firenze (exported)
Loading...
Searching...
No Matches
qgssurface.cpp
Go to the documentation of this file.
1/***************************************************************************
2 qgscurvepolygon.cpp
3 ---------------------
4 begin : August 2017
5 copyright : (C) 2017 by Martí Angelats i Ribera
6 email : marti dot angelats at psig dot cat
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 "qgssurface.h"
19#include "qgspoint.h"
20#include "qgspolygon.h"
21#include "qgsgeos.h"
22#include <memory>
23
24bool QgsSurface::isValid( QString &error, Qgis::GeometryValidityFlags flags ) const
25{
26 if ( flags == 0 && mHasCachedValidity )
27 {
28 // use cached validity results
30 return error.isEmpty();
31 }
32
33 const QgsGeos geos( this );
34 const bool res = geos.isValid( &error, flags & Qgis::GeometryValidityFlag::AllowSelfTouchingHoles, nullptr );
35 if ( flags == 0 )
36 {
37 mValidityFailureReason = !res ? error : QString();
38 mHasCachedValidity = true;
39 }
40 return res;
41}
42
@ AllowSelfTouchingHoles
Indicates that self-touching holes are permitted. OGC validity states that self-touching holes are NO...
virtual void clearCache() const
Clears any cached parameters associated with the geometry, e.g., bounding boxes.
Does vector analysis using the geos library and handles import, export, exception handling*.
Definition qgsgeos.h:99
A rectangle specified with double values.
QgsRectangle mBoundingBox
Definition qgssurface.h:81
void clearCache() const override
Clears any cached parameters associated with the geometry, e.g., bounding boxes.
QString mValidityFailureReason
Definition qgssurface.h:83
bool mHasCachedValidity
Definition qgssurface.h:82
bool isValid(QString &error, Qgis::GeometryValidityFlags flags=Qgis::GeometryValidityFlags()) const override
Checks validity of the geometry, and returns true if the geometry is valid.
Contains geos related utilities and functions.
Definition qgsgeos.h:37