QGIS API Documentation
3.26.3-Buenos Aires (65e4edfdad)
|
Go to the documentation of this file.
21 #include "qgis_core.h"
25 #include <QPainterPath>
48 virtual bool equals(
const QgsCurve &other )
const = 0;
59 virtual QgsPoint startPoint()
const = 0;
65 virtual QgsPoint endPoint()
const = 0;
104 virtual void addToPainterPath( QPainterPath &path )
const = 0;
111 virtual void drawAsPolygon( QPainter &p )
const = 0;
121 virtual int numPoints()
const = 0;
126 Returns the number of points in the curve.
129 sipRes = sipCpp->numPoints();
133 int __bool__()
const;
142 virtual void sumUpArea(
double &sum
SIP_OUT )
const = 0;
168 virtual int indexOf(
const QgsPoint &point )
const = 0;
187 int vertexCount(
int part = 0,
int ring = 0 )
const override;
188 int ringCount(
int part = 0 )
const override;
195 bool isValid( QString &error
SIP_OUT, Qgis::GeometryValidityFlags flags = Qgis::GeometryValidityFlags() )
const override;
202 virtual double xAt(
int index )
const = 0;
209 virtual double yAt(
int index )
const = 0;
214 virtual QPolygonF asQPolygonF()
const;
241 virtual QgsCurve *curveSubstring(
double startDistance,
double endDistance )
const = 0
SIP_FACTORY;
250 double straightDistance2d()
const;
261 double sinuosity()
const;
283 virtual void scroll(
int firstVertexIndex ) = 0;
302 return static_cast<const QgsCurve *
>( geom );
317 virtual std::tuple< std::unique_ptr< QgsCurve >, std::unique_ptr< QgsCurve > > splitCurveAtVertex(
int index )
const = 0;
334 bool snapToGridPrivate(
double hSpacing,
double vSpacing,
double dSpacing,
double mSpacing,
335 const QVector<double> &srcX,
const QVector<double> &srcY,
const QVector<double> &srcZ,
const QVector<double> &srcM,
336 QVector<double> &outX, QVector<double> &outY, QVector<double> &outZ, QVector<double> &outM )
const;
346 mutable bool mHasCachedValidity =
false;
347 mutable QString mValidityFailureReason;
349 friend class TestQgsGeometry;
Abstract base class for curved geometry type.
virtual QgsCoordinateSequence coordinateSequence() const =0
Retrieves the sequence of geometries, rings and nodes.
QVector< QgsRingSequence > QgsCoordinateSequence
static bool isSingleType(Type type) SIP_HOLDGIL
Returns true if the WKB type is a single type.
virtual void adjacentVertices(QgsVertexId vertex, QgsVertexId &previousVertex, QgsVertexId &nextVertex) const =0
Returns the vertices adjacent to a specified vertex within a geometry.
virtual void clearCache() const
Clears any cached parameters associated with the geometry, e.g., bounding boxes.
virtual bool isValid(QString &error, Qgis::GeometryValidityFlags flags=Qgis::GeometryValidityFlags()) const =0
Checks validity of the geometry, and returns true if the geometry is valid.
static const QgsCurve * cast(const QgsAbstractGeometry *geom)
Cast the geom to a QgsCurve.
virtual QPainterPath asQPainterPath() const =0
Returns the geometry represented as a QPainterPath.
Point geometry type, with support for z-dimension and m-values.
Type
The WKB type describes the number of dimensions a geometry has.
virtual QString asKml(int precision=17) const =0
Returns a KML representation of the geometry.
SegmentationToleranceType
Segmentation tolerance as maximum angle or maximum difference between approximation and circle.
virtual int partCount() const =0
Returns count of parts contained in the geometry.
Line string geometry type, with support for z-dimension and m-values.
A rectangle specified with double values.
virtual int vertexCount(int part=0, int ring=0) const =0
Returns the number of vertices of which this geometry is built.
virtual QgsPoint vertexAt(QgsVertexId id) const =0
Returns the point corresponding to a specified vertex id.
QgsWkbTypes::Type wkbType() const SIP_HOLDGIL
Returns the WKB type of the geometry.
virtual QgsPoint childPoint(int index) const
Returns point at index (for geometries without child geometries - i.e.
virtual QgsAbstractGeometry * clone() const =0
Clones the geometry by performing a deep copy.
virtual int vertexNumberFromVertexId(QgsVertexId id) const =0
Returns the vertex number corresponding to a vertex id.
Abstract base class for all geometries.
virtual QgsAbstractGeometry * segmentize(double tolerance=M_PI/180., SegmentationToleranceType toleranceType=MaximumAngle) const
Returns a version of the geometry without curves.
virtual void normalize()=0
Reorganizes the geometry into a normalized form (or "canonical" form).
virtual QgsRectangle boundingBox() const =0
Returns the minimal bounding box for the geometry.
VertexType
Types of vertex.
QVector< QgsPoint > QgsPointSequence
virtual bool operator!=(const QgsAbstractGeometry &other) const =0
virtual QgsAbstractGeometry * toCurveType() const =0
Returns the geometry converted to the more generic curve type.
virtual int childCount() const
Returns number of child geometries (for geometries with child geometries) or child points (for geomet...
Utility class for identifying a unique vertex within a geometry.
static GeometryType geometryType(Type type) SIP_HOLDGIL
Returns the geometry type for a WKB type, e.g., both MultiPolygon and CurvePolygon would have a Polyg...
virtual QgsAbstractGeometry * boundary() const =0
Returns the closure of the combinatorial boundary of the geometry (ie the topological boundary of the...
virtual bool operator==(const QgsAbstractGeometry &other) const =0
QgsRectangle mBoundingBox
Cached bounding box.
virtual int ringCount(int part=0) const =0
Returns the number of rings of which this geometry is built.
virtual bool nextVertex(QgsVertexId &id, QgsPoint &vertex) const =0
Returns next vertex id and coordinates.
AngularDirection
Angular directions.