Recently @jojolepro has put work into Transform separation which can be found in a branch here: https://github.com/jojolepro/amethyst/tree/transform

This is definitely exciting, especially considering the implications that 2d transforms utilizing a fixed point number type could have in helping to solve pixel-perfect rendering problems as well as the possibility of fixed point and f64 in storing information about dynamics systems, that are already always so hungry for any edge in satisfying different sorts of accuracies.

Considering that adding the `Real`

type parameter to 3d transforms, along with adding the dimension suffix to their name to delineate the difference in dimensional spaces are already breaking API changes in `core`

, I believe this would be a good time for another big api change in this space, in writing `Transform{2,3]`

's as `LocalTransform{2,3}`

's, and possibly also renaming `GlobalTransform`

's similarly to simply be `Transform`

, such as to emphasize that local transformations are “intermediate” values requiring their `TransformBundle`

to be computed into `GlobalTransform`

's which are to be considered the “actual” value.

This is an extremely important distinction that should be made more obvious in the API. Changes to `GlobalTransform`

on entities with `Transform`

's will currently have those changes overwritten by `TransformBundle`

and there’s no way to know this by looking at the types of these fundamental components (or at their documentation, but that can be addressed independently. I’ve also been thinking up ways to improve explanation of Amethyst’s structure and hopefully I can write those into forum posts/documentation at some point)