clbarnes / ncollpyde

Mesh containment and line segment intersection queries in Python (over rust)
MIT License
9 stars 0 forks source link

Remove dependency on trimesh #7

Open clbarnes opened 4 years ago

clbarnes commented 4 years ago

Trimesh is currently used for optional mesh validation/ fixing. Ideally would eventually show up in ncollide https://github.com/rustsim/ncollide/issues/318

Currently handled by trimesh:

Other possible validations:

clbarnes commented 3 years ago
  1. Degenerate vertices (duplicates in vertices)
  2. Unused vertices (any vertices not referred to in triangles)
  3. Inconsistent winding (parallel edges); could also be edge-to-edge self-intersection
  4. Holes (edge with 0 antiparallel partners)
  5. Zero-area triangles (given no degenerate vertices, triangle has >=2 vertices at the same index)
  6. Degenerate triangles (given consistent winding, two triangles have the same vertices)
  7. Incorrect winding (given consistent winding, ray cast from outside the AABB at an arbitrary triangle hits a backface)

Self-intersections exist when an edge intersects with a triangle other than those it ought to?