Well I’ve got most of my paperwork done and the update to the geometry building is almost complete.
Like many things in programming, the best approach to the geometry building was not immediately obvious, but the end result feels quite elegant.
The base of the construct deals with pure geometry and works out where all the convex and concave edges and vertices are. Within this, the construct keeps a note of what usages (such as collision detection) or shader each triangle is going to have and keeps a separate list of mappings of vertex data to the underlying geometry.
The construct then has a layering manager to allow some items to be separated (for instance pure collision geometry, solid rendering, transparent rendering and so on).
It’s all pretty abstract at that level, but above the layering there are interfaces, functions and enumerations which translate it all into a more human friendly form.
I still need to update the portal geometry generation to generate the optional door frames.
This was supposed to be just a quick update, so I’ll end here for now and get back to actual work!