def transform.one
gralha-svg-render@0.1.0.1 · svg.bend:61
import gralha-svg-render@0.1.0.1/svg.bend as Svg
import Base
import gralha-text-scan@0.1.0.1/scan.bend as U
61def transform.one(+name: String, +v: List<&2, F32>) -> Matrix:
62 +x = U.nth(v, 0n, 0.0)
63 +y = U.nth(v, 1n, 0.0)
64 +z = U.nth(v, 2n, 0.0)
65 U.branch(Matrix, U.string.equal(name, "translate"), _ => translate(x, y),
66 _ => U.branch(Matrix, U.string.equal(name, "scale"), _ => scale(x, U.nth(v, 1n, x)),
67 _ => U.branch(Matrix, U.string.equal(name, "rotate"),
68 _ => matrix.mul(translate(y, z), matrix.mul(rotate(x), translate(F32.neg(y), F32.neg(z)))),
69 _ => U.branch(Matrix, U.string.equal(name, "matrix"),
70 _ => Matrix{x, y, z, U.nth(v, 3n, 1.0), U.nth(v, 4n, 0.0), U.nth(v, 5n, 0.0)},
71 _ => U.branch(Matrix, U.string.equal(name, "skewX"),
72 _ => Matrix{1.0, 0.0, F32.tan((x * 0.017453292519943295 : F32)), 1.0, 0.0, 0.0},
73 _ => U.branch(Matrix, U.string.equal(name, "skewY"),
74 _ => Matrix{1.0, F32.tan((x * 0.017453292519943295 : F32)), 0.0, 1.0, 0.0, 0.0},
75 _ => identity()))))))