1706 if (tolerance == 0 && minpts <= 2)
1724 uint32_t *iterator_stack =
lwalloc(
sizeof(uint32_t) * pa->
npoints);
1725 iterator_stack[0] = 0;
1726 uint32_t iterator_stack_size = 1;
1728 uint32_t it_first = 0;
1729 uint32_t it_last = pa->
npoints - 1;
1731 const double tolerance_sqr = tolerance * tolerance;
1733 double it_tol = keptn >= minpts ? tolerance_sqr : -1.0;
1735 while (iterator_stack_size)
1738 if (split == it_first)
1741 it_last = iterator_stack[--iterator_stack_size];
1748 iterator_stack[iterator_stack_size++] = it_last;
1750 it_tol = keptn >= minpts ? tolerance_sqr : -1.0;
1765 else if (pa->
npoints != keptn)
1767 for (uint32_t i = 1; i < pa->
npoints; i++)
void * lwalloc(size_t size)
#define LW_TRUE
Return types for functions with status returns.
static size_t ptarray_point_size(const POINTARRAY *pa)
static uint32_t ptarray_dp_findsplit_in_place(const POINTARRAY *pts, uint32_t it_first, uint32_t it_last, double max_distance_sqr)
static void ptarray_simplify_in_place_tolerance0(POINTARRAY *pa)
uint8_t * serialized_pointlist