v0.4.0
– Added entity system, allowing to easily create 2.5D graphics. Add specific elements you want to mark as entity (type: figure) or a container with them (type: scene). These elements won't get tilted when scaling like a surface does, but will stay "straight" instead, creating simple multi-dimensional visuals out of angled 2D assets. You can also make them tilt along with surface, but at different angle (factor: !==1).
– Realized my scaling step sizes are a complete nonsense that silently stayed as is since the early draft. Reworked them into a logarithmic function, where every next step makes surface smaller or larger by the same percent. You can still set scaleMin and scaleMax, but scaleStep is replaced with scaleNumSteps, and scaleDefault with scaleDefaultStep. Step sizes are then calculated under the hood.
– All children of container element (which are usually siblings of surface element) are now appended to transform element during initialization.
– Provided comments for all config values with brief explanations of their meaning.
– Renamed all config values with multiplier behaviour to somethingFactor.
– Renamed throw to toss, avoiding confusion with throw as error handling.
– Toss glide vector is now divided by scaling value, and tossGlideFactor default config value is set to 1.
– Renamed rotateXMax and rotateRounding config values to tiltMax and tiltRounding respectively, added tiltMin config value to allow making the surface tilted at any scale value.
– Split perspectiveDistance into perspectiveValue and perspectiveFactor, changed default perspectiveValue from 600px to 750px, moved perspective CSS update into Surface class from Scale.
– Changed class naming from "tilted-element-ID" to "tilted-ID-element".
– Replaced "image" example with a much fancier "world-map" one that makes use of the entity system.
– Renamed "html" example to "tile-map", added examples of the entity system usage to it.
– Added "elemap" example that uses my other library of the same name.