Skip to content

Properties of Meshes

Lukas Kalbertodt edited this page Jun 12, 2018 · 3 revisions

Note: these properties don't have anything to do with the position of vertices. Meshes usually have vertex positions, but here we just talk about the connectivity. Like when talking about a graph: the position of the nodes doesn't matter (except if you are specifically talking about graph embeddings).


Number of sides per face

  • Varying. The most general form, faces with different side-count can be mixed in one mesh. This usually makes algorithms more complicated, but sometimes variably sided faces are required.
  • Triangle mesh. All faces have three sides. This restriction makes several algorithms a lot easier.
  • Quad mesh. All faces have four sides. Apparently quad meshes are interesting in a few situations, like 3D printing. But integrating those into the library is low priority for now.

Fixed values other than 3 and 4 don't really have any application.

2-Manifold

Definition from Wikipedia (on manifolds):

In mathematics, a manifold is a topological space that locally resembles Euclidean space near each point. More precisely, each point of an n-dimensional manifold has a neighbourhood that is homeomorphic to the Euclidean space of dimension n.

Substituting n = 2 gives:

Each point of an 2-manifold has a neighbourhood that is homeomorphic to a 2D Euclidean space.

In less formal terms, this simply means that the neighbourhood (an ε-small 3D sphere) around any point on the mesh must be continuously deformable into a disk. This is usually true: think of a sphere, a cube and a torus. Those are fine.

Also note that it's sufficient to only look at the vertices (instead of "all points on the surface"):

  • Points that sit on the inner part of an face obviously satisfy the requirements
  • Points that sit on the inner part of edges might not satisfy the requirements, but if they don't, then the two vertex endpoints also don't satisfy the requirement. (Proof please?!)

Examples of non-2-manifold meshes:

  • Two parts of the mesh are connected by only one vertex. The neighborhood around that vertex cannot be turned into a disk.
  • An edge adjacent to three faces. The neighboorhoods of all points on that edge cannot be turned continuously into a disk.

Another, alternative and equivalent (?) definition is this:

For a given vertex v, adjacent faces can be ordered so that their vertices ≠ v form a simple chain, i.e. no 2 vertices coincide and two sequential are connected by an edge.

If v is not a boundary vertex, the chain is a loop (the last and first vertex are connected as well).

Orientability

From Wikipedia:

Orientability is a property of surfaces in Euclidean space that measures whether it is possible to make a consistent choice of surface normal vector at every point.

The important part is consistent. Of course we can assign a normal vector to every point, but it's not always possible to assign it in a way that is "consistent". Famous example of a non-orientable mesh: Möbius strip.

Note that usually, face orientation is encoded by the order of the stored vertices.

Closed/Open

A mesh is closed when it does not have a boundary.

Clone this wiki locally