const a = vec(1, 2, 3, 4) console.log(a.length, a) // standard property access console.log(a[0], a.y, a.b, a.t) // swizzling console.log(a.xy, a.zyx, a.xxyy) // same rules from GLSL apply console.log(a.xyr, a.xxyyz) // setters are also available a.x = 3 a.yz = [1, 2] console.log([...a]) // cloning works const b = vec(...a) a.x -= 3 b.x += 2 console.log([...a], [...b])