I want to put some things to discussion I ran across while testing SurfaceDissolver.
I am using it on data coming from a PointCloud, which I send through a TINGenerator in order to get as view surfaces as possible. My sample data is relatively simple, representing the roof of a small house. The PointCloud data have point distance ~20cm and seem to be accurate in z to ~5-10cm.
Remark: Before I started with TINGenerator I was not very successful with PointCloudSurfaceBuilder combined with MeshSimplifier. The mesh just didn't get simple enough :-(
SurfaceDissolver:
First I tried different settings for "Normal Tolerance" and "Offset Tolerance" and I was not really satisfied with the amount of simplification achieved. I ended up using Normal Tolerance=30 degress and Offset Tolerance=1m
Finally I tried to use SurfaceDissolver repeatedly (with identical settings) and that really improved the result.
example: starting with 129 surfaces
- run 1: 129 -> 65 surfaces
- run 2: 65 -> 32 surfaces
- run 3: 32 -> 24 surfaces
- run 4: 24 -> 12 surfaces
Then I tried to do these iterations within a Looping Custom Transformer only to learn that SurfaceDissolver is a blocking transformer without Group By. :-(
Q1: How come SurfaceDissolver doesn't do it's best from the start ?
Q2: Any particular reason why it doesn't support Group By ?