1598 uint32_t kept_it = 0;
1599 uint32_t last_it = pa->
npoints - 1;
1603 for (uint32_t i = 1; i < last_it; i++)
1608 double ba_x = next_pt->
x - kept_pt->
x;
1609 double ba_y = next_pt->
y - kept_pt->
y;
1610 double ab_length_sqr = ba_x * ba_x + ba_y * ba_y;
1612 double ca_x = curr_pt->
x - kept_pt->
x;
1613 double ca_y = curr_pt->
y - kept_pt->
y;
1614 double dot_ac_ab = ca_x * ba_x + ca_y * ba_y;
1615 double s_numerator = ca_x * ba_y - ca_y * ba_x;
1617 if (dot_ac_ab < 0.0 || dot_ac_ab > ab_length_sqr || s_numerator != 0)
1630 if (kept_it != last_it)
static const POINT2D * getPoint2d_cp(const POINTARRAY *pa, uint32_t n)
Returns a POINT2D pointer into the POINTARRAY serialized_ptlist, suitable for reading from.
static size_t ptarray_point_size(const POINTARRAY *pa)
uint8_t * serialized_pointlist