1940 uint32_t kept_it = 0;
1941 uint32_t last_it = pa->
npoints - 1;
1945 for (uint32_t i = 1; i < last_it; i++)
1950 double ba_x = next_pt->
x - kept_pt->
x;
1951 double ba_y = next_pt->
y - kept_pt->
y;
1952 double ab_length_sqr = ba_x * ba_x + ba_y * ba_y;
1954 double ca_x = curr_pt->
x - kept_pt->
x;
1955 double ca_y = curr_pt->
y - kept_pt->
y;
1956 double dot_ac_ab = ca_x * ba_x + ca_y * ba_y;
1957 double s_numerator = ca_x * ba_y - ca_y * ba_x;
1959 if (dot_ac_ab < 0.0 || dot_ac_ab > ab_length_sqr || s_numerator != 0)
1972 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