QGIS API Documentation 3.27.0-Master (0a97e3138f)
pal::GeomFunction Class Reference

Pal labeling engine geometry functions. More...

`#include <geomfunction.h>`

## Static Public Member Functions

static bool computeLineIntersection (double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4, double *x, double *y)
Compute the point where two lines intersect. More...

static bool containsCandidate (const GEOSPreparedGeometry *geom, double x, double y, double width, double height, double alpha)
Returns `true` if a GEOS prepared geometry totally contains a label candidate. More...

static std::vector< int > convexHullId (std::vector< int > &id, const std::vector< double > &x, const std::vector< double > &y)
Compute the convex hull in O(n·log(n)) More...

static double cross_product (double x1, double y1, double x2, double y2, double x3, double y3)

static double dist_euc2d (double x1, double y1, double x2, double y2)

static double dist_euc2d_sq (double x1, double y1, double x2, double y2)

static void findLineCircleIntersection (double cx, double cy, double radius, double x1, double y1, double x2, double y2, double &xRes, double &yRes)

static bool isSegIntersects (double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4)
Returns `true` if the two segments intersect. More...

static bool reorderPolygon (std::vector< double > &x, std::vector< double > &y)
Reorder points to have cross prod ((x,y)[i], (x,y)[i+1), point) > 0 when point is outside. More...

## Detailed Description

Pal labeling engine geometry functions.

Note
not available in Python bindings

Definition at line 49 of file geomfunction.h.

## ◆ computeLineIntersection()

 bool GeomFunction::computeLineIntersection ( double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4, double * x, double * y )
static

Compute the point where two lines intersect.

Returns
`true` if the lines intersect, or `false` if the lines are parallel

Definition at line 142 of file geomfunction.cpp.

## ◆ containsCandidate()

 bool GeomFunction::containsCandidate ( const GEOSPreparedGeometry * geom, double x, double y, double width, double height, double alpha )
static

Returns `true` if a GEOS prepared geometry totally contains a label candidate.

Parameters
 geom GEOS prepared geometry x candidate x y candidate y width candidate width height candidate height alpha candidate angle
Returns
`true` if candidate is totally contained

Definition at line 303 of file geomfunction.cpp.

## ◆ convexHullId()

 std::vector< int > GeomFunction::convexHullId ( std::vector< int > & id, const std::vector< double > & x, const std::vector< double > & y )
static

Compute the convex hull in O(n·log(n))

Parameters
 id set of point (i.e. point no 0 is (x,y) = x[id],y[id]) x x coordinates y y coordinates
Returns
convexHull vertex ids

Definition at line 172 of file geomfunction.cpp.

## ◆ cross_product()

 static double pal::GeomFunction::cross_product ( double x1, double y1, double x2, double y2, double x3, double y3 )
inlinestatic

Definition at line 62 of file geomfunction.h.

## ◆ dist_euc2d()

 static double pal::GeomFunction::dist_euc2d ( double x1, double y1, double x2, double y2 )
inlinestatic

Definition at line 67 of file geomfunction.h.

## ◆ dist_euc2d_sq()

 static double pal::GeomFunction::dist_euc2d_sq ( double x1, double y1, double x2, double y2 )
inlinestatic

Definition at line 72 of file geomfunction.h.

## ◆ findLineCircleIntersection()

 void GeomFunction::findLineCircleIntersection ( double cx, double cy, double radius, double x1, double y1, double x2, double y2, double & xRes, double & yRes )
static

Definition at line 377 of file geomfunction.cpp.

## ◆ isSegIntersects()

 bool GeomFunction::isSegIntersects ( double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4 )
static

Returns `true` if the two segments intersect.

Definition at line 135 of file geomfunction.cpp.

## ◆ reorderPolygon()

 bool GeomFunction::reorderPolygon ( std::vector< double > & x, std::vector< double > & y )
static

Reorder points to have cross prod ((x,y)[i], (x,y)[i+1), point) > 0 when point is outside.

Definition at line 265 of file geomfunction.cpp.

The documentation for this class was generated from the following files:
• /build/qgis-3.27.0+git20220817+0a97e3138f+99sid/src/core/pal/geomfunction.h
• /build/qgis-3.27.0+git20220817+0a97e3138f+99sid/src/core/pal/geomfunction.cpp