Closed Beafantles closed 3 years ago
Well first of all, OBJLoader is deprecated, use with care. The message states that normals are not set on you mesh (you should set dummy normals with the size of the vertices, even if the data is useless for you use, normals are mandatory for mesh). Moreover, non manifold is detected at the OpenMesh level, and singular vertex is (should be) correctly handled, so no errors in your case.
You mean that OpenMesh
duplicates the non-manifold vertices ?
Nope it's handled by the structures "Ability to handle non-manifold vertices (like two faces meeting in only one vertex)."
What is not handle is non manifold edge and faces, as well as degenerated faces. Anther way to say it is that an halfedge belongs to at most one face (0 if boundary), and has exactly one opposite halfedge.
The best thing you can do here is to loop over all vertices of the topological mesh once it is created, and detect non-manifold vertices.
OS: Windows 10 64 bits version 2004 Compiler: Visual Studio 16 2019 (v16.8.5) CMake version: 3.19.4 Ninja version: 1.10.2 Radium-Engine version: I used one of the latest version of Radium, from 9th February (commit 537caae).
I tried loading a non manifold mesh and converting it to a
Ra::Core::Geometry::TopologicalMesh
. I was expecting to see a warning as the mesh I was trying to convert into aRa::Core::Geometry::TopologicalMesh
instance was non manifold but there wasn't such warning displayed on the console.Here's the code I used:
I executed this program using the following command line arguments:
Here's the content of
non_manifold/simple.obj
:And here's the output of the program:
non_manifold/simple.obj
is a non manifold mesh which has only one topological singularity (vertice 4 is an isolated singular vertice). But this topological singularity doesn't seem to be detected.