Refactor|World|Map Renderer: Switched all Mesh face iterations to use half-edges
There are very few situations where the clockwise ordering of edges around a polygon is important outside of the map renderer. In nearly all other situations one can simply iterate the half-edges of any given Mesh without affecting the outcome.
Where possible we now iterate the mesh edge list instead of walking the half-edge geometry as this allows for many of the algorithms to use the same logic for all half-edges at a given BSP leaf (leaf and extra meshes and polyobjs).
Now that we are starting to make proper use of the half-edge data structure the clarity and uniformity it affords is more obvious.
Refactor|World|Map Renderer: Switched all Mesh face iterations to use half-edges
There are very few situations where the clockwise ordering of edges
around a polygon is important outside of the map renderer. In nearly
all other situations one can simply iterate the half-edges of any
given Mesh without affecting the outcome.
Where possible we now iterate the mesh edge list instead of walking
the half-edge geometry as this allows for many of the algorithms to
use the same logic for all half-edges at a given BSP leaf (leaf and
extra meshes and polyobjs).
Now that we are starting to make proper use of the half-edge data
structure the clarity and uniformity it affords is more obvious.