For some reason it is culling just two points… as if running iteratively, culling one point at a time, so the last point does not get culled because it is not closer to anything else.
In order for ALL points to be deleted, you can think of input points as a cluster where you measure distances between each point and the rest. If all distances are less than the tolerance, then they are all are deleted (deemed as duplicates).
In your example, the furthest distance in just over 28, and therefore you need a tolerance closer to 28 to delete them all.
Thank you Rajaa. Sadly I already know this and it doesn’t really solve my problem. I was questioning the behavior of the component itself rather than trying to cull all my points.
If you add other points to the point cloud, say at 15units from an existing point, those will get culled too (if you set tolerance at 30units), I just want to cull the ones at 10units.
I can easily solve my problem for now using the Proximity component or creating all possible connection and measuring the lengths/distances, then evaluating the smaller length and culling based on if that value is above or below the threshold.
Seems there should be some new component about culling by distances. The way cull duplicates works now is correct. It’s really for duplicates and tolerance is really there to account for inaccuracy errors (usually 0.001, 0.01 stuff like that) it’s same logic as welding mesh verts (like in an RTree, you take a bunch of points in some volume and collapse them).