Implement full coherence validation #778
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
type: feature
New features and improvements to existing features
The Fornjot kernel distinguishes between local and global representations of geometric and topological objects. Local representations are 1- or 2-dimensional (curve or surface coordinates) while global representations are always 3-dimensional.
To catch various mistakes, whether by the user or bugs in the code, the kernel does validation to check whether a shape (or part of a shape) is valid. One category of validation is called coherence validation. Coherence validation makes sure that the local and global representations within a shape match. This is currently not fully implemented.
As of this writing, all validation code lives in
fj-kernel
'svalidation
module. Coherence validation is implemented incoherence.rs
. It would be beneficial to have full coherence validation implemented for all objects.Please note that it might make sense to shuffle some things around before/while implementing this. For example vertices (
Vertex
) currently don't refer to the curve they are on, but maybe they should (as opposed toEdge
referring to that curve). Another idea is to splitCurve
into local and global variants, similar toVertex
/GlobalVertex
. I'm not saying that these things need to be done as part of this issue. I just want to express that the current structure isn't fully solidified (and likely won't be for a long time), and that shuffling things around to aid with the implementation of this issue is perfectly acceptable.The text was updated successfully, but these errors were encountered: