1673 uint32_t kept_it = 0;
1674 uint32_t last_it = pa->
npoints - 1;
1678 for (uint32_t i = 1; i < last_it; i++)
1683 double ba_x = next_pt->
x - kept_pt->
x;
1684 double ba_y = next_pt->
y - kept_pt->
y;
1685 double ab_length_sqr = ba_x * ba_x + ba_y * ba_y;
1687 double ca_x = curr_pt->
x - kept_pt->
x;
1688 double ca_y = curr_pt->
y - kept_pt->
y;
1689 double dot_ac_ab = ca_x * ba_x + ca_y * ba_y;
1690 double s_numerator = ca_x * ba_y - ca_y * ba_x;
1692 if (dot_ac_ab < 0.0 || dot_ac_ab > ab_length_sqr || s_numerator != 0)
1705 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