QGIS API Documentation  3.23.0-Master (7c4a6de034)
pal::PointSet Class Reference

The underlying raw pal geometry class. More...

`#include <pointset.h>`

Inheritance diagram for pal::PointSet:
[legend]

## Public Member Functions

PointSet ()

PointSet (int nbPoints, double *x, double *y)

virtual ~PointSet ()

double area () const
Returns area of polygon geometry. More...

QgsRectangle boundingBox () const
Returns the point set bounding box. More...

bool boundingBoxIntersects (const PointSet *other) const
Returns `true` if the bounding box of this pointset intersects the bounding box of another pointset. More...

std::unique_ptr< PointSetclone () const
Returns a copy of the point set. More...

OrientedConvexHullBoundingBox computeConvexHullOrientedBoundingBox (bool &ok)
Computes an oriented bounding box for the shape's convex hull. More...

bool containsLabelCandidate (double x, double y, double width, double height, double alpha=0) const
Tests whether a possible label candidate will fit completely within the shape. More...

bool containsPoint (double x, double y) const
Tests whether point set contains a specified point. More...

std::tuple< std::vector< double >, double > edgeDistances () const
Returns a vector of edge distances as well as its total length. More...

void extendLineByDistance (double startDistance, double endDistance, double smoothDistance)
Extends linestrings by the specified amount at the start and end of the line, by extending the existing lines following the same direction as the original line start or end. More...

std::unique_ptr< PointSetextractShape (int nbPtSh, int imin, int imax, int fps, int fpe, double fptx, double fpty)
Does... More...

const GEOSGeometry * geos () const
Returns the point set's GEOS geometry. More...

void getCentroid (double &px, double &py, bool forceInside=false) const

int getGeosType () const

PointSetgetHoleOf () const
Returns `nullptr` if this isn't a hole. Otherwise returns pointer to parent pointset. More...

int getNumPoints () const

void getPointByDistance (double *d, double *ad, double dl, double *px, double *py)
Gets a point a set distance along a line geometry. More...

bool isClosed () const
Returns `true` if pointset is closed. More...

double length () const
Returns length of line geometry. More...

double minDistanceToPoint (double px, double py, double *rx=nullptr, double *ry=nullptr) const
Returns the squared minimum distance between the point set geometry and the point (px,py) Optionally, the nearest point is stored in (rx,ry). More...

void offsetCurveByDistance (double distance)
Offsets linestrings by the specified distance. More...

QString toWkt () const
Returns a WKT representation of the point set. More...

## Static Public Member Functions

static QLinkedList< PointSet * > splitPolygons (PointSet *inputShape, double labelWidth, double labelHeight)
Split a polygon using some random logic into some other polygons. More...

## Public Attributes

int nbPoints

std::vector< double > x

std::vector< double > y

## Protected Member Functions

PointSet (const PointSet &ps)

PointSet (double x, double y)

void createGeosGeom () const

void deleteCoords ()

void invalidateGeos ()

const GEOSPreparedGeometry * preparedGeom () const

## Protected Attributes

std::vector< int > convexHull

PointSetholeOf = nullptr

double mArea = -1

GEOSGeometry * mGeos = nullptr

double mLength = -1

bool mOwnsGeom = false

PointSetparent = nullptr

int type

double xmax = std::numeric_limits<double>::lowest()

double xmin = std::numeric_limits<double>::max()

double ymax = std::numeric_limits<double>::lowest()

double ymin = std::numeric_limits<double>::max()

## Friends

class CostCalculator

class FeaturePart

class LabelPosition

class Layer

class PolygonCostCalculator

## Detailed Description

The underlying raw pal geometry class.

Note
not available in Python bindings

Definition at line 75 of file pointset.h.

## ◆ PointSet() [1/4]

 PointSet::PointSet ( )

Definition at line 41 of file pointset.cpp.

## ◆ PointSet() [2/4]

 PointSet::PointSet ( int nbPoints, double * x, double * y )

Definition at line 47 of file pointset.cpp.

## ◆ ~PointSet()

 PointSet::~PointSet ( )
virtual

Definition at line 197 of file pointset.cpp.

## ◆ PointSet() [3/4]

 PointSet::PointSet ( double x, double y )
protected

Definition at line 63 of file pointset.cpp.

## ◆ PointSet() [4/4]

 PointSet::PointSet ( const PointSet & ps )
protected

Definition at line 77 of file pointset.cpp.

## ◆ area()

 double PointSet::area ( ) const

Returns area of polygon geometry.

Definition at line 1073 of file pointset.cpp.

## ◆ boundingBox()

 QgsRectangle pal::PointSet::boundingBox ( ) const
inline

Returns the point set bounding box.

Definition at line 162 of file pointset.h.

## ◆ boundingBoxIntersects()

 bool PointSet::boundingBoxIntersects ( const PointSet * other ) const

Returns `true` if the bounding box of this pointset intersects the bounding box of another pointset.

Definition at line 989 of file pointset.cpp.

## ◆ clone()

 std::unique_ptr< PointSet > PointSet::clone ( ) const

Returns a copy of the point set.

Definition at line 261 of file pointset.cpp.

## ◆ computeConvexHullOrientedBoundingBox()

 OrientedConvexHullBoundingBox PointSet::computeConvexHullOrientedBoundingBox ( bool & ok )

Computes an oriented bounding box for the shape's convex hull.

Definition at line 711 of file pointset.cpp.

## ◆ containsLabelCandidate()

 bool PointSet::containsLabelCandidate ( double x, double y, double width, double height, double alpha = `0` ) const

Tests whether a possible label candidate will fit completely within the shape.

Parameters
 x x-coordinate of label candidate y y-coordinate of label candidate width label width height label height alpha label angle
Returns
`true` if point set completely contains candidate label

Definition at line 292 of file pointset.cpp.

## ◆ containsPoint()

 bool PointSet::containsPoint ( double x, double y ) const

Tests whether point set contains a specified point.

Parameters
 x x-coordinate of point y y-coordinate of point
Returns
`true` if point set contains a specified point

Definition at line 266 of file pointset.cpp.

## ◆ createGeosGeom()

 void PointSet::createGeosGeom ( ) const
protected

Definition at line 100 of file pointset.cpp.

## ◆ deleteCoords()

 void PointSet::deleteCoords ( )
protected

Definition at line 228 of file pointset.cpp.

## ◆ edgeDistances()

 std::tuple< std::vector< double >, double > PointSet::edgeDistances ( ) const

Returns a vector of edge distances as well as its total length.

Definition at line 1134 of file pointset.cpp.

## ◆ extendLineByDistance()

 void PointSet::extendLineByDistance ( double startDistance, double endDistance, double smoothDistance )

Extends linestrings by the specified amount at the start and end of the line, by extending the existing lines following the same direction as the original line start or end.

The smoothDistance argument specifies the distance over which to smooth the direction of the line at its start and end points.

Definition at line 624 of file pointset.cpp.

## ◆ extractShape()

 std::unique_ptr< PointSet > PointSet::extractShape ( int nbPtSh, int imin, int imax, int fps, int fpe, double fptx, double fpty )

Does...

something completely inscrutable.

Definition at line 234 of file pointset.cpp.

## ◆ geos()

 const GEOSGeometry * PointSet::geos ( ) const

Returns the point set's GEOS geometry.

Definition at line 1039 of file pointset.cpp.

## ◆ getCentroid()

 void PointSet::getCentroid ( double & px, double & py, bool forceInside = `false` ) const

Definition at line 932 of file pointset.cpp.

## ◆ getGeosType()

 int pal::PointSet::getGeosType ( ) const
inline

Definition at line 157 of file pointset.h.

## ◆ getHoleOf()

 PointSet* pal::PointSet::getHoleOf ( ) const
inline

Returns `nullptr` if this isn't a hole. Otherwise returns pointer to parent pointset.

Definition at line 174 of file pointset.h.

## ◆ getNumPoints()

 int pal::PointSet::getNumPoints ( ) const
inline

Definition at line 176 of file pointset.h.

## ◆ getPointByDistance()

 void PointSet::getPointByDistance ( double * d, double * ad, double dl, double * px, double * py )

Gets a point a set distance along a line geometry.

Parameters
 d array of distances between points ad cumulative total distance from pt0 to each point (ad0 = pt0->pt0) dl distance to traverse along line px final x coord on line py final y coord on line

Definition at line 1000 of file pointset.cpp.

## ◆ invalidateGeos()

 void PointSet::invalidateGeos ( )
protected

Definition at line 162 of file pointset.cpp.

## ◆ isClosed()

 bool PointSet::isClosed ( ) const

Returns `true` if pointset is closed.

Definition at line 1100 of file pointset.cpp.

## ◆ length()

 double PointSet::length ( ) const

Returns length of line geometry.

Definition at line 1047 of file pointset.cpp.

## ◆ minDistanceToPoint()

 double PointSet::minDistanceToPoint ( double px, double py, double * rx = `nullptr`, double * ry = `nullptr` ) const

Returns the squared minimum distance between the point set geometry and the point (px,py) Optionally, the nearest point is stored in (rx,ry).

Parameters
 px x coordinate of the point py y coordinate of the points rx pointer to x coorinates of the nearest point (can be NULL) ry pointer to y coorinates of the nearest point (can be NULL)
Returns
minimum distance

Definition at line 853 of file pointset.cpp.

## ◆ offsetCurveByDistance()

 void PointSet::offsetCurveByDistance ( double distance )

Offsets linestrings by the specified distance.

Definition at line 548 of file pointset.cpp.

## ◆ preparedGeom()

 const GEOSPreparedGeometry * PointSet::preparedGeom ( ) const
protected

Definition at line 150 of file pointset.cpp.

## ◆ splitPolygons()

 QLinkedList< PointSet * > PointSet::splitPolygons ( PointSet * inputShape, double labelWidth, double labelHeight )
static

Split a polygon using some random logic into some other polygons.

Warning
this code is completely unreadable and cannot be understood by mortals

Definition at line 297 of file pointset.cpp.

## ◆ toWkt()

 QString PointSet::toWkt ( ) const

Returns a WKT representation of the point set.

Definition at line 1105 of file pointset.cpp.

## ◆ CostCalculator

 friend class CostCalculator
friend

Definition at line 79 of file pointset.h.

## ◆ FeaturePart

 friend class FeaturePart
friend

Definition at line 77 of file pointset.h.

## ◆ LabelPosition

 friend class LabelPosition
friend

Definition at line 78 of file pointset.h.

## ◆ Layer

 friend class Layer
friend

Definition at line 81 of file pointset.h.

## ◆ PolygonCostCalculator

 friend class PolygonCostCalculator
friend

Definition at line 80 of file pointset.h.

## ◆ convexHull

 std::vector< int > pal::PointSet::convexHull
protected

Definition at line 226 of file pointset.h.

## ◆ holeOf

 PointSet* pal::PointSet::holeOf = nullptr
protected

Definition at line 230 of file pointset.h.

## ◆ mArea

 double pal::PointSet::mArea = -1
mutableprotected

Definition at line 233 of file pointset.h.

## ◆ mGeos

 GEOSGeometry* pal::PointSet::mGeos = nullptr
mutableprotected

Definition at line 223 of file pointset.h.

## ◆ mLength

 double pal::PointSet::mLength = -1
mutableprotected

Definition at line 234 of file pointset.h.

## ◆ mOwnsGeom

 bool pal::PointSet::mOwnsGeom = false
mutableprotected

Definition at line 224 of file pointset.h.

## ◆ nbPoints

 int pal::PointSet::nbPoints

Definition at line 218 of file pointset.h.

## ◆ parent

 PointSet* pal::PointSet::parent = nullptr
protected

Definition at line 231 of file pointset.h.

## ◆ type

 int pal::PointSet::type
protected

Definition at line 228 of file pointset.h.

## ◆ x

 std::vector< double > pal::PointSet::x

Definition at line 219 of file pointset.h.

## ◆ xmax

 double pal::PointSet::xmax = std::numeric_limits::lowest()
protected

Definition at line 248 of file pointset.h.

## ◆ xmin

 double pal::PointSet::xmin = std::numeric_limits::max()
protected

Definition at line 247 of file pointset.h.

## ◆ y

 std::vector< double > pal::PointSet::y

Definition at line 220 of file pointset.h.

## ◆ ymax

 double pal::PointSet::ymax = std::numeric_limits::lowest()
protected

Definition at line 250 of file pointset.h.

## ◆ ymin

 double pal::PointSet::ymin = std::numeric_limits::max()
protected

Definition at line 249 of file pointset.h.

The documentation for this class was generated from the following files:
• /build/qgis-3.23.0+git20220120+7c4a6de034+99unstable/src/core/pal/pointset.h
• /build/qgis-3.23.0+git20220120+7c4a6de034+99unstable/src/core/pal/pointset.cpp