1800 uint32_t kept_it = 0;
1801 uint32_t last_it = pa->
npoints - 1;
1805 for (uint32_t i = 1; i < last_it; i++)
1810 double ba_x = next_pt->
x - kept_pt->
x;
1811 double ba_y = next_pt->
y - kept_pt->
y;
1812 double ab_length_sqr = ba_x * ba_x + ba_y * ba_y;
1814 double ca_x = curr_pt->
x - kept_pt->
x;
1815 double ca_y = curr_pt->
y - kept_pt->
y;
1816 double dot_ac_ab = ca_x * ba_x + ca_y * ba_y;
1817 double s_numerator = ca_x * ba_y - ca_y * ba_x;
1821 dot_ac_ab > ab_length_sqr ||
1836 if (kept_it != last_it)
int p2d_same(const POINT2D *p1, const POINT2D *p2)
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