QGIS API Documentation 3.34.0-Prizren (ffbdd678812)
Loading...
Searching...
No Matches
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.
 
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.
 
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))
 
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.
 
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.
 

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 349 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: