Over the past few days I have been working on a dedicated vector math library for my LiteGame engine. I started out needing only a ray-box intersection test, but things have spiraled out of control and now I have loads of really neat and useful stuff in there. I have been trawling a lot of my past projects in order to extract useful 2D vector algorithms from them, clean them up and throw them into this library.
The basic types so far are [vec2, ray2, box2, mat2, edge2, circle2, plane2] with a horde of functions to operate on all of them.
I wanted some kind of testing for this library, so I have created an interactive test suite currently with 16 different demos using various features of the library. Above is a video of the test suite in action. My goal is to add a demo for each new feature I add to the library so it can be verified.
While I have focused on 2D operations currently, there is a skeleton for 3D in the library, and I plan to hoover up all of my nice 3D code from various projects and throw them together into this library.