A useful property of geometric meshes is the adjacency relationship between faces of the mesh as defined by sharing triangle edges.

The adjacency is represented as an array of uint32_t index values with 3 entries for each triangular face in the mesh. Each entry is the face index of the triangular face that is adjacent to one edge of the triangular face (hence as there are three edges, there can be up to 3 triangular faces that share an edge). If there is no adjacent face, the index is set to -1u ( a.k.a. static_cast<uint32_t>(-1)).

The point representative (aka point rep) is an array of uint32_t index values with one entry for each vertex in the mesh. Each entry is the vertex index of a vertex with a unique position. If there are no vertices that share the same location, each entry of the pointrep array is the identity (i.e. pointrep[ i ] is i). If there are duplicated vertex positions in the mesh, then some entry will point to another 'representative' vertex index.

GenerateAdjacencyAndPointReps

ConvertPointRepsToAdjacency

GenerateGSAdjacency

Last edited Jun 5, 2014 at 6:24 PM by walbourn, version 3