Skip to content

Validate that objects which have distinct positions in a lower dimension, don't map to the same positions in higher dimensions #2374

@hannobraun

Description

@hannobraun

It is possible to construct objects that exhibit the attribute mentioned in the title. Here are two examples of this:

  • A half-edge that is a full circle. Its vertices will have distinct positions in the curve's 1-dimensional space (at 0 and 1 turns), but map to the same position in 2D and 3D space.
  • A single face that makes up the side wall of a cylinder. All of its bounding half-edges are distinct in the surface's 2-dimensional space, but two of them map to the same position in 3D space (at the "seam" of the side wall).

As of this writing, this actually works, but that's more an artifact of how weird the current geometry system is, and not really an advantage. It's starting to cause trouble. See #2290 (comment) for details.

We should have distinct validation checks for vertices and half-edges, which need to be implemented on higher-dimensional objects like half-edges and faces. I haven't thought this completely through, so I don't know if this specifically would be enough, or if there's more subtlety to it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    status: blockedIssue or pull request is blocked by another issue or pull request, or some outside circumstancetopic: validationInfrastructure for checking various properties of objects, making sure they are valid.type: enhancementNew features and improvements to existing features

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions