# Under what conditions does a mesh operation cause the mesh become non-manifold and how to avoid it?

I'm implementing some mesh operations (e.g. edge collapse, edge split, edge flip etc) and need to ensure applying such operations does not cause the mesh to become non-manifold. However, I'm not sure how what things I should check for to ensure my geometry doesn't become non-manifold. Can someone tell me what those conditions/checks are? Also, how can I apply the same operation that causes the mesh to become non-manifold so that the manifoldness of the mesh is still preserved?

• Checking for nonmanifoldness is 1) a edge can only have 2 inbound faces 2) winding direction of those faces are the same 3 ) all edges connecting a vertex must form a loop if they form 2 loops then its nonmanifold Feb 19, 2021 at 18:10
• Being a manifold is a property of the mesh's topology. As such, operations like "vertex move" cannot affect that, since the position of a vertex is irrelevant to a mesh's topology. Feb 19, 2021 at 20:05
• Are you sure you mean manifold? Or some other term to describe some other degenerate cases? When you say vertex move, you make me think self intersections and coplanar faces might be an issue for you. Feb 19, 2021 at 21:08
• @AndrewWilson Yes I meant manifold. I misspoke by mentioning vertex move; will update my post now.
– Amir
Feb 19, 2021 at 21:56
• @joojaa How can I check the winding direction of the edges in a face?
– Amir
Feb 25, 2021 at 17:34