Ramer-Douglas-Peucker line simplification: Difference between revisions

m
Changed name of function parameter
(Added C solution)
m (Changed name of function parameter)
Line 40:
// Returns the number of output points.
size_t douglas_puecker(const point_t* points, size_t n, double epsilon,
point_t* dest, size_t lengthdestlen) {
assert(n >= 2);
assert(epsilon >= 0);
Line 53:
}
if (max_dist > epsilon) {
size_t n1 = douglas_puecker(points, index + 1, epsilon, dest, lengthdestlen);
if (lengthdestlen >= n1 - 1) {
lengthdestlen -= n1 - 1;
dest += n1 - 1;
} else {
lengthdestlen = 0;
}
size_t n2 = douglas_puecker(points + index, n - index, epsilon, dest, lengthdestlen);
return n1 + n2 - 1;
}
if (lengthdestlen >= 2) {
dest[0] = points[0];
dest[1] = points[n - 1];
1,777

edits