We calculate the effective area for the first time.
Definition at line 349 of file effectivearea.c.
350{
351 LWDEBUG(2,
"Entered ptarray_calc_areas");
352 int i;
355 double area;
356
357 const double *P1;
358 const double *P2;
359 const double *P3;
360
363
364
367
370
371 for (i=1;i<(npoints)-1;i++)
372 {
376
377 if(is3d)
379 else
381
384 P1=P2;
385 P2=P3;
386
387 }
390
391 for (i=1;i<(npoints)-1;i++)
392 {
394 }
395
396 tune_areas(ea,avoid_collaps,set_area, trshld);
398}
static double triarea2d(const double *P1, const double *P2, const double *P3)
Calculate the area of a triangle in 2d.
static double triarea3d(const double *P1, const double *P2, const double *P3)
Calculate the area of a triangle in 3d space.
static void tune_areas(EFFECTIVE_AREAS *ea, int avoid_collaps, int set_area, double trshld)
To get the effective area, we have to check what area a point results in when all smaller areas are e...
#define FLAGS_GET_Z(flags)
#define LWDEBUG(level, msg)
#define LWDEBUGF(level, msg,...)
static uint8_t * getPoint_internal(const POINTARRAY *pa, uint32_t n)
areanode * initial_arealist
References areanode::area, POINTARRAY::flags, FLAGS_GET_Z, getPoint_internal(), EFFECTIVE_AREAS::initial_arealist, EFFECTIVE_AREAS::inpts, LWDEBUG, LWDEBUGF, areanode::next, POINTARRAY::npoints, areanode::prev, EFFECTIVE_AREAS::res_arealist, return(), triarea2d(), triarea3d(), and tune_areas().
Referenced by do_test_lwgeom_effectivearea(), and ptarray_set_effective_area().