59 double area()
const override;
60 double length()
const override;
80 static QgsPolygonV2* fromGeosPolygon(
const GEOSGeometry* geos );
82 static QgsPointV2 coordSeqPoint(
const GEOSCoordSequence* cs,
int i,
bool hasZ,
bool hasM );
84 static GEOSContextHandle_t getGEOSHandler();
87 mutable GEOSGeometry* mGeos;
88 const GEOSPreparedGeometry* mGeosPrepared;
110 void cacheGeos()
const;
113 static GEOSCoordSequence* createCoordinateSequence(
const QgsCurveV2* curve );
114 static QgsLineStringV2* sequenceToLinestring(
const GEOSGeometry* geos,
bool hasZ,
bool hasM );
115 static int numberOfGeometries( GEOSGeometry* g );
116 static GEOSGeometry* nodeGeometries(
const GEOSGeometry *splitLine,
const GEOSGeometry *geom );
125 int topologicalTestPointsSplit(
const GEOSGeometry* splitLine,
QList<QgsPointV2>& testPoints )
const;
126 GEOSGeometry* linePointDifference( GEOSGeometry* GEOSsplitPoint )
const;
131 static GEOSGeometry* reshapeLine(
const GEOSGeometry* line,
const GEOSGeometry* reshapeLineGeos );
132 static GEOSGeometry* reshapePolygon(
const GEOSGeometry* polygon,
const GEOSGeometry* reshapeLineGeos );
133 static int lineContainedInLine(
const GEOSGeometry* line1,
const GEOSGeometry* line2 );
134 static int pointContainedInLine(
const GEOSGeometry* point,
const GEOSGeometry* line );
135 static int geomDigits(
const GEOSGeometry* geom );
virtual QgsAbstractGeometryV2 * combine(const QgsAbstractGeometryV2 &geom) const =0
virtual double length() const =0
virtual bool disjoint(const QgsAbstractGeometryV2 &geom) const =0
virtual bool touches(const QgsAbstractGeometryV2 &geom) const =0
Abstract base class for all geometries.
virtual bool pointOnSurface(QgsPointV2 &pt) const =0
virtual void prepareGeometry()=0
virtual double area() const =0
virtual int splitGeometry(const QgsLineStringV2 &splitLine, QList< QgsAbstractGeometryV2 * > &newGeometries, bool topological, QList< QgsPointV2 > &topologyTestPoints) const
virtual bool overlaps(const QgsAbstractGeometryV2 &geom) const =0
Line string geometry type.
virtual QgsAbstractGeometryV2 * interpolate(double distance) const =0
virtual bool isEqual(const QgsAbstractGeometryV2 &geom) const =0
virtual bool contains(const QgsAbstractGeometryV2 &geom) const =0
virtual bool centroid(QgsPointV2 &pt) const =0
Does vector analysis using the geos library and handles import, export, exception handling*...
virtual bool within(const QgsAbstractGeometryV2 &geom) const =0
virtual QgsAbstractGeometryV2 * difference(const QgsAbstractGeometryV2 &geom) const =0
virtual bool isValid() const =0
virtual QgsAbstractGeometryV2 * offsetCurve(double distance, int segments, int joinStyle, double mitreLimit) const =0
virtual void geometryChanged()=0
virtual QgsAbstractGeometryV2 * symDifference(const QgsAbstractGeometryV2 &geom) const =0
virtual QgsAbstractGeometryV2 * buffer(double distance, int segments) const =0
virtual double distance(const QgsAbstractGeometryV2 &geom) const =0
virtual bool isEmpty() const =0
virtual QgsAbstractGeometryV2 * simplify(double tolerance) const =0
Contains geometry relation and modification algorithms.
virtual QgsAbstractGeometryV2 * convexHull() const =0
Abstract base class for curved geometry type.
virtual bool crosses(const QgsAbstractGeometryV2 &geom) const =0
virtual QgsAbstractGeometryV2 * intersection(const QgsAbstractGeometryV2 &geom) const =0
virtual bool intersects(const QgsAbstractGeometryV2 &geom) const =0