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 );
 
Pal labeling engine geometry functions.
static double dist_euc2d(double x1, double y1, double x2, double y2)
static double cross_product(double x1, double y1, double x2, double y2, double x3, double y3)
static double dist_euc2d_sq(double x1, double y1, double x2, double y2)