Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sort out validation #1129

Closed
hannobraun opened this issue Sep 22, 2022 · 0 comments · Fixed by #1330
Closed

Sort out validation #1129

hannobraun opened this issue Sep 22, 2022 · 0 comments · Fixed by #1330
Labels
topic: core Issues relating to core geometry, operations, algorithms type: development Work to ease development or maintenance, without direct effect on features or bugs

Comments

@hannobraun
Copy link
Owner

The data structures in Fornjot's kernel can represent shapes that aren't actually valid. Vertices whose curve (1D) coordinates don't match their global (3D) coordinates, half-edges that intersect other half-edges, cycles whose half-edges aren't actually connected to each other... you name it. There are lots of ways to mess up the construction of those data structures accidentally.

The way to deal with that is validation. Validation is code that inspects objects (like those vertices, half-edges, or cycles I mentioned) and determines whether they are valid. There are three kinds of validation:

  • Uniqueness: Makes sure that there aren't any objects that are equal, but have different identities.
  • Coherence: Verifies that any redundant representations of data (like the aforementioned curve and global coordinates of a vertex) match each other, meaning they all convert to the same global coordinates.
  • Geometric: Checks object-specific rules, for example that the half-edges in a cycle connect to each other in the right way.

All of this is not fully implemented, and in fact it's a bit of a moving target. In the past, validation has been added to track down specific bugs, or has been removed because it got in the way of changes that had to be made. Because validation is such a moving target, it has been difficult to track it with issues. There are a few open right now, and most of them are out of date in some way.

To simplify things, I've decided to close all of open validation issues and replace them with a single, more general one (this issue). Any information that is relevant can just be added here. Once things settle down again, we can once again split this up and create more specific issues.

@hannobraun hannobraun added type: development Work to ease development or maintenance, without direct effect on features or bugs topic: core Issues relating to core geometry, operations, algorithms labels Sep 22, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
topic: core Issues relating to core geometry, operations, algorithms type: development Work to ease development or maintenance, without direct effect on features or bugs
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant