A set of open c++ game development tools that are lightweight, easy-to-integrate and free to use. Currently hosting a magicavoxel .vox full scene loader.
legacy vox files don't contain information about groups, transforms, animations etc, so a lot of the paths in vox2obj that assume that groups/keyframes exist were problematic.
we fix this in 2 ways
we now create a default group when importing these legacy vox files.
we now don't allow clients to sample directly from the ogt_vox_anim_transform structures, but only directly from the instances or the groups themselves. This allows the sampling functions to fallback to the embedded transform if no keyframes exist.
we now expose global and local versions of transform sampling for both instances and groups. Global = world space flattened transform. Local = transform relative to the parent group.
I took the opportunity to expose ogt_vox_transform_get_identity() and ogt_vox_transform_multiply to the clients in case they need to compose local transforms in interesting ways.
fixes: https://github.com/jpaver/opengametools/issues/55