Skip to content

Skip face labels in a 1-dimensional triangulation - #185

Open
aidannewsome wants to merge 2 commits into
3DBAG:mainfrom
aidannewsome:fix-one-dimensional-snap
Open

aidannewsome wants to merge 2 commits into
3DBAG:mainfrom
aidannewsome:fix-one-dimensional-snap

Conversation

@aidannewsome

Copy link
Copy Markdown

Fixes #183.

  • get_labelled_constraint and add_constraint_label_seeds return early when the triangulation is 1-dimensional, as there are no faces either side of an edge to take labels from.
  • seed_removed_vertex_region returns early below 2 dimensions, where locate can give no face.

With these, the reproducer in #183 and the 181 buildings it was cut from reconstruct under AddressSanitizer without errors, and the larger sets of buildings that crashed, 4,159 buildings together, now run to the end. On those 181, 6 buildings are left without roof parts, against 8 with 1.0.0. Building 460788 is one of them in both versions.

The off-by-one in gridthinPointcloud from #183 is left out, as #181 fixes it the same way. #181 also explains why the crash depended on the order of the input: the snapper's choices followed memory addresses. It does not guard against a 1-dimensional triangulation, so the two are separate fixes, and this branch merges cleanly with #181.

The Conan builds fail on the test data download (#184).

…nsional

After small triangles and short edges are collapsed, the constrained
Delaunay triangulation can be left with all its vertices on one line.
Its faces then have no vertex opposite an edge and no neighbour across
it, so get_labelled_constraint and add_constraint_label_seeds read a
null handle and roofer crashes with a segmentation fault.
…mensions

remove_dangling_constraints_and_vertices can remove enough vertices to
leave the triangulation 1-dimensional or empty. locate then gives no
face, and seed_removed_vertex_region read it, which crashed roofer with
a segmentation fault.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Segmentation fault in ArrangementSnapper when the triangulation becomes 1-dimensional

1 participant