GC reports nonmanifold mesh when mesh is just not oriented consistently
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Stale
- Tech stack
- cpp
- Domain
- computer-graphics
Research direction
Start by locating the GC validation that reports a mesh as nonmanifold and reproduce the case where the mesh is manifold but faces are inconsistently oriented. Decide whether the intended scope is revised error text, explicit orientation detection, or an orientFaces() method; done means the selected behavior distinguishes or resolves this case without misreporting it.
Written by the indexing model from the issue text.
Description
GC will report that a mesh is nonmanifold even in cases where it is manifold, but the faces are not consistently aligned.
Level 1 fix
A quick improvement would just be to change error reporting to something like:
Mesh is either nonmanifold, or faces are not oriented consistently.
Level 2 fix
A bigger fix would be to detect that faces are inconsistently oriented, and report this explicitly:
Mesh is manifold, but faces are not consistently oriented.
Level 3 fix
The ultimate fix would be to actually fix the normal orientation, if the mesh is manifold and orientable. There are some design decisions here (e.g., which of the two orientations should we pick?) but generally this should be pretty straightforward.
We could also implement this as a general-purpose method like orientFaces(), which is probably useful in its own right. Then the user can be asked to call this method explicitly:
Mesh is manifold, but faces are not consistently oriented. Please call orientFaces() before trying to build a ManifoldSurfaceMesh.
This may be better than automatically orienting someone's faces, which might violate the principle of least surprise.
- Dominant language
- C++
- Stars
- 1.3k
- Forks
- 183
- PR merge metrics
- No merged PRs in 30d
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from nmwsharp/geometry-central
-
Difficulty 1/5 Under an hour Newbie friendliness 88/100
nmwsharp/geometry-central#256 ·
-
Difficulty 4/5 3-5 days Newbie friendliness 48/100
nmwsharp/geometry-central#255 · 1 comment ·
-
Difficulty 4/5 3-5 days Newbie friendliness 30/100
nmwsharp/geometry-central#253 ·
-
Difficulty 3/5 1-2 days Newbie friendliness 57/100
nmwsharp/geometry-central#247 ·
-
Difficulty 3/5 1-2 days Newbie friendliness 68/100
nmwsharp/geometry-central#246 ·
All issues in nmwsharp/geometry-central
Similar issues
-
Difficulty 1/5 1-3 hours Newbie friendliness 92/100
autowarefoundation/autoware_universe#13413 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
automated-analysis bug memory-safety
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
-
Sensor initialization takes very long when `--initial-sim-time` is set to current UNIX timestamp Open
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
gazebosim/gz-sensors#662 · 1 comment ·