A few days ago I released an initial “approach” to a 2D/3D computing library written in C++ with the ultimate idea to optimized ShadingZen (a java 2D/3D Engine). In its current state you can find various generic templates and some SSE specializations for 3 and 4 component vectors, matrices, quaternions and soon rays and bounding boxes. Those are the foundations for various common spatial queries algorithms too.
The source compiles against Boost 1.53 (its only dependency so far) on some semi-compliant C++11 compilers (cross-platform library!):
- Linux GCC 4.7.20121109 (probably works with 4.6)
- MacOSX Clang 3.2 (using libc++)
- MSVC 2012
Supported SIMD instruction sets:
- SSE: Yes, 4.1
- NEON ARM: No
- AVX: No
I have spent some hours this weekend tuning the Boost.Build2 scripts to ensure everything compiles in those various systems with unit testing and with just one command. I’m leaving android for some near future.
You can found the repository here: https://github.com/TraxNet/ShadingZenCpp Feel free to contribute!