Updates the transform on el using optional Vectors.
This function prevents seperate manual transform updates,
that either update rotatiom, position or scale to override each other.
Source
void transform(Element el, { Vector2 position, Vector2 rotation, Vector2 scale })
{
var transformation = "";
if (position != null)
{
el.attributes["position"] = "translate(${position.x.round()}px, ${position.y.round()}px)";
}
if (rotation != null)
{
final radians = atan2(rotation.x, rotation.y);
el.attributes["rotation"] = "rotate(${radians}rad)";
}
if (scale != null)
{
el.attributes["scale"] = "scale(${scale.x}, ${scale.y})";
}
if ( el.attributes.containsKey("position") ) transformation += el.attributes["position"] + " ";
if ( el.attributes.containsKey("rotation") ) transformation += el.attributes["rotation"] + " ";
if ( el.attributes.containsKey("scale") ) transformation += el.attributes["scale"] + " ";
el.style.transform = transformation;
}