Boost logo

Geometry :

Subject: Re: [geometry] Is simplify algorithm 3D aware
From: Adam Wulkiewicz (adam.wulkiewicz_at_[hidden])
Date: 2016-04-12 14:23:19


Hi,

Jakka30 wrote:
> What we noticed is that, if a point exceeds the max_distance in Z
> direction, but within the max_distance in x and y, it is still
> removing that point.

By default simplify() use:
- the default simplify strategy, bg::strategy::simplify::douglas_peucker,
- the default point-segment strategy, in cartesian
bg::strategy::distance::projected_point,
- the default point-point strategy, in cartesian
bg::strategy::distance::pythagoras,

The first strategy is CS-agnostic and the two other strategies are
N-dimensional. The projected_point strategy first calculates the
coordinates of a point projected into a segment and then calculates the
distance between this point and the original point using pythagoras
strategy. So a point is removed when a distance between this point and a
segment created between currently analysed endpoints in douglas_peucker
strategy is lesser than max_distance.

> Do you have a example where it works in the z direction too?
>

Just added:
https://github.com/boostorg/geometry/blob/develop/test/algorithms/simplify.cpp#L197
It calls simplify() with the default strategies:
https://github.com/boostorg/geometry/blob/develop/test/algorithms/test_simplify.hpp#L87

Could you share a test case when the behavior is not correct?

Regards,
Adam



Geometry list run by mateusz at loskot.net