30 #ifndef PAL_GEOM_FUNCTION
31 #define PAL_GEOM_FUNCTION
36 #include "qgis_core.h"
62 static inline double cross_product(
double x1,
double y1,
double x2,
double y2,
double x3,
double y3 )
64 return ( x2 - x1 ) * ( y3 - y1 ) - ( x3 - x1 ) * ( y2 - y1 );
67 static inline double dist_euc2d(
double x1,
double y1,
double x2,
double y2 )
69 return std::sqrt( ( x2 - x1 ) * ( x2 - x1 ) + ( y2 - y1 ) * ( y2 - y1 ) );
72 static inline double dist_euc2d_sq(
double x1,
double y1,
double x2,
double y2 )
74 return ( x2 - x1 ) * ( x2 - x1 ) + ( y2 - y1 ) * ( y2 - y1 );
77 static void findLineCircleIntersection(
double cx,
double cy,
double radius,
78 double x1,
double y1,
double x2,
double y2,
79 double &xRes,
double &yRes );
88 static std::vector< int > convexHullId( std::vector<int> &
id,
const std::vector< double > &x,
const std::vector< double > &y );
93 static bool isSegIntersects(
double x1,
double y1,
double x2,
double y2,
94 double x3,
double y3,
double x4,
double y4 );
100 static bool computeLineIntersection(
double x1,
double y1,
double x2,
double y2,
101 double x3,
double y3,
double x4,
double y4,
102 double *x,
double *y );
105 static bool reorderPolygon( std::vector< double > &x, std::vector< double> &y );
117 static bool containsCandidate(
const GEOSPreparedGeometry *geom,
double x,
double y,
double width,
double height,
double alpha );