PostGIS 3.7.0dev-r@@SVN_REVISION@@
Loading...
Searching...
No Matches

◆ itree_num_nodes_pointarray()

static uint32_t itree_num_nodes_pointarray ( const POINTARRAY pa)
static

Definition at line 46 of file intervaltree.c.

47{
48 uint32_t num_nodes = 0;
49 uint32_t level_nodes = 0;
50
51 /* not a closed polygon */
52 if (!pa || pa->npoints < 4) return 0;
53
54 /* one leaf node per edge */
55 level_nodes = pa->npoints - 1;
56
57 while(level_nodes > 1)
58 {
59 uint32_t next_level_nodes = level_nodes / ITREE_MAX_NODES;
60 next_level_nodes += ((level_nodes % ITREE_MAX_NODES) > 0);
61 num_nodes += level_nodes;
62 level_nodes = next_level_nodes;
63 }
64 /* and the root node */
65 return num_nodes + 1;
66}
#define ITREE_MAX_NODES
uint32_t npoints
Definition liblwgeom.h:427

References ITREE_MAX_NODES, and POINTARRAY::npoints.

Referenced by itree_num_nodes_polygon().

Here is the caller graph for this function: