QGIS API Documentation  3.20.0-Odense (decaadbb31)
Static Public Member Functions | List of all members
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.

Member Function Documentation

◆ 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
geomGEOS prepared geometry
xcandidate x
ycandidate y
widthcandidate width
heightcandidate height
alphacandidate 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
idset of point (i.e. point no 0 is (x,y) = x[id[0]],y[id[0]])
xx coordinates
yy 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: