Definition at line 185 of file intervaltree.c.
187 uint32_t nodes_remaining = 0;
188 uint32_t leaf_nodes = 0;
193 lwerror(
"%s called with unusable ring", __func__);
196 for (uint32_t i = 0; i < pa->
npoints-1; i++)
214 nodes_remaining = leaf_nodes;
215 while (nodes_remaining > 1)
static int itree_edge_invalid(const POINT2D *pt1, const POINT2D *pt2)
static uint32_t itree_merge_nodes(IntervalTree *itree, uint32_t nodes_remaining)
static IntervalTreeNode * itree_new_node(IntervalTree *itree)
POINTARRAY * ptarray_clone(const POINTARRAY *ptarray)
Clone a POINTARRAY object.
void void lwerror(const char *fmt,...) __attribute__((format(printf
Write a notice out to the error handler.
static const POINT2D * getPoint2d_cp(const POINTARRAY *pa, uint32_t n)
Returns a POINT2D pointer into the POINTARRAY serialized_ptlist, suitable for reading from.
struct IntervalTreeNode * nodes
struct IntervalTreeNode ** indexes
POINTARRAY ** indexArrays
References IntervalTreeNode::edgeIndex, FP_MAX, FP_MIN, getPoint2d_cp(), IntervalTree::indexArrays, IntervalTree::indexes, itree_edge_invalid(), itree_merge_nodes(), itree_new_node(), lwerror(), IntervalTreeNode::max, IntervalTreeNode::min, IntervalTree::nodes, POINTARRAY::npoints, IntervalTree::numIndexes, IntervalTree::numNodes, ptarray_clone(), and POINT2D::y.
Referenced by itree_from_multipolygon(), and itree_from_polygon().