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()))))))

Uses (15)

Used by (1)