QGIS API Documentation  2.8.2-Wien
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Classes | Typedefs | Enumerations | Functions
pal Namespace Reference

Classes

struct  _chain
struct  _cHullBox
struct  _cross
struct  _elementary_transformation
struct  _featCbackCtx
struct  _filterContext
struct  _nokContext
struct  _subpart
struct  _Triple
struct  ChainContext
class  CostCalculator
struct  FalpContext
class  Feats
 For usage in problem solving algorithm. More...
class  Feature
class  FeaturePart
 Main class to handle feature. More...
struct  Ft
class  InternalException
 Various Exceptions. More...
class  LabelInfo
 optional additional info about label (for curved labels) More...
class  LabelPosition
 LabelPositon is a candidate feature label position. More...
class  Layer
 A layer of spacial entites. More...
class  Pal
 Pal main class. More...
class  PalException
 Various Exceptions. More...
class  PalGeometry
 Interface that allows Pal to access user's geometries. More...
class  PalStat
 Summury of problem. More...
struct  Point
class  PointSet
class  PolygonCostCalculator
 Data structure to compute polygon's candidates costs. More...
class  PriorityQueue
class  Problem
 Represent a problem. More...
class  SimpleMutex
class  Sol
struct  SubPartContext
struct  UpdateContext

Typedefs

typedef enum _arrangement Arrangement
 typedef for _arrangement enumeration
typedef struct pal::_chain Chain
typedef struct pal::_cHullBox CHullBox
typedef struct pal::_cross Crossing
typedef struct
pal::_elementary_transformation 
ElemTrans
typedef struct pal::_featCbackCtx FeatCallBackCtx
typedef struct pal::_filterContext FilterContext
typedef THREAD_TYPE MUTEX_T
typedef struct pal::_nokContext NokContext
typedef enum _searchMethod SearchMethod
 Typedef for _Units enumeration.
typedef struct pal::_subpart SubPart
typedef struct pal::_Triple Triple
typedef enum _Units Units
 Typedef for _Units enumeration.

Enumerations

enum  _arrangement {
  P_POINT = 0, P_POINT_OVER, P_LINE, P_CURVED,
  P_HORIZ, P_FREE
}
 The way to arrange labels against spatial entities. More...
enum  _searchMethod {
  CHAIN = 0, POPMUSIC_TABU_CHAIN = 1, POPMUSIC_TABU = 2, POPMUSIC_CHAIN = 3,
  FALP = 4
}
 Search method to use. More...
enum  _Units { PIXEL = 0, METER, FOOT, DEGREE }
 Units for label sizes and distlabel. More...
enum  LineArrangementFlags { FLAG_ON_LINE = 1, FLAG_ABOVE_LINE = 2, FLAG_BELOW_LINE = 4, FLAG_MAP_ORIENTATION = 8 }
 enumeration line arrangement flags. More...

Functions

static LabelPosition_createCurvedCandidate (LabelPosition *lp, double angle, double dist)
static FeaturePart_findConnectedPart (FeaturePart *partCheck, LinkedList< FeaturePart * > *otherParts)
void actualizeCandidateList (int nbOverlap, int *candidateListSize, double candidateBaseFactor, double *candidateFactor, int minCandidateListSize, double growingFactor, int n)
void actualizeTabuCandidateList (int m, int iteration, int nbOverlap, int *candidateListSize, double candidateBaseFactor, double *candidateFactor, int minCandidateListSize, double reductionFactor, int minTabuTSize, double tabuFactor, int *tenure, int n)
bool bigger (double l, double r)
bool borderSizeDec (void *l, void *r)
bool borderSizeInc (void *l, void *r)
bool chainCallback (LabelPosition *lp, void *context)
bool checkCallback (LabelPosition *lp, void *ctx)
bool computeLineIntersection (double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4, double *x, double *y)
bool computeLineSegIntersection (double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4, double *x, double *y)
bool computeSegIntersection (double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4, double *x, double *y)
bool computeSegIntersectionExt (double x1, double y1, double x2, double y2, double xs1, double ys1, double x3, double y3, double x4, double y4, double xs2, double ys2, double *x, double *y)
void convert2pt (int *x, double scale, int dpi)
int convert2pt (double x, double scale, int dpi)
int convexHull (int *id, const double *const x, const double *const y, int n)
int convexHullId (int *id, const double *const x, const double *const y, int n, int *&cHull)
double cross_product (double x1, double y1, double x2, double y2, double x3, double y3)
bool crossingDist (void *a, void *b)
bool decreaseCost (void *tl, void *tr)
double degree2meter (double delta_deg)
void delete_chain (Chain *chain)
double dist_euc2d (double x1, double y1, double x2, double y2)
double dist_euc2d_sq (double x1, double y1, double x2, double y2)
bool extractFeatCallback (FeaturePart *ft_ptr, void *ctx)
bool falpCallback1 (LabelPosition *lp, void *ctx)
bool falpCallback2 (LabelPosition *lp, void *ctx)
bool filteringCallback (PointSet *pset, void *ctx)
void findLineCircleIntersection (double cx, double cy, double radius, double x1, double y1, double x2, double y2, double &xRes, double &yRes)
GEOSContextHandle_t geosContext ()
 Get GEOS context handle to be used in all GEOS library calls with reentrant API.
void geosError (const char *fmt,...)
void geosNotice (const char *fmt,...)
void heapsort (int *sid, int *id, const double *const x, int N)
void heapsort2 (int *x, double *heap, int N)
void ignoreLabel (LabelPosition *lp, PriorityQueue *list, RTree< LabelPosition *, double, 2, double > *candidates)
bool increaseCost (void *tl, void *tr)
bool increaseImportance (void *l, void *r)
bool increaseNbOverlap (void *l, void *r)
bool intCompare (int a, int b)
bool isPointInPolygon (int npol, double *xp, double *yp, double x, double y)
bool isSegIntersects (double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4)
int max (int a, int b)
double max (double a, double b)
 returns the maximum of two doubles or the first argument if both are equal
int min (int a, int b)
double min (double a, double b)
 returns the minimum of two doubles or the first argument if both are equal
bool nokCallback (LabelPosition *lp, void *context)
bool ptrCrossingCompare (Crossing *a, Crossing *b)
bool ptrETCompare (ElemTrans *a, ElemTrans *b)
bool ptrFeatsCompare (Feats *a, Feats *b)
bool ptrFeatureCompare (Feature *a, Feature *b)
bool ptrFeaturePartCompare (FeaturePart *a, FeaturePart *b)
bool ptrGeomEq (const GEOSGeometry *l, const GEOSGeometry *r)
bool ptrLayerCompare (Layer *a, Layer *b)
bool ptrLPosCompare (LabelPosition *a, LabelPosition *b)
bool ptrPSetCompare (PointSet *a, PointSet *b)
int reorderPolygon (int nbPoints, double *x, double *y)
bool smaller (double l, double r)
void sort (double *heap, int *x, int *y, int N)
void sort (void **items, int N, bool(*greater)(void *l, void *r))
 Sort an array of pointers.
bool strCompare (char *a, char *b)
bool subPartCallback (LabelPosition *lp, void *ctx)
void tabcpy (int n, const int *const x, const int *const y, const double *const prob, int *cx, int *cy, double *p)
double unit_convert (double x, Units from, Units to, int dpi, double scale, double delta_canvas_width)
LinkedList< const GEOSGeometry * > * unmulti (const GEOSGeometry *the_geom)
bool updateCandidatesCost (LabelPosition *lp, void *context)
double vabs (double x)

Detailed Description

Introduction

Pal is a labelling library released under the GPLv3 license

Typedef Documentation

typedef for _arrangement enumeration

Definition at line 107 of file pal.h.

typedef struct pal::_chain pal::Chain
typedef struct pal::_cHullBox pal::CHullBox
typedef struct pal::_cross pal::Crossing
typedef THREAD_TYPE pal::MUTEX_T

Definition at line 62 of file simplemutex.h.

Typedef for _Units enumeration.

Definition at line 90 of file pal.h.

typedef struct pal::_subpart pal::SubPart
typedef struct pal::_Triple pal::Triple
typedef enum _Units pal::Units

Typedef for _Units enumeration.

Definition at line 77 of file pal.h.

Enumeration Type Documentation

The way to arrange labels against spatial entities.

image html arrangement.png "Arrangement modes" width=7cm

Enumerator:
P_POINT 

arranges candidates around a point (centroid for polygon)

P_POINT_OVER 
P_LINE 

arranges candidates over a point (centroid for polygon)

Only for lines and polygons, arranges candidates over the line or the polygon perimeter

P_CURVED 
P_HORIZ 

Only for lines, labels along the line.

Only for polygon, arranges candidates horizontaly

P_FREE 

Only for polygon, arranges candidates with respect of polygon orientation.

Definition at line 96 of file pal.h.

Search method to use.

Enumerator:
CHAIN 

is the worst but fastest method

POPMUSIC_TABU_CHAIN 

is the best but slowest

POPMUSIC_TABU 

is a little bit better than CHAIN but slower

POPMUSIC_CHAIN 

is slower and best than TABU, worse and faster than TABU_CHAIN

FALP 

Definition at line 80 of file pal.h.

Units for label sizes and distlabel.

Enumerator:
PIXEL 

pixel [px]

METER 

meter [m]

FOOT 

foot [ft]

DEGREE 

degree [°]

Definition at line 68 of file pal.h.

enumeration line arrangement flags.

Flags can be combined.

Enumerator:
FLAG_ON_LINE 
FLAG_ABOVE_LINE 
FLAG_BELOW_LINE 
FLAG_MAP_ORIENTATION 

Definition at line 110 of file pal.h.

Function Documentation

static LabelPosition* pal::_createCurvedCandidate ( LabelPosition *  lp,
double  angle,
double  dist 
)
static

Definition at line 924 of file feature.cpp.

static FeaturePart* pal::_findConnectedPart ( FeaturePart *  partCheck,
LinkedList< FeaturePart * > *  otherParts 
)
static

Definition at line 425 of file layer.cpp.

void pal::actualizeCandidateList ( int  nbOverlap,
int *  candidateListSize,
double  candidateBaseFactor,
double *  candidateFactor,
int  minCandidateListSize,
double  growingFactor,
int  n 
)
inline

Definition at line 859 of file problem.cpp.

void pal::actualizeTabuCandidateList ( int  m,
int  iteration,
int  nbOverlap,
int *  candidateListSize,
double  candidateBaseFactor,
double *  candidateFactor,
int  minCandidateListSize,
double  reductionFactor,
int  minTabuTSize,
double  tabuFactor,
int *  tenure,
int  n 
)
inline

Definition at line 838 of file problem.cpp.

bool pal::bigger ( double  l,
double  r 
)

Definition at line 47 of file priorityqueue.cpp.

bool pal::borderSizeDec ( void *  l,
void *  r 
)
inline

Definition at line 141 of file problem.cpp.

bool pal::borderSizeInc ( void *  l,
void *  r 
)
inline

Definition at line 146 of file problem.cpp.

bool pal::chainCallback ( LabelPosition *  lp,
void *  context 
)

Definition at line 1301 of file problem.cpp.

bool pal::checkCallback ( LabelPosition *  lp,
void *  ctx 
)

Definition at line 2395 of file problem.cpp.

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

Definition at line 353 of file geomfunction.cpp.

bool pal::computeLineSegIntersection ( double  x1,
double  y1,
double  x2,
double  y2,
double  x3,
double  y3,
double  x4,
double  y4,
double *  x,
double *  y 
)

Definition at line 311 of file geomfunction.cpp.

bool pal::computeSegIntersection ( double  x1,
double  y1,
double  x2,
double  y2,
double  x3,
double  y3,
double  x4,
double  y4,
double *  x,
double *  y 
)

Definition at line 332 of file geomfunction.cpp.

bool pal::computeSegIntersectionExt ( double  x1,
double  y1,
double  x2,
double  y2,
double  xs1,
double  ys1,
double  x3,
double  y3,
double  x4,
double  y4,
double  xs2,
double  ys2,
double *  x,
double *  y 
)

Definition at line 160 of file geomfunction.cpp.

void pal::convert2pt ( int *  x,
double  scale,
int  dpi 
)
inline

Definition at line 210 of file util.h.

int pal::convert2pt ( double  x,
double  scale,
int  dpi 
)
inline

Definition at line 216 of file util.h.

int pal::convexHull ( int *  id,
const double *const  x,
const double *const  y,
int  n 
)
int pal::convexHullId ( int *  id,
const double *const  x,
const double *const  y,
int  n,
int *&  cHull 
)

Definition at line 394 of file geomfunction.cpp.

double pal::cross_product ( double  x1,
double  y1,
double  x2,
double  y2,
double  x3,
double  y3 
)
inline

Definition at line 51 of file geomfunction.h.

bool pal::crossingDist ( void *  a,
void *  b 
)
inline

Definition at line 86 of file pointset.h.

bool pal::decreaseCost ( void *  tl,
void *  tr 
)

Definition at line 826 of file problem.cpp.

double pal::degree2meter ( double  delta_deg)
inline

Definition at line 105 of file util.h.

void pal::delete_chain ( Chain *  chain)
inline

Definition at line 66 of file problem.cpp.

double pal::dist_euc2d ( double  x1,
double  y1,
double  x2,
double  y2 
)
inline

Definition at line 56 of file geomfunction.h.

double pal::dist_euc2d_sq ( double  x1,
double  y1,
double  x2,
double  y2 
)
inline

Definition at line 61 of file geomfunction.h.

bool pal::extractFeatCallback ( FeaturePart *  ft_ptr,
void *  ctx 
)

Definition at line 235 of file pal.cpp.

bool pal::falpCallback1 ( LabelPosition *  lp,
void *  ctx 
)

Definition at line 303 of file problem.cpp.

bool pal::falpCallback2 ( LabelPosition *  lp,
void *  ctx 
)

Definition at line 266 of file problem.cpp.

bool pal::filteringCallback ( PointSet *  pset,
void *  ctx 
)

Definition at line 324 of file pal.cpp.

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

Definition at line 629 of file geomfunction.cpp.

GEOSContextHandle_t pal::geosContext ( )

Get GEOS context handle to be used in all GEOS library calls with reentrant API.

Definition at line 87 of file pal.cpp.

void pal::geosError ( const char *  fmt,
  ... 
)

Definition at line 71 of file pal.cpp.

void pal::geosNotice ( const char *  fmt,
  ... 
)

Definition at line 79 of file pal.cpp.

void pal::heapsort ( int *  sid,
int *  id,
const double *const  x,
int  N 
)

Definition at line 44 of file geomfunction.cpp.

void pal::heapsort2 ( int *  x,
double *  heap,
int  N 
)

Definition at line 86 of file geomfunction.cpp.

void pal::ignoreLabel ( LabelPosition *  lp,
PriorityQueue *  list,
RTree< LabelPosition *, double, 2, double > *  candidates 
)

Definition at line 279 of file problem.cpp.

bool pal::increaseCost ( void *  tl,
void *  tr 
)

Definition at line 831 of file problem.cpp.

bool pal::increaseImportance ( void *  l,
void *  r 
)
inline

Definition at line 151 of file problem.cpp.

bool pal::increaseNbOverlap ( void *  l,
void *  r 
)
inline

Definition at line 156 of file problem.cpp.

bool pal::intCompare ( int  a,
int  b 
)
inline

Definition at line 225 of file util.h.

bool pal::isPointInPolygon ( int  npol,
double *  xp,
double *  yp,
double  x,
double  y 
)

Definition at line 565 of file geomfunction.cpp.

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

Definition at line 140 of file geomfunction.cpp.

int pal::max ( int  a,
int  b 
)
inline

Definition at line 87 of file util.h.

double pal::max ( double  a,
double  b 
)
inline

returns the maximum of two doubles or the first argument if both are equal

Definition at line 90 of file util.h.

int pal::min ( int  a,
int  b 
)
inline

Definition at line 93 of file util.h.

double pal::min ( double  a,
double  b 
)
inline

returns the minimum of two doubles or the first argument if both are equal

Definition at line 96 of file util.h.

bool pal::nokCallback ( LabelPosition *  lp,
void *  context 
)

Definition at line 2469 of file problem.cpp.

bool pal::ptrCrossingCompare ( Crossing *  a,
Crossing *  b 
)
inline

Definition at line 81 of file pointset.h.

bool pal::ptrETCompare ( ElemTrans *  a,
ElemTrans *  b 
)
inline

Definition at line 265 of file util.h.

bool pal::ptrFeatsCompare ( Feats *  a,
Feats *  b 
)
inline

Definition at line 254 of file util.h.

bool pal::ptrFeatureCompare ( Feature *  a,
Feature *  b 
)
inline

Definition at line 245 of file util.h.

bool pal::ptrFeaturePartCompare ( FeaturePart *  a,
FeaturePart *  b 
)
inline

Definition at line 249 of file util.h.

bool pal::ptrGeomEq ( const GEOSGeometry *  l,
const GEOSGeometry *  r 
)
inline

Definition at line 186 of file util.cpp.

bool pal::ptrLayerCompare ( Layer *  a,
Layer *  b 
)
inline

Definition at line 259 of file util.h.

bool pal::ptrLPosCompare ( LabelPosition *  a,
LabelPosition *  b 
)
inline

Definition at line 235 of file util.h.

bool pal::ptrPSetCompare ( PointSet *  a,
PointSet *  b 
)
inline

Definition at line 240 of file util.h.

int pal::reorderPolygon ( int  nbPoints,
double *  x,
double *  y 
)

Definition at line 496 of file geomfunction.cpp.

bool pal::smaller ( double  l,
double  r 
)

Definition at line 42 of file priorityqueue.cpp.

void pal::sort ( double *  heap,
int *  x,
int *  y,
int  N 
)

Definition at line 72 of file util.cpp.

void pal::sort ( void **  items,
int  N,
bool(*)(void *l, void *r)  greater 
)

Sort an array of pointers.

Parameters
itemsarays of pointers to sort
Nnumber of items
greaterfunction to compare two items

Definition at line 139 of file util.cpp.

bool pal::strCompare ( char *  a,
char *  b 
)
inline

Definition at line 230 of file util.h.

bool pal::subPartCallback ( LabelPosition *  lp,
void *  ctx 
)

Definition at line 660 of file problem.cpp.

void pal::tabcpy ( int  n,
const int *const  x,
const int *const  y,
const double *const  prob,
int *  cx,
int *  cy,
double *  p 
)

Definition at line 125 of file util.cpp.

double pal::unit_convert ( double  x,
Units  from,
Units  to,
int  dpi,
double  scale,
double  delta_canvas_width 
)
inline

Definition at line 120 of file util.h.

LinkedList< const GEOSGeometry * > * pal::unmulti ( const GEOSGeometry *  the_geom)

Definition at line 191 of file util.cpp.

bool pal::updateCandidatesCost ( LabelPosition *  lp,
void *  context 
)

Definition at line 888 of file problem.cpp.

double pal::vabs ( double  x)
inline

Definition at line 99 of file util.h.