I began writing MathGeoLib some time around the summer of 2011. The library has come a long way since and it now contains a range of common geometry types and different operations related to them. One of the recurring issues has been the problem of computing minimal enclosing shapes for 3D meshes for culling and collision detection. Code for generating minimum enclosing axis-aligned bounding boxes (AABB) was included in MathGeoLib right from the start, and finding minimum enclosing spheres was added almost immediately in November 2011. Convex hull computation was added in 2012. These covered three very common geometric collision shapes, but for oriented bounding boxes (OBB), another very common collision primitive, MathGeoLib did not have anything to offer for a long time. This was due to the fact that there did not really exist any good algorithms for finding minimum enclosing OBBs, and brute force or principal component analysis (PCA) were the most common approaches. This means a choice of getting either practically the optimal result extremely slowly, or possibly an arbitrarily bad result very quickly. A number of intelligent numerical optimization algorithms have been crafted to help this issue, but since those are not able to give any guarantees either, and I could not find any reproducible implementations, they did not feel right.
Last Updated (Friday, 05 June 2015 13:08)