An
indexed
mesh stores:
- a list of vertices (each vertex stored once)
- a list triangles composed of vertex indices
Note this separately stores the geometry and
the topology.

Indexed
meshes are well suited to rendering using modern graphics hardware. In particular, they can be rendered simply
with the function
glDrawElements().
Finding neighbours is well defined (no
floating point issues) but is still inconvenient.