typegpu 0.3.2 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. package/LICENSE.md +1 -1
  2. package/chunk-2CMWQRQC.cjs +2 -0
  3. package/chunk-2CMWQRQC.cjs.map +1 -0
  4. package/chunk-2ZAQFPSX.js +1266 -0
  5. package/chunk-2ZAQFPSX.js.map +1 -0
  6. package/chunk-35UVS2JJ.cjs +591 -0
  7. package/chunk-35UVS2JJ.cjs.map +1 -0
  8. package/chunk-A2QB4MSZ.js +4 -0
  9. package/{chunk-47YH5LQ7.cjs.map → chunk-A2QB4MSZ.js.map} +1 -1
  10. package/chunk-CMYXKKUP.cjs +1266 -0
  11. package/chunk-CMYXKKUP.cjs.map +1 -0
  12. package/chunk-DDEF2Y4S.js +591 -0
  13. package/chunk-DDEF2Y4S.js.map +1 -0
  14. package/chunk-KYBPSQX5.js +2 -0
  15. package/chunk-KYBPSQX5.js.map +1 -0
  16. package/chunk-VRYGOFCW.cjs +4 -0
  17. package/chunk-VRYGOFCW.cjs.map +1 -0
  18. package/data/index.cjs +192 -1
  19. package/data/index.d.cts +2 -2
  20. package/data/index.d.ts +2 -2
  21. package/data/index.js +192 -1
  22. package/{index-CopjPGJg.d.cts → index-CuzbyKXg.d.cts} +5 -3
  23. package/{index-BM7ZTN7E.d.ts → index-FHKuURMs.d.ts} +5 -3
  24. package/index.cjs +4269 -14
  25. package/index.cjs.map +1 -1
  26. package/index.d.cts +80 -11
  27. package/index.d.ts +80 -11
  28. package/index.js +4269 -14
  29. package/index.js.map +1 -1
  30. package/package.json +1 -1
  31. package/std/index.cjs +490 -1
  32. package/std/index.cjs.map +1 -1
  33. package/std/index.d.cts +1 -1
  34. package/std/index.d.ts +1 -1
  35. package/std/index.js +490 -1
  36. package/std/index.js.map +1 -1
  37. package/{vector-BSez01sn.d.cts → vector-CDD2FV2v.d.cts} +19 -3
  38. package/{vector-BSez01sn.d.ts → vector-CDD2FV2v.d.ts} +19 -3
  39. package/chunk-47YH5LQ7.cjs +0 -4
  40. package/chunk-BGPVBIFN.js +0 -4
  41. package/chunk-BGPVBIFN.js.map +0 -1
  42. package/chunk-MCUGRE3S.js +0 -2
  43. package/chunk-MCUGRE3S.js.map +0 -1
  44. package/chunk-OHFPIYFY.cjs +0 -2
  45. package/chunk-OHFPIYFY.cjs.map +0 -1
package/std/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/data/vectorOps.ts","../../src/std/numeric.ts"],"sourcesContent":["import {\n type VecKind,\n vec2f,\n vec2h,\n vec2i,\n vec2u,\n vec3f,\n vec3h,\n vec3i,\n vec3u,\n vec4f,\n vec4h,\n vec4i,\n vec4u,\n} from './vector';\nimport type * as wgsl from './wgslTypes';\n\ntype vBase = { kind: VecKind };\ntype v2 = wgsl.v2f | wgsl.v2h | wgsl.v2i | wgsl.v2u;\ntype v3 = wgsl.v3f | wgsl.v3h | wgsl.v3i | wgsl.v3u;\ntype v4 = wgsl.v4f | wgsl.v4h | wgsl.v4i | wgsl.v4u;\n\nconst lengthVec2 = (v: v2) => Math.sqrt(v.x ** 2 + v.y ** 2);\nconst lengthVec3 = (v: v3) => Math.sqrt(v.x ** 2 + v.y ** 2 + v.z ** 2);\nconst lengthVec4 = (v: v4) =>\n Math.sqrt(v.x ** 2 + v.y ** 2 + v.z ** 2 + v.w ** 2);\n\nconst dotVec2 = (lhs: v2, rhs: v2) => lhs.x * rhs.x + lhs.y * rhs.y;\nconst dotVec3 = (lhs: v3, rhs: v3) =>\n lhs.x * rhs.x + lhs.y * rhs.y + lhs.z * rhs.z;\nconst dotVec4 = (lhs: v4, rhs: v4) =>\n lhs.x * rhs.x + lhs.y * rhs.y + lhs.z * rhs.z + lhs.w * rhs.w;\n\nconst clamp = (value: number, low: number, high: number) =>\n Math.min(Math.max(low, value), high);\n\nexport const VectorOps = {\n abs: {\n vec2f: (v: wgsl.v2f) => vec2f(Math.abs(v.x), Math.abs(v.y)),\n vec2h: (v: wgsl.v2h) => vec2h(Math.abs(v.x), Math.abs(v.y)),\n vec2i: (v: wgsl.v2i) => vec2i(Math.abs(v.x), Math.abs(v.y)),\n vec2u: (v: wgsl.v2u) => vec2u(Math.abs(v.x), Math.abs(v.y)),\n\n vec3f: (v: wgsl.v3f) => vec3f(Math.abs(v.x), Math.abs(v.y), Math.abs(v.z)),\n vec3h: (v: wgsl.v3h) => vec3h(Math.abs(v.x), Math.abs(v.y), Math.abs(v.z)),\n vec3i: (v: wgsl.v3i) => vec3i(Math.abs(v.x), Math.abs(v.y), Math.abs(v.z)),\n vec3u: (v: wgsl.v3u) => vec3u(Math.abs(v.x), Math.abs(v.y), Math.abs(v.z)),\n\n vec4f: (v: wgsl.v4f) =>\n vec4f(Math.abs(v.x), Math.abs(v.y), Math.abs(v.z), Math.abs(v.w)),\n vec4h: (v: wgsl.v4h) =>\n vec4h(Math.abs(v.x), Math.abs(v.y), Math.abs(v.z), Math.abs(v.w)),\n vec4i: (v: wgsl.v4i) =>\n vec4i(Math.abs(v.x), Math.abs(v.y), Math.abs(v.z), Math.abs(v.w)),\n vec4u: (v: wgsl.v4u) =>\n vec4u(Math.abs(v.x), Math.abs(v.y), Math.abs(v.z), Math.abs(v.w)),\n } as Record<VecKind, <T extends vBase>(v: T) => T>,\n\n ceil: {\n vec2f: (v: wgsl.v2f) => vec2f(Math.ceil(v.x), Math.ceil(v.y)),\n vec2h: (v: wgsl.v2h) => vec2h(Math.ceil(v.x), Math.ceil(v.y)),\n vec2i: (v: wgsl.v2i) => vec2i(Math.ceil(v.x), Math.ceil(v.y)),\n vec2u: (v: wgsl.v2u) => vec2u(Math.ceil(v.x), Math.ceil(v.y)),\n\n vec3f: (v: wgsl.v3f) =>\n vec3f(Math.ceil(v.x), Math.ceil(v.y), Math.ceil(v.z)),\n vec3h: (v: wgsl.v3h) =>\n vec3h(Math.ceil(v.x), Math.ceil(v.y), Math.ceil(v.z)),\n vec3i: (v: wgsl.v3i) =>\n vec3i(Math.ceil(v.x), Math.ceil(v.y), Math.ceil(v.z)),\n vec3u: (v: wgsl.v3u) =>\n vec3u(Math.ceil(v.x), Math.ceil(v.y), Math.ceil(v.z)),\n\n vec4f: (v: wgsl.v4f) =>\n vec4f(Math.ceil(v.x), Math.ceil(v.y), Math.ceil(v.z), Math.ceil(v.w)),\n vec4h: (v: wgsl.v4h) =>\n vec4h(Math.ceil(v.x), Math.ceil(v.y), Math.ceil(v.z), Math.ceil(v.w)),\n vec4i: (v: wgsl.v4i) =>\n vec4i(Math.ceil(v.x), Math.ceil(v.y), Math.ceil(v.z), Math.ceil(v.w)),\n vec4u: (v: wgsl.v4u) =>\n vec4u(Math.ceil(v.x), Math.ceil(v.y), Math.ceil(v.z), Math.ceil(v.w)),\n } as Record<VecKind, <T extends vBase>(v: T) => T>,\n\n clamp: {\n vec2f: (v: wgsl.v2f, low: wgsl.v2f, high: wgsl.v2f) =>\n vec2f(clamp(v.x, low.x, high.x), clamp(v.y, low.y, high.y)),\n vec2h: (v: wgsl.v2h, low: wgsl.v2h, high: wgsl.v2h) =>\n vec2h(clamp(v.x, low.x, high.x), clamp(v.y, low.y, high.y)),\n vec2i: (v: wgsl.v2i, low: wgsl.v2i, high: wgsl.v2i) =>\n vec2i(clamp(v.x, low.x, high.x), clamp(v.y, low.y, high.y)),\n vec2u: (v: wgsl.v2u, low: wgsl.v2u, high: wgsl.v2u) =>\n vec2u(clamp(v.x, low.x, high.x), clamp(v.y, low.y, high.y)),\n\n vec3f: (v: wgsl.v3f, low: wgsl.v3f, high: wgsl.v3f) =>\n vec3f(\n clamp(v.x, low.x, high.x),\n clamp(v.y, low.y, high.y),\n clamp(v.z, low.z, high.z),\n ),\n vec3h: (v: wgsl.v3h, low: wgsl.v3h, high: wgsl.v3h) =>\n vec3h(\n clamp(v.x, low.x, high.x),\n clamp(v.y, low.y, high.y),\n clamp(v.z, low.z, high.z),\n ),\n vec3i: (v: wgsl.v3i, low: wgsl.v3i, high: wgsl.v3f) =>\n vec3i(\n clamp(v.x, low.x, high.x),\n clamp(v.y, low.y, high.y),\n clamp(v.z, low.z, high.z),\n ),\n vec3u: (v: wgsl.v3u, low: wgsl.v3u, high: wgsl.v3f) =>\n vec3u(\n clamp(v.x, low.x, high.x),\n clamp(v.y, low.y, high.y),\n clamp(v.z, low.z, high.z),\n ),\n\n vec4f: (v: wgsl.v4f, low: wgsl.v4f, high: wgsl.v4f) =>\n vec4f(\n clamp(v.x, low.x, high.x),\n clamp(v.y, low.y, high.y),\n clamp(v.z, low.z, high.z),\n clamp(v.w, low.w, high.w),\n ),\n vec4h: (v: wgsl.v4h, low: wgsl.v4h, high: wgsl.v4h) =>\n vec4h(\n clamp(v.x, low.x, high.x),\n clamp(v.y, low.y, high.y),\n clamp(v.z, low.z, high.z),\n clamp(v.w, low.w, high.w),\n ),\n vec4i: (v: wgsl.v4i, low: wgsl.v4i, high: wgsl.v4i) =>\n vec4i(\n clamp(v.x, low.x, high.x),\n clamp(v.y, low.y, high.y),\n clamp(v.z, low.z, high.z),\n clamp(v.w, low.w, high.w),\n ),\n vec4u: (v: wgsl.v4u, low: wgsl.v4u, high: wgsl.v4u) =>\n vec4u(\n clamp(v.x, low.x, high.x),\n clamp(v.y, low.y, high.y),\n clamp(v.z, low.z, high.z),\n clamp(v.w, low.w, high.w),\n ),\n } as Record<VecKind, <T extends vBase>(v: T, low: T, high: T) => T>,\n\n length: {\n vec2f: lengthVec2,\n vec2h: lengthVec2,\n vec2i: lengthVec2,\n vec2u: lengthVec2,\n vec3f: lengthVec3,\n vec3h: lengthVec3,\n vec3i: lengthVec3,\n vec3u: lengthVec3,\n vec4f: lengthVec4,\n vec4h: lengthVec4,\n vec4i: lengthVec4,\n vec4u: lengthVec4,\n } as Record<VecKind, (v: vBase) => number>,\n\n add: {\n vec2f: (a: wgsl.v2f, b: wgsl.v2f) => vec2f(a.x + b.x, a.y + b.y),\n vec2h: (a: wgsl.v2h, b: wgsl.v2h) => vec2h(a.x + b.x, a.y + b.y),\n vec2i: (a: wgsl.v2i, b: wgsl.v2i) => vec2i(a.x + b.x, a.y + b.y),\n vec2u: (a: wgsl.v2u, b: wgsl.v2u) => vec2u(a.x + b.x, a.y + b.y),\n\n vec3f: (a: wgsl.v3f, b: wgsl.v3f) => vec3f(a.x + b.x, a.y + b.y, a.z + b.z),\n vec3h: (a: wgsl.v3h, b: wgsl.v3h) => vec3h(a.x + b.x, a.y + b.y, a.z + b.z),\n vec3i: (a: wgsl.v3i, b: wgsl.v3i) => vec3i(a.x + b.x, a.y + b.y, a.z + b.z),\n vec3u: (a: wgsl.v3u, b: wgsl.v3u) => vec3u(a.x + b.x, a.y + b.y, a.z + b.z),\n\n vec4f: (a: wgsl.v4f, b: wgsl.v4f) =>\n vec4f(a.x + b.x, a.y + b.y, a.z + b.z, a.w + b.w),\n vec4h: (a: wgsl.v4h, b: wgsl.v4h) =>\n vec4h(a.x + b.x, a.y + b.y, a.z + b.z, a.w + b.w),\n vec4i: (a: wgsl.v4i, b: wgsl.v4i) =>\n vec4i(a.x + b.x, a.y + b.y, a.z + b.z, a.w + b.w),\n vec4u: (a: wgsl.v4u, b: wgsl.v4u) =>\n vec4u(a.x + b.x, a.y + b.y, a.z + b.z, a.w + b.w),\n } as Record<VecKind, <T extends vBase>(lhs: T, rhs: T) => T>,\n\n sub: {\n vec2f: (a: wgsl.v2f, b: wgsl.v2f) => vec2f(a.x - b.x, a.y - b.y),\n vec2h: (a: wgsl.v2h, b: wgsl.v2h) => vec2h(a.x - b.x, a.y - b.y),\n vec2i: (a: wgsl.v2i, b: wgsl.v2i) => vec2i(a.x - b.x, a.y - b.y),\n vec2u: (a: wgsl.v2u, b: wgsl.v2u) => vec2u(a.x - b.x, a.y - b.y),\n\n vec3f: (a: wgsl.v3f, b: wgsl.v3f) => vec3f(a.x - b.x, a.y - b.y, a.z - b.z),\n vec3h: (a: wgsl.v3h, b: wgsl.v3h) => vec3h(a.x - b.x, a.y - b.y, a.z - b.z),\n vec3i: (a: wgsl.v3i, b: wgsl.v3i) => vec3i(a.x - b.x, a.y - b.y, a.z - b.z),\n vec3u: (a: wgsl.v3u, b: wgsl.v3u) => vec3u(a.x - b.x, a.y - b.y, a.z - b.z),\n\n vec4f: (a: wgsl.v4f, b: wgsl.v4f) =>\n vec4f(a.x - b.x, a.y - b.y, a.z - b.z, a.w - b.w),\n vec4h: (a: wgsl.v4h, b: wgsl.v4h) =>\n vec4h(a.x - b.x, a.y - b.y, a.z - b.z, a.w - b.w),\n vec4i: (a: wgsl.v4i, b: wgsl.v4i) =>\n vec4i(a.x - b.x, a.y - b.y, a.z - b.z, a.w - b.w),\n vec4u: (a: wgsl.v4u, b: wgsl.v4u) =>\n vec4u(a.x - b.x, a.y - b.y, a.z - b.z, a.w - b.w),\n } as Record<VecKind, <T extends vBase>(lhs: T, rhs: T) => T>,\n\n mulSxV: {\n vec2f: (s: number, v: wgsl.v2f) => vec2f(s * v.x, s * v.y),\n vec2h: (s: number, v: wgsl.v2h) => vec2h(s * v.x, s * v.y),\n vec2i: (s: number, v: wgsl.v2i) => vec2i(s * v.x, s * v.y),\n vec2u: (s: number, v: wgsl.v2u) => vec2u(s * v.x, s * v.y),\n\n vec3f: (s: number, v: wgsl.v3f) => vec3f(s * v.x, s * v.y, s * v.z),\n vec3h: (s: number, v: wgsl.v3h) => vec3h(s * v.x, s * v.y, s * v.z),\n vec3i: (s: number, v: wgsl.v3i) => vec3i(s * v.x, s * v.y, s * v.z),\n vec3u: (s: number, v: wgsl.v3u) => vec3u(s * v.x, s * v.y, s * v.z),\n\n vec4f: (s: number, v: wgsl.v4f) =>\n vec4f(s * v.x, s * v.y, s * v.z, s * v.w),\n vec4h: (s: number, v: wgsl.v4h) =>\n vec4h(s * v.x, s * v.y, s * v.z, s * v.w),\n vec4i: (s: number, v: wgsl.v4i) =>\n vec4i(s * v.x, s * v.y, s * v.z, s * v.w),\n vec4u: (s: number, v: wgsl.v4u) =>\n vec4u(s * v.x, s * v.y, s * v.z, s * v.w),\n } as Record<VecKind, <T extends vBase>(s: number, v: T) => T>,\n\n mulVxV: {\n vec2f: (a: wgsl.v2f, b: wgsl.v2f) => vec2f(a.x * b.x, a.y * b.y),\n vec2h: (a: wgsl.v2h, b: wgsl.v2h) => vec2h(a.x * b.x, a.y * b.y),\n vec2i: (a: wgsl.v2i, b: wgsl.v2i) => vec2i(a.x * b.x, a.y * b.y),\n vec2u: (a: wgsl.v2u, b: wgsl.v2u) => vec2u(a.x * b.x, a.y * b.y),\n\n vec3f: (a: wgsl.v3f, b: wgsl.v3f) => vec3f(a.x * b.x, a.y * b.y, a.z * b.z),\n vec3h: (a: wgsl.v3h, b: wgsl.v3h) => vec3h(a.x * b.x, a.y * b.y, a.z * b.z),\n vec3i: (a: wgsl.v3i, b: wgsl.v3i) => vec3i(a.x * b.x, a.y * b.y, a.z * b.z),\n vec3u: (a: wgsl.v3u, b: wgsl.v3u) => vec3u(a.x * b.x, a.y * b.y, a.z * b.z),\n\n vec4f: (a: wgsl.v4f, b: wgsl.v4f) =>\n vec4f(a.x * b.x, a.y * b.y, a.z * b.z, a.w * b.w),\n vec4h: (a: wgsl.v4h, b: wgsl.v4h) =>\n vec4h(a.x * b.x, a.y * b.y, a.z * b.z, a.w * b.w),\n vec4i: (a: wgsl.v4i, b: wgsl.v4i) =>\n vec4i(a.x * b.x, a.y * b.y, a.z * b.z, a.w * b.w),\n vec4u: (a: wgsl.v4u, b: wgsl.v4u) =>\n vec4u(a.x * b.x, a.y * b.y, a.z * b.z, a.w * b.w),\n } as Record<VecKind, <T extends vBase>(lhs: T, rhs: T) => T>,\n\n dot: {\n vec2f: dotVec2,\n vec2h: dotVec2,\n vec2i: dotVec2,\n vec2u: dotVec2,\n vec3f: dotVec3,\n vec3h: dotVec3,\n vec3i: dotVec3,\n vec3u: dotVec3,\n vec4f: dotVec4,\n vec4h: dotVec4,\n vec4i: dotVec4,\n vec4u: dotVec4,\n } as Record<VecKind, <T extends vBase>(lhs: T, rhs: T) => number>,\n\n normalize: {\n vec2f: (v: wgsl.v2f) => {\n const len = lengthVec2(v);\n return vec2f(v.x / len, v.y / len);\n },\n vec2h: (v: wgsl.v2h) => {\n const len = lengthVec2(v);\n return vec2h(v.x / len, v.y / len);\n },\n vec2i: (v: wgsl.v2i) => {\n const len = lengthVec2(v);\n return vec2i(v.x / len, v.y / len);\n },\n vec2u: (v: wgsl.v2u) => {\n const len = lengthVec2(v);\n return vec2u(v.x / len, v.y / len);\n },\n\n vec3f: (v: wgsl.v3f) => {\n const len = lengthVec3(v);\n return vec3f(v.x / len, v.y / len, v.z / len);\n },\n vec3h: (v: wgsl.v3h) => {\n const len = lengthVec3(v);\n return vec3h(v.x / len, v.y / len, v.z / len);\n },\n vec3i: (v: wgsl.v3i) => {\n const len = lengthVec3(v);\n return vec3i(v.x / len, v.y / len, v.z / len);\n },\n vec3u: (v: wgsl.v3u) => {\n const len = lengthVec3(v);\n return vec3u(v.x / len, v.y / len, v.z / len);\n },\n\n vec4f: (v: wgsl.v4f) => {\n const len = lengthVec4(v);\n return vec4f(v.x / len, v.y / len, v.z / len, v.w / len);\n },\n vec4h: (v: wgsl.v4h) => {\n const len = lengthVec4(v);\n return vec4h(v.x / len, v.y / len, v.z / len, v.w / len);\n },\n vec4i: (v: wgsl.v4i) => {\n const len = lengthVec4(v);\n return vec4i(v.x / len, v.y / len, v.z / len, v.w / len);\n },\n vec4u: (v: wgsl.v4u) => {\n const len = lengthVec4(v);\n return vec4u(v.x / len, v.y / len, v.z / len, v.w / len);\n },\n } as Record<VecKind, <T extends vBase>(v: T) => T>,\n\n cross: {\n vec3f: (a: wgsl.v3f, b: wgsl.v3f) => {\n return vec3f(\n a.y * b.z - a.z * b.y,\n a.z * b.x - a.x * b.z,\n a.x * b.y - a.y * b.x,\n );\n },\n vec3h: (a: wgsl.v3h, b: wgsl.v3h) => {\n return vec3h(\n a.y * b.z - a.z * b.y,\n a.z * b.x - a.x * b.z,\n a.x * b.y - a.y * b.x,\n );\n },\n vec3i: (a: wgsl.v3i, b: wgsl.v3i) => {\n return vec3i(\n a.y * b.z - a.z * b.y,\n a.z * b.x - a.x * b.z,\n a.x * b.y - a.y * b.x,\n );\n },\n vec3u: (a: wgsl.v3u, b: wgsl.v3u) => {\n return vec3u(\n a.y * b.z - a.z * b.y,\n a.z * b.x - a.x * b.z,\n a.x * b.y - a.y * b.x,\n );\n },\n } as Record<\n 'vec3f' | 'vec3i' | 'vec3u',\n <T extends wgsl.v3f | wgsl.v3i | wgsl.v3u>(a: T, b: T) => T\n >,\n\n floor: {\n vec2f: (v: wgsl.v2f) => vec2f(Math.floor(v.x), Math.floor(v.y)),\n vec2h: (v: wgsl.v2h) => vec2h(Math.floor(v.x), Math.floor(v.y)),\n vec2i: (v: wgsl.v2i) => vec2i(Math.floor(v.x), Math.floor(v.y)),\n vec2u: (v: wgsl.v2u) => vec2u(Math.floor(v.x), Math.floor(v.y)),\n\n vec3f: (v: wgsl.v3f) =>\n vec3f(Math.floor(v.x), Math.floor(v.y), Math.floor(v.z)),\n vec3h: (v: wgsl.v3h) =>\n vec3h(Math.floor(v.x), Math.floor(v.y), Math.floor(v.z)),\n vec3i: (v: wgsl.v3i) =>\n vec3i(Math.floor(v.x), Math.floor(v.y), Math.floor(v.z)),\n vec3u: (v: wgsl.v3u) =>\n vec3u(Math.floor(v.x), Math.floor(v.y), Math.floor(v.z)),\n\n vec4f: (v: wgsl.v4f) =>\n vec4f(Math.floor(v.x), Math.floor(v.y), Math.floor(v.z), Math.floor(v.w)),\n vec4h: (v: wgsl.v4h) =>\n vec4h(Math.floor(v.x), Math.floor(v.y), Math.floor(v.z), Math.floor(v.w)),\n vec4i: (v: wgsl.v4i) =>\n vec4i(Math.floor(v.x), Math.floor(v.y), Math.floor(v.z), Math.floor(v.w)),\n vec4u: (v: wgsl.v4u) =>\n vec4u(Math.floor(v.x), Math.floor(v.y), Math.floor(v.z), Math.floor(v.w)),\n } as Record<VecKind, <T extends vBase>(v: T) => T>,\n\n max: {\n vec2f: (a: wgsl.v2f, b: wgsl.v2f) =>\n vec2f(Math.max(a.x, b.x), Math.max(a.y, b.y)),\n vec2h: (a: wgsl.v2h, b: wgsl.v2h) =>\n vec2h(Math.max(a.x, b.x), Math.max(a.y, b.y)),\n vec2i: (a: wgsl.v2i, b: wgsl.v2i) =>\n vec2i(Math.max(a.x, b.x), Math.max(a.y, b.y)),\n vec2u: (a: wgsl.v2u, b: wgsl.v2u) =>\n vec2u(Math.max(a.x, b.x), Math.max(a.y, b.y)),\n\n vec3f: (a: wgsl.v3f, b: wgsl.v3f) =>\n vec3f(Math.max(a.x, b.x), Math.max(a.y, b.y), Math.max(a.z, b.z)),\n vec3h: (a: wgsl.v3h, b: wgsl.v3h) =>\n vec3h(Math.max(a.x, b.x), Math.max(a.y, b.y), Math.max(a.z, b.z)),\n vec3i: (a: wgsl.v3i, b: wgsl.v3i) =>\n vec3i(Math.max(a.x, b.x), Math.max(a.y, b.y), Math.max(a.z, b.z)),\n vec3u: (a: wgsl.v3u, b: wgsl.v3u) =>\n vec3u(Math.max(a.x, b.x), Math.max(a.y, b.y), Math.max(a.z, b.z)),\n\n vec4f: (a: wgsl.v4f, b: wgsl.v4f) =>\n vec4f(\n Math.max(a.x, b.x),\n Math.max(a.y, b.y),\n Math.max(a.z, b.z),\n Math.max(a.w, b.w),\n ),\n vec4h: (a: wgsl.v4h, b: wgsl.v4h) =>\n vec4h(\n Math.max(a.x, b.x),\n Math.max(a.y, b.y),\n Math.max(a.z, b.z),\n Math.max(a.w, b.w),\n ),\n vec4i: (a: wgsl.v4i, b: wgsl.v4i) =>\n vec4i(\n Math.max(a.x, b.x),\n Math.max(a.y, b.y),\n Math.max(a.z, b.z),\n Math.max(a.w, b.w),\n ),\n vec4u: (a: wgsl.v4u, b: wgsl.v4u) =>\n vec4u(\n Math.max(a.x, b.x),\n Math.max(a.y, b.y),\n Math.max(a.z, b.z),\n Math.max(a.w, b.w),\n ),\n } as Record<VecKind, <T extends vBase>(a: T, b: T) => T>,\n\n min: {\n vec2f: (a: wgsl.v2f, b: wgsl.v2f) =>\n vec2f(Math.min(a.x, b.x), Math.min(a.y, b.y)),\n vec2h: (a: wgsl.v2h, b: wgsl.v2h) =>\n vec2h(Math.min(a.x, b.x), Math.min(a.y, b.y)),\n vec2i: (a: wgsl.v2i, b: wgsl.v2i) =>\n vec2i(Math.min(a.x, b.x), Math.min(a.y, b.y)),\n vec2u: (a: wgsl.v2u, b: wgsl.v2u) =>\n vec2u(Math.min(a.x, b.x), Math.min(a.y, b.y)),\n\n vec3f: (a: wgsl.v3f, b: wgsl.v3f) =>\n vec3f(Math.min(a.x, b.x), Math.min(a.y, b.y), Math.min(a.z, b.z)),\n vec3h: (a: wgsl.v3h, b: wgsl.v3h) =>\n vec3h(Math.min(a.x, b.x), Math.min(a.y, b.y), Math.min(a.z, b.z)),\n vec3i: (a: wgsl.v3i, b: wgsl.v3i) =>\n vec3i(Math.min(a.x, b.x), Math.min(a.y, b.y), Math.min(a.z, b.z)),\n vec3u: (a: wgsl.v3u, b: wgsl.v3u) =>\n vec3u(Math.min(a.x, b.x), Math.min(a.y, b.y), Math.min(a.z, b.z)),\n\n vec4f: (a: wgsl.v4f, b: wgsl.v4f) =>\n vec4f(\n Math.min(a.x, b.x),\n Math.min(a.y, b.y),\n Math.min(a.z, b.z),\n Math.min(a.w, b.w),\n ),\n vec4h: (a: wgsl.v4h, b: wgsl.v4h) =>\n vec4h(\n Math.min(a.x, b.x),\n Math.min(a.y, b.y),\n Math.min(a.z, b.z),\n Math.min(a.w, b.w),\n ),\n vec4i: (a: wgsl.v4i, b: wgsl.v4i) =>\n vec4i(\n Math.min(a.x, b.x),\n Math.min(a.y, b.y),\n Math.min(a.z, b.z),\n Math.min(a.w, b.w),\n ),\n vec4u: (a: wgsl.v4u, b: wgsl.v4u) =>\n vec4u(\n Math.min(a.x, b.x),\n Math.min(a.y, b.y),\n Math.min(a.z, b.z),\n Math.min(a.w, b.w),\n ),\n } as Record<VecKind, <T extends vBase>(a: T, b: T) => T>,\n};\n","import type { VecKind } from '../data/vector';\nimport { VectorOps } from '../data/vectorOps';\nimport type { v3f, v3i, v3u } from '../data/wgslTypes';\nimport { inGPUMode } from '../gpuMode';\n\ntype vBase = { kind: VecKind };\n\nexport function add<T extends vBase>(lhs: T, rhs: T): T {\n if (inGPUMode()) {\n return `(${lhs} + ${rhs})` as unknown as T;\n }\n return VectorOps.add[lhs.kind](lhs, rhs);\n}\n\nexport function sub<T extends vBase>(lhs: T, rhs: T): T {\n if (inGPUMode()) {\n return `(${lhs} - ${rhs})` as unknown as T;\n }\n return VectorOps.sub[lhs.kind](lhs, rhs);\n}\n\nexport function mul<T extends vBase>(s: number | T, v: T): T {\n if (inGPUMode()) {\n return `(${s} * ${v})` as unknown as T;\n }\n if (typeof s === 'number') {\n return VectorOps.mulSxV[v.kind](s, v);\n }\n return VectorOps.mulVxV[v.kind](s, v);\n}\n\nexport function abs<T extends vBase | number>(value: T): T {\n if (inGPUMode()) {\n return `abs(${value})` as unknown as T;\n }\n if (typeof value === 'number') {\n return Math.abs(value) as T;\n }\n return VectorOps.abs[value.kind](value) as T;\n}\n\n/**\n * @privateRemarks\n * https://www.w3.org/TR/WGSL/#ceil-builtin\n */\nexport function ceil<T extends vBase | number>(value: T): T {\n if (inGPUMode()) {\n return `ceil(${value})` as unknown as T;\n }\n if (typeof value === 'number') {\n return Math.ceil(value) as T;\n }\n return VectorOps.ceil[value.kind](value) as T;\n}\n\n/**\n * @privateRemarks\n * https://www.w3.org/TR/WGSL/#clamp\n */\nexport function clamp<T extends vBase | number>(value: T, low: T, high: T): T {\n if (inGPUMode()) {\n return `clamp(${value}, ${low}, ${high})` as unknown as T;\n }\n if (typeof value === 'number') {\n return Math.min(Math.max(low as number, value), high as number) as T;\n }\n return VectorOps.clamp[value.kind](value, low as vBase, high as vBase) as T;\n}\n\n// TODO: Accept vectors into `cos`\n/**\n * @privateRemarks\n * https://www.w3.org/TR/WGSL/#cos-builtin\n */\nexport function cos(radians: number): number {\n if (inGPUMode()) {\n return `cos(${radians})` as unknown as number;\n }\n return Math.cos(radians);\n}\n\n/**\n * @privateRemarks\n * https://www.w3.org/TR/WGSL/#cross-builtin\n */\nexport function cross<T extends v3f | v3i | v3u>(a: T, b: T): T {\n if (inGPUMode()) {\n return `cross(${a}, ${b})` as unknown as T;\n }\n return VectorOps.cross[a.kind](a, b);\n}\n\n/**\n * @privateRemarks\n * https://www.w3.org/TR/WGSL/#dot-builtin\n */\nexport function dot<T extends vBase>(lhs: T, rhs: T): number {\n if (inGPUMode()) {\n return `dot(${lhs}, ${rhs})` as unknown as number;\n }\n return VectorOps.dot[lhs.kind](lhs, rhs);\n}\n\nexport function normalize<T extends vBase>(v: T): T {\n if (inGPUMode()) {\n return `normalize(${v})` as unknown as T;\n }\n return VectorOps.normalize[v.kind](v);\n}\n\n/**\n * @privateRemarks\n * https://www.w3.org/TR/WGSL/#floor-builtin\n */\nexport function floor<T extends vBase | number>(value: T): T {\n if (inGPUMode()) {\n return `floor(${value})` as unknown as T;\n }\n if (typeof value === 'number') {\n return Math.floor(value) as T;\n }\n return VectorOps.floor[value.kind](value) as T;\n}\n\nexport function fract(a: number): number {\n if (inGPUMode()) {\n return `fract(${a})` as unknown as number;\n }\n return a - Math.floor(a);\n}\n\n/**\n * @privateRemarks\n * https://www.w3.org/TR/WGSL/#length-builtin\n */\nexport function length<T extends vBase | number>(value: T): number {\n if (inGPUMode()) {\n return `length(${value})` as unknown as number;\n }\n if (typeof value === 'number') {\n return Math.abs(value);\n }\n return VectorOps.length[value.kind](value);\n}\n\n/**\n * @privateRemarks\n * https://www.w3.org/TR/WGSL/#max-float-builtin\n */\nexport function max<T extends vBase | number>(a: T, b: T): T {\n if (inGPUMode()) {\n return `max(${a}, ${b})` as unknown as T;\n }\n if (typeof a === 'number') {\n return Math.max(a, b as number) as T;\n }\n return VectorOps.max[a.kind](a, b as vBase) as T;\n}\n\n/**\n * @privateRemarks\n * https://www.w3.org/TR/WGSL/#min-float-builtin\n */\nexport function min<T extends vBase | number>(a: T, b: T): T {\n if (inGPUMode()) {\n return `min(${a}, ${b})` as unknown as T;\n }\n if (typeof a === 'number') {\n return Math.min(a, b as number) as T;\n }\n return VectorOps.min[a.kind](a, b as vBase) as T;\n}\n\nexport function sin(radians: number): number {\n if (inGPUMode()) {\n return `sin(${radians})` as unknown as number;\n }\n return Math.sin(radians);\n}\n"],"mappings":"6HAsBA,IAAMA,EAAcC,GAAU,KAAK,KAAKA,EAAE,GAAK,EAAIA,EAAE,GAAK,CAAC,EACrDC,EAAcD,GAAU,KAAK,KAAKA,EAAE,GAAK,EAAIA,EAAE,GAAK,EAAIA,EAAE,GAAK,CAAC,EAChEE,EAAcF,GAClB,KAAK,KAAKA,EAAE,GAAK,EAAIA,EAAE,GAAK,EAAIA,EAAE,GAAK,EAAIA,EAAE,GAAK,CAAC,EAE/CG,EAAU,CAACC,EAASC,IAAYD,EAAI,EAAIC,EAAI,EAAID,EAAI,EAAIC,EAAI,EAC5DC,EAAU,CAACF,EAASC,IACxBD,EAAI,EAAIC,EAAI,EAAID,EAAI,EAAIC,EAAI,EAAID,EAAI,EAAIC,EAAI,EACxCE,EAAU,CAACH,EAASC,IACxBD,EAAI,EAAIC,EAAI,EAAID,EAAI,EAAIC,EAAI,EAAID,EAAI,EAAIC,EAAI,EAAID,EAAI,EAAIC,EAAI,EAExDG,EAAQ,CAACC,EAAeC,EAAaC,IACzC,KAAK,IAAI,KAAK,IAAID,EAAKD,CAAK,EAAGE,CAAI,EAExBC,EAAY,CACvB,IAAK,CACH,MAAQZ,GAAgBa,EAAM,KAAK,IAAIb,EAAE,CAAC,EAAG,KAAK,IAAIA,EAAE,CAAC,CAAC,EAC1D,MAAQA,GAAgBc,EAAM,KAAK,IAAId,EAAE,CAAC,EAAG,KAAK,IAAIA,EAAE,CAAC,CAAC,EAC1D,MAAQA,GAAgBe,EAAM,KAAK,IAAIf,EAAE,CAAC,EAAG,KAAK,IAAIA,EAAE,CAAC,CAAC,EAC1D,MAAQA,GAAgBgB,EAAM,KAAK,IAAIhB,EAAE,CAAC,EAAG,KAAK,IAAIA,EAAE,CAAC,CAAC,EAE1D,MAAQA,GAAgBiB,EAAM,KAAK,IAAIjB,EAAE,CAAC,EAAG,KAAK,IAAIA,EAAE,CAAC,EAAG,KAAK,IAAIA,EAAE,CAAC,CAAC,EACzE,MAAQA,GAAgBkB,EAAM,KAAK,IAAIlB,EAAE,CAAC,EAAG,KAAK,IAAIA,EAAE,CAAC,EAAG,KAAK,IAAIA,EAAE,CAAC,CAAC,EACzE,MAAQA,GAAgBmB,EAAM,KAAK,IAAInB,EAAE,CAAC,EAAG,KAAK,IAAIA,EAAE,CAAC,EAAG,KAAK,IAAIA,EAAE,CAAC,CAAC,EACzE,MAAQA,GAAgBoB,EAAM,KAAK,IAAIpB,EAAE,CAAC,EAAG,KAAK,IAAIA,EAAE,CAAC,EAAG,KAAK,IAAIA,EAAE,CAAC,CAAC,EAEzE,MAAQA,GACNqB,EAAM,KAAK,IAAIrB,EAAE,CAAC,EAAG,KAAK,IAAIA,EAAE,CAAC,EAAG,KAAK,IAAIA,EAAE,CAAC,EAAG,KAAK,IAAIA,EAAE,CAAC,CAAC,EAClE,MAAQA,GACNsB,EAAM,KAAK,IAAItB,EAAE,CAAC,EAAG,KAAK,IAAIA,EAAE,CAAC,EAAG,KAAK,IAAIA,EAAE,CAAC,EAAG,KAAK,IAAIA,EAAE,CAAC,CAAC,EAClE,MAAQA,GACNuB,EAAM,KAAK,IAAIvB,EAAE,CAAC,EAAG,KAAK,IAAIA,EAAE,CAAC,EAAG,KAAK,IAAIA,EAAE,CAAC,EAAG,KAAK,IAAIA,EAAE,CAAC,CAAC,EAClE,MAAQA,GACNwB,EAAM,KAAK,IAAIxB,EAAE,CAAC,EAAG,KAAK,IAAIA,EAAE,CAAC,EAAG,KAAK,IAAIA,EAAE,CAAC,EAAG,KAAK,IAAIA,EAAE,CAAC,CAAC,CACpE,EAEA,KAAM,CACJ,MAAQA,GAAgBa,EAAM,KAAK,KAAKb,EAAE,CAAC,EAAG,KAAK,KAAKA,EAAE,CAAC,CAAC,EAC5D,MAAQA,GAAgBc,EAAM,KAAK,KAAKd,EAAE,CAAC,EAAG,KAAK,KAAKA,EAAE,CAAC,CAAC,EAC5D,MAAQA,GAAgBe,EAAM,KAAK,KAAKf,EAAE,CAAC,EAAG,KAAK,KAAKA,EAAE,CAAC,CAAC,EAC5D,MAAQA,GAAgBgB,EAAM,KAAK,KAAKhB,EAAE,CAAC,EAAG,KAAK,KAAKA,EAAE,CAAC,CAAC,EAE5D,MAAQA,GACNiB,EAAM,KAAK,KAAKjB,EAAE,CAAC,EAAG,KAAK,KAAKA,EAAE,CAAC,EAAG,KAAK,KAAKA,EAAE,CAAC,CAAC,EACtD,MAAQA,GACNkB,EAAM,KAAK,KAAKlB,EAAE,CAAC,EAAG,KAAK,KAAKA,EAAE,CAAC,EAAG,KAAK,KAAKA,EAAE,CAAC,CAAC,EACtD,MAAQA,GACNmB,EAAM,KAAK,KAAKnB,EAAE,CAAC,EAAG,KAAK,KAAKA,EAAE,CAAC,EAAG,KAAK,KAAKA,EAAE,CAAC,CAAC,EACtD,MAAQA,GACNoB,EAAM,KAAK,KAAKpB,EAAE,CAAC,EAAG,KAAK,KAAKA,EAAE,CAAC,EAAG,KAAK,KAAKA,EAAE,CAAC,CAAC,EAEtD,MAAQA,GACNqB,EAAM,KAAK,KAAKrB,EAAE,CAAC,EAAG,KAAK,KAAKA,EAAE,CAAC,EAAG,KAAK,KAAKA,EAAE,CAAC,EAAG,KAAK,KAAKA,EAAE,CAAC,CAAC,EACtE,MAAQA,GACNsB,EAAM,KAAK,KAAKtB,EAAE,CAAC,EAAG,KAAK,KAAKA,EAAE,CAAC,EAAG,KAAK,KAAKA,EAAE,CAAC,EAAG,KAAK,KAAKA,EAAE,CAAC,CAAC,EACtE,MAAQA,GACNuB,EAAM,KAAK,KAAKvB,EAAE,CAAC,EAAG,KAAK,KAAKA,EAAE,CAAC,EAAG,KAAK,KAAKA,EAAE,CAAC,EAAG,KAAK,KAAKA,EAAE,CAAC,CAAC,EACtE,MAAQA,GACNwB,EAAM,KAAK,KAAKxB,EAAE,CAAC,EAAG,KAAK,KAAKA,EAAE,CAAC,EAAG,KAAK,KAAKA,EAAE,CAAC,EAAG,KAAK,KAAKA,EAAE,CAAC,CAAC,CACxE,EAEA,MAAO,CACL,MAAO,CAACA,EAAaU,EAAeC,IAClCE,EAAML,EAAMR,EAAE,EAAGU,EAAI,EAAGC,EAAK,CAAC,EAAGH,EAAMR,EAAE,EAAGU,EAAI,EAAGC,EAAK,CAAC,CAAC,EAC5D,MAAO,CAACX,EAAaU,EAAeC,IAClCG,EAAMN,EAAMR,EAAE,EAAGU,EAAI,EAAGC,EAAK,CAAC,EAAGH,EAAMR,EAAE,EAAGU,EAAI,EAAGC,EAAK,CAAC,CAAC,EAC5D,MAAO,CAACX,EAAaU,EAAeC,IAClCI,EAAMP,EAAMR,EAAE,EAAGU,EAAI,EAAGC,EAAK,CAAC,EAAGH,EAAMR,EAAE,EAAGU,EAAI,EAAGC,EAAK,CAAC,CAAC,EAC5D,MAAO,CAACX,EAAaU,EAAeC,IAClCK,EAAMR,EAAMR,EAAE,EAAGU,EAAI,EAAGC,EAAK,CAAC,EAAGH,EAAMR,EAAE,EAAGU,EAAI,EAAGC,EAAK,CAAC,CAAC,EAE5D,MAAO,CAACX,EAAaU,EAAeC,IAClCM,EACET,EAAMR,EAAE,EAAGU,EAAI,EAAGC,EAAK,CAAC,EACxBH,EAAMR,EAAE,EAAGU,EAAI,EAAGC,EAAK,CAAC,EACxBH,EAAMR,EAAE,EAAGU,EAAI,EAAGC,EAAK,CAAC,CAC1B,EACF,MAAO,CAACX,EAAaU,EAAeC,IAClCO,EACEV,EAAMR,EAAE,EAAGU,EAAI,EAAGC,EAAK,CAAC,EACxBH,EAAMR,EAAE,EAAGU,EAAI,EAAGC,EAAK,CAAC,EACxBH,EAAMR,EAAE,EAAGU,EAAI,EAAGC,EAAK,CAAC,CAC1B,EACF,MAAO,CAACX,EAAaU,EAAeC,IAClCQ,EACEX,EAAMR,EAAE,EAAGU,EAAI,EAAGC,EAAK,CAAC,EACxBH,EAAMR,EAAE,EAAGU,EAAI,EAAGC,EAAK,CAAC,EACxBH,EAAMR,EAAE,EAAGU,EAAI,EAAGC,EAAK,CAAC,CAC1B,EACF,MAAO,CAACX,EAAaU,EAAeC,IAClCS,EACEZ,EAAMR,EAAE,EAAGU,EAAI,EAAGC,EAAK,CAAC,EACxBH,EAAMR,EAAE,EAAGU,EAAI,EAAGC,EAAK,CAAC,EACxBH,EAAMR,EAAE,EAAGU,EAAI,EAAGC,EAAK,CAAC,CAC1B,EAEF,MAAO,CAACX,EAAaU,EAAeC,IAClCU,EACEb,EAAMR,EAAE,EAAGU,EAAI,EAAGC,EAAK,CAAC,EACxBH,EAAMR,EAAE,EAAGU,EAAI,EAAGC,EAAK,CAAC,EACxBH,EAAMR,EAAE,EAAGU,EAAI,EAAGC,EAAK,CAAC,EACxBH,EAAMR,EAAE,EAAGU,EAAI,EAAGC,EAAK,CAAC,CAC1B,EACF,MAAO,CAACX,EAAaU,EAAeC,IAClCW,EACEd,EAAMR,EAAE,EAAGU,EAAI,EAAGC,EAAK,CAAC,EACxBH,EAAMR,EAAE,EAAGU,EAAI,EAAGC,EAAK,CAAC,EACxBH,EAAMR,EAAE,EAAGU,EAAI,EAAGC,EAAK,CAAC,EACxBH,EAAMR,EAAE,EAAGU,EAAI,EAAGC,EAAK,CAAC,CAC1B,EACF,MAAO,CAACX,EAAaU,EAAeC,IAClCY,EACEf,EAAMR,EAAE,EAAGU,EAAI,EAAGC,EAAK,CAAC,EACxBH,EAAMR,EAAE,EAAGU,EAAI,EAAGC,EAAK,CAAC,EACxBH,EAAMR,EAAE,EAAGU,EAAI,EAAGC,EAAK,CAAC,EACxBH,EAAMR,EAAE,EAAGU,EAAI,EAAGC,EAAK,CAAC,CAC1B,EACF,MAAO,CAACX,EAAaU,EAAeC,IAClCa,EACEhB,EAAMR,EAAE,EAAGU,EAAI,EAAGC,EAAK,CAAC,EACxBH,EAAMR,EAAE,EAAGU,EAAI,EAAGC,EAAK,CAAC,EACxBH,EAAMR,EAAE,EAAGU,EAAI,EAAGC,EAAK,CAAC,EACxBH,EAAMR,EAAE,EAAGU,EAAI,EAAGC,EAAK,CAAC,CAC1B,CACJ,EAEA,OAAQ,CACN,MAAOZ,EACP,MAAOA,EACP,MAAOA,EACP,MAAOA,EACP,MAAOE,EACP,MAAOA,EACP,MAAOA,EACP,MAAOA,EACP,MAAOC,EACP,MAAOA,EACP,MAAOA,EACP,MAAOA,CACT,EAEA,IAAK,CACH,MAAO,CAACuB,EAAaC,IAAgBb,EAAMY,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,CAAC,EAC/D,MAAO,CAACD,EAAaC,IAAgBZ,EAAMW,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,CAAC,EAC/D,MAAO,CAACD,EAAaC,IAAgBX,EAAMU,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,CAAC,EAC/D,MAAO,CAACD,EAAaC,IAAgBV,EAAMS,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,CAAC,EAE/D,MAAO,CAACD,EAAaC,IAAgBT,EAAMQ,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,CAAC,EAC1E,MAAO,CAACD,EAAaC,IAAgBR,EAAMO,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,CAAC,EAC1E,MAAO,CAACD,EAAaC,IAAgBP,EAAMM,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,CAAC,EAC1E,MAAO,CAACD,EAAaC,IAAgBN,EAAMK,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,CAAC,EAE1E,MAAO,CAACD,EAAaC,IACnBL,EAAMI,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,CAAC,EAClD,MAAO,CAACD,EAAaC,IACnBJ,EAAMG,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,CAAC,EAClD,MAAO,CAACD,EAAaC,IACnBH,EAAME,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,CAAC,EAClD,MAAO,CAACD,EAAaC,IACnBF,EAAMC,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,CAAC,CACpD,EAEA,IAAK,CACH,MAAO,CAACD,EAAaC,IAAgBb,EAAMY,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,CAAC,EAC/D,MAAO,CAACD,EAAaC,IAAgBZ,EAAMW,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,CAAC,EAC/D,MAAO,CAACD,EAAaC,IAAgBX,EAAMU,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,CAAC,EAC/D,MAAO,CAACD,EAAaC,IAAgBV,EAAMS,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,CAAC,EAE/D,MAAO,CAACD,EAAaC,IAAgBT,EAAMQ,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,CAAC,EAC1E,MAAO,CAACD,EAAaC,IAAgBR,EAAMO,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,CAAC,EAC1E,MAAO,CAACD,EAAaC,IAAgBP,EAAMM,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,CAAC,EAC1E,MAAO,CAACD,EAAaC,IAAgBN,EAAMK,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,CAAC,EAE1E,MAAO,CAACD,EAAaC,IACnBL,EAAMI,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,CAAC,EAClD,MAAO,CAACD,EAAaC,IACnBJ,EAAMG,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,CAAC,EAClD,MAAO,CAACD,EAAaC,IACnBH,EAAME,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,CAAC,EAClD,MAAO,CAACD,EAAaC,IACnBF,EAAMC,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,CAAC,CACpD,EAEA,OAAQ,CACN,MAAO,CAACC,EAAW3B,IAAgBa,EAAMc,EAAI3B,EAAE,EAAG2B,EAAI3B,EAAE,CAAC,EACzD,MAAO,CAAC2B,EAAW3B,IAAgBc,EAAMa,EAAI3B,EAAE,EAAG2B,EAAI3B,EAAE,CAAC,EACzD,MAAO,CAAC2B,EAAW3B,IAAgBe,EAAMY,EAAI3B,EAAE,EAAG2B,EAAI3B,EAAE,CAAC,EACzD,MAAO,CAAC2B,EAAW3B,IAAgBgB,EAAMW,EAAI3B,EAAE,EAAG2B,EAAI3B,EAAE,CAAC,EAEzD,MAAO,CAAC2B,EAAW3B,IAAgBiB,EAAMU,EAAI3B,EAAE,EAAG2B,EAAI3B,EAAE,EAAG2B,EAAI3B,EAAE,CAAC,EAClE,MAAO,CAAC2B,EAAW3B,IAAgBkB,EAAMS,EAAI3B,EAAE,EAAG2B,EAAI3B,EAAE,EAAG2B,EAAI3B,EAAE,CAAC,EAClE,MAAO,CAAC2B,EAAW3B,IAAgBmB,EAAMQ,EAAI3B,EAAE,EAAG2B,EAAI3B,EAAE,EAAG2B,EAAI3B,EAAE,CAAC,EAClE,MAAO,CAAC2B,EAAW3B,IAAgBoB,EAAMO,EAAI3B,EAAE,EAAG2B,EAAI3B,EAAE,EAAG2B,EAAI3B,EAAE,CAAC,EAElE,MAAO,CAAC2B,EAAW3B,IACjBqB,EAAMM,EAAI3B,EAAE,EAAG2B,EAAI3B,EAAE,EAAG2B,EAAI3B,EAAE,EAAG2B,EAAI3B,EAAE,CAAC,EAC1C,MAAO,CAAC2B,EAAW3B,IACjBsB,EAAMK,EAAI3B,EAAE,EAAG2B,EAAI3B,EAAE,EAAG2B,EAAI3B,EAAE,EAAG2B,EAAI3B,EAAE,CAAC,EAC1C,MAAO,CAAC2B,EAAW3B,IACjBuB,EAAMI,EAAI3B,EAAE,EAAG2B,EAAI3B,EAAE,EAAG2B,EAAI3B,EAAE,EAAG2B,EAAI3B,EAAE,CAAC,EAC1C,MAAO,CAAC2B,EAAW3B,IACjBwB,EAAMG,EAAI3B,EAAE,EAAG2B,EAAI3B,EAAE,EAAG2B,EAAI3B,EAAE,EAAG2B,EAAI3B,EAAE,CAAC,CAC5C,EAEA,OAAQ,CACN,MAAO,CAACyB,EAAaC,IAAgBb,EAAMY,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,CAAC,EAC/D,MAAO,CAACD,EAAaC,IAAgBZ,EAAMW,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,CAAC,EAC/D,MAAO,CAACD,EAAaC,IAAgBX,EAAMU,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,CAAC,EAC/D,MAAO,CAACD,EAAaC,IAAgBV,EAAMS,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,CAAC,EAE/D,MAAO,CAACD,EAAaC,IAAgBT,EAAMQ,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,CAAC,EAC1E,MAAO,CAACD,EAAaC,IAAgBR,EAAMO,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,CAAC,EAC1E,MAAO,CAACD,EAAaC,IAAgBP,EAAMM,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,CAAC,EAC1E,MAAO,CAACD,EAAaC,IAAgBN,EAAMK,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,CAAC,EAE1E,MAAO,CAACD,EAAaC,IACnBL,EAAMI,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,CAAC,EAClD,MAAO,CAACD,EAAaC,IACnBJ,EAAMG,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,CAAC,EAClD,MAAO,CAACD,EAAaC,IACnBH,EAAME,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,CAAC,EAClD,MAAO,CAACD,EAAaC,IACnBF,EAAMC,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,EAAGD,EAAE,EAAIC,EAAE,CAAC,CACpD,EAEA,IAAK,CACH,MAAOvB,EACP,MAAOA,EACP,MAAOA,EACP,MAAOA,EACP,MAAOG,EACP,MAAOA,EACP,MAAOA,EACP,MAAOA,EACP,MAAOC,EACP,MAAOA,EACP,MAAOA,EACP,MAAOA,CACT,EAEA,UAAW,CACT,MAAQP,GAAgB,CACtB,IAAM4B,EAAM7B,EAAWC,CAAC,EACxB,OAAOa,EAAMb,EAAE,EAAI4B,EAAK5B,EAAE,EAAI4B,CAAG,CACnC,EACA,MAAQ5B,GAAgB,CACtB,IAAM4B,EAAM7B,EAAWC,CAAC,EACxB,OAAOc,EAAMd,EAAE,EAAI4B,EAAK5B,EAAE,EAAI4B,CAAG,CACnC,EACA,MAAQ5B,GAAgB,CACtB,IAAM4B,EAAM7B,EAAWC,CAAC,EACxB,OAAOe,EAAMf,EAAE,EAAI4B,EAAK5B,EAAE,EAAI4B,CAAG,CACnC,EACA,MAAQ5B,GAAgB,CACtB,IAAM4B,EAAM7B,EAAWC,CAAC,EACxB,OAAOgB,EAAMhB,EAAE,EAAI4B,EAAK5B,EAAE,EAAI4B,CAAG,CACnC,EAEA,MAAQ5B,GAAgB,CACtB,IAAM4B,EAAM3B,EAAWD,CAAC,EACxB,OAAOiB,EAAMjB,EAAE,EAAI4B,EAAK5B,EAAE,EAAI4B,EAAK5B,EAAE,EAAI4B,CAAG,CAC9C,EACA,MAAQ5B,GAAgB,CACtB,IAAM4B,EAAM3B,EAAWD,CAAC,EACxB,OAAOkB,EAAMlB,EAAE,EAAI4B,EAAK5B,EAAE,EAAI4B,EAAK5B,EAAE,EAAI4B,CAAG,CAC9C,EACA,MAAQ5B,GAAgB,CACtB,IAAM4B,EAAM3B,EAAWD,CAAC,EACxB,OAAOmB,EAAMnB,EAAE,EAAI4B,EAAK5B,EAAE,EAAI4B,EAAK5B,EAAE,EAAI4B,CAAG,CAC9C,EACA,MAAQ5B,GAAgB,CACtB,IAAM4B,EAAM3B,EAAWD,CAAC,EACxB,OAAOoB,EAAMpB,EAAE,EAAI4B,EAAK5B,EAAE,EAAI4B,EAAK5B,EAAE,EAAI4B,CAAG,CAC9C,EAEA,MAAQ5B,GAAgB,CACtB,IAAM4B,EAAM1B,EAAWF,CAAC,EACxB,OAAOqB,EAAMrB,EAAE,EAAI4B,EAAK5B,EAAE,EAAI4B,EAAK5B,EAAE,EAAI4B,EAAK5B,EAAE,EAAI4B,CAAG,CACzD,EACA,MAAQ5B,GAAgB,CACtB,IAAM4B,EAAM1B,EAAWF,CAAC,EACxB,OAAOsB,EAAMtB,EAAE,EAAI4B,EAAK5B,EAAE,EAAI4B,EAAK5B,EAAE,EAAI4B,EAAK5B,EAAE,EAAI4B,CAAG,CACzD,EACA,MAAQ5B,GAAgB,CACtB,IAAM4B,EAAM1B,EAAWF,CAAC,EACxB,OAAOuB,EAAMvB,EAAE,EAAI4B,EAAK5B,EAAE,EAAI4B,EAAK5B,EAAE,EAAI4B,EAAK5B,EAAE,EAAI4B,CAAG,CACzD,EACA,MAAQ5B,GAAgB,CACtB,IAAM4B,EAAM1B,EAAWF,CAAC,EACxB,OAAOwB,EAAMxB,EAAE,EAAI4B,EAAK5B,EAAE,EAAI4B,EAAK5B,EAAE,EAAI4B,EAAK5B,EAAE,EAAI4B,CAAG,CACzD,CACF,EAEA,MAAO,CACL,MAAO,CAACH,EAAaC,IACZT,EACLQ,EAAE,EAAIC,EAAE,EAAID,EAAE,EAAIC,EAAE,EACpBD,EAAE,EAAIC,EAAE,EAAID,EAAE,EAAIC,EAAE,EACpBD,EAAE,EAAIC,EAAE,EAAID,EAAE,EAAIC,EAAE,CACtB,EAEF,MAAO,CAACD,EAAaC,IACZR,EACLO,EAAE,EAAIC,EAAE,EAAID,EAAE,EAAIC,EAAE,EACpBD,EAAE,EAAIC,EAAE,EAAID,EAAE,EAAIC,EAAE,EACpBD,EAAE,EAAIC,EAAE,EAAID,EAAE,EAAIC,EAAE,CACtB,EAEF,MAAO,CAACD,EAAaC,IACZP,EACLM,EAAE,EAAIC,EAAE,EAAID,EAAE,EAAIC,EAAE,EACpBD,EAAE,EAAIC,EAAE,EAAID,EAAE,EAAIC,EAAE,EACpBD,EAAE,EAAIC,EAAE,EAAID,EAAE,EAAIC,EAAE,CACtB,EAEF,MAAO,CAACD,EAAaC,IACZN,EACLK,EAAE,EAAIC,EAAE,EAAID,EAAE,EAAIC,EAAE,EACpBD,EAAE,EAAIC,EAAE,EAAID,EAAE,EAAIC,EAAE,EACpBD,EAAE,EAAIC,EAAE,EAAID,EAAE,EAAIC,EAAE,CACtB,CAEJ,EAKA,MAAO,CACL,MAAQ1B,GAAgBa,EAAM,KAAK,MAAMb,EAAE,CAAC,EAAG,KAAK,MAAMA,EAAE,CAAC,CAAC,EAC9D,MAAQA,GAAgBc,EAAM,KAAK,MAAMd,EAAE,CAAC,EAAG,KAAK,MAAMA,EAAE,CAAC,CAAC,EAC9D,MAAQA,GAAgBe,EAAM,KAAK,MAAMf,EAAE,CAAC,EAAG,KAAK,MAAMA,EAAE,CAAC,CAAC,EAC9D,MAAQA,GAAgBgB,EAAM,KAAK,MAAMhB,EAAE,CAAC,EAAG,KAAK,MAAMA,EAAE,CAAC,CAAC,EAE9D,MAAQA,GACNiB,EAAM,KAAK,MAAMjB,EAAE,CAAC,EAAG,KAAK,MAAMA,EAAE,CAAC,EAAG,KAAK,MAAMA,EAAE,CAAC,CAAC,EACzD,MAAQA,GACNkB,EAAM,KAAK,MAAMlB,EAAE,CAAC,EAAG,KAAK,MAAMA,EAAE,CAAC,EAAG,KAAK,MAAMA,EAAE,CAAC,CAAC,EACzD,MAAQA,GACNmB,EAAM,KAAK,MAAMnB,EAAE,CAAC,EAAG,KAAK,MAAMA,EAAE,CAAC,EAAG,KAAK,MAAMA,EAAE,CAAC,CAAC,EACzD,MAAQA,GACNoB,EAAM,KAAK,MAAMpB,EAAE,CAAC,EAAG,KAAK,MAAMA,EAAE,CAAC,EAAG,KAAK,MAAMA,EAAE,CAAC,CAAC,EAEzD,MAAQA,GACNqB,EAAM,KAAK,MAAMrB,EAAE,CAAC,EAAG,KAAK,MAAMA,EAAE,CAAC,EAAG,KAAK,MAAMA,EAAE,CAAC,EAAG,KAAK,MAAMA,EAAE,CAAC,CAAC,EAC1E,MAAQA,GACNsB,EAAM,KAAK,MAAMtB,EAAE,CAAC,EAAG,KAAK,MAAMA,EAAE,CAAC,EAAG,KAAK,MAAMA,EAAE,CAAC,EAAG,KAAK,MAAMA,EAAE,CAAC,CAAC,EAC1E,MAAQA,GACNuB,EAAM,KAAK,MAAMvB,EAAE,CAAC,EAAG,KAAK,MAAMA,EAAE,CAAC,EAAG,KAAK,MAAMA,EAAE,CAAC,EAAG,KAAK,MAAMA,EAAE,CAAC,CAAC,EAC1E,MAAQA,GACNwB,EAAM,KAAK,MAAMxB,EAAE,CAAC,EAAG,KAAK,MAAMA,EAAE,CAAC,EAAG,KAAK,MAAMA,EAAE,CAAC,EAAG,KAAK,MAAMA,EAAE,CAAC,CAAC,CAC5E,EAEA,IAAK,CACH,MAAO,CAACyB,EAAaC,IACnBb,EAAM,KAAK,IAAIY,EAAE,EAAGC,EAAE,CAAC,EAAG,KAAK,IAAID,EAAE,EAAGC,EAAE,CAAC,CAAC,EAC9C,MAAO,CAACD,EAAaC,IACnBZ,EAAM,KAAK,IAAIW,EAAE,EAAGC,EAAE,CAAC,EAAG,KAAK,IAAID,EAAE,EAAGC,EAAE,CAAC,CAAC,EAC9C,MAAO,CAACD,EAAaC,IACnBX,EAAM,KAAK,IAAIU,EAAE,EAAGC,EAAE,CAAC,EAAG,KAAK,IAAID,EAAE,EAAGC,EAAE,CAAC,CAAC,EAC9C,MAAO,CAACD,EAAaC,IACnBV,EAAM,KAAK,IAAIS,EAAE,EAAGC,EAAE,CAAC,EAAG,KAAK,IAAID,EAAE,EAAGC,EAAE,CAAC,CAAC,EAE9C,MAAO,CAACD,EAAaC,IACnBT,EAAM,KAAK,IAAIQ,EAAE,EAAGC,EAAE,CAAC,EAAG,KAAK,IAAID,EAAE,EAAGC,EAAE,CAAC,EAAG,KAAK,IAAID,EAAE,EAAGC,EAAE,CAAC,CAAC,EAClE,MAAO,CAACD,EAAaC,IACnBR,EAAM,KAAK,IAAIO,EAAE,EAAGC,EAAE,CAAC,EAAG,KAAK,IAAID,EAAE,EAAGC,EAAE,CAAC,EAAG,KAAK,IAAID,EAAE,EAAGC,EAAE,CAAC,CAAC,EAClE,MAAO,CAACD,EAAaC,IACnBP,EAAM,KAAK,IAAIM,EAAE,EAAGC,EAAE,CAAC,EAAG,KAAK,IAAID,EAAE,EAAGC,EAAE,CAAC,EAAG,KAAK,IAAID,EAAE,EAAGC,EAAE,CAAC,CAAC,EAClE,MAAO,CAACD,EAAaC,IACnBN,EAAM,KAAK,IAAIK,EAAE,EAAGC,EAAE,CAAC,EAAG,KAAK,IAAID,EAAE,EAAGC,EAAE,CAAC,EAAG,KAAK,IAAID,EAAE,EAAGC,EAAE,CAAC,CAAC,EAElE,MAAO,CAACD,EAAaC,IACnBL,EACE,KAAK,IAAII,EAAE,EAAGC,EAAE,CAAC,EACjB,KAAK,IAAID,EAAE,EAAGC,EAAE,CAAC,EACjB,KAAK,IAAID,EAAE,EAAGC,EAAE,CAAC,EACjB,KAAK,IAAID,EAAE,EAAGC,EAAE,CAAC,CACnB,EACF,MAAO,CAACD,EAAaC,IACnBJ,EACE,KAAK,IAAIG,EAAE,EAAGC,EAAE,CAAC,EACjB,KAAK,IAAID,EAAE,EAAGC,EAAE,CAAC,EACjB,KAAK,IAAID,EAAE,EAAGC,EAAE,CAAC,EACjB,KAAK,IAAID,EAAE,EAAGC,EAAE,CAAC,CACnB,EACF,MAAO,CAACD,EAAaC,IACnBH,EACE,KAAK,IAAIE,EAAE,EAAGC,EAAE,CAAC,EACjB,KAAK,IAAID,EAAE,EAAGC,EAAE,CAAC,EACjB,KAAK,IAAID,EAAE,EAAGC,EAAE,CAAC,EACjB,KAAK,IAAID,EAAE,EAAGC,EAAE,CAAC,CACnB,EACF,MAAO,CAACD,EAAaC,IACnBF,EACE,KAAK,IAAIC,EAAE,EAAGC,EAAE,CAAC,EACjB,KAAK,IAAID,EAAE,EAAGC,EAAE,CAAC,EACjB,KAAK,IAAID,EAAE,EAAGC,EAAE,CAAC,EACjB,KAAK,IAAID,EAAE,EAAGC,EAAE,CAAC,CACnB,CACJ,EAEA,IAAK,CACH,MAAO,CAACD,EAAaC,IACnBb,EAAM,KAAK,IAAIY,EAAE,EAAGC,EAAE,CAAC,EAAG,KAAK,IAAID,EAAE,EAAGC,EAAE,CAAC,CAAC,EAC9C,MAAO,CAACD,EAAaC,IACnBZ,EAAM,KAAK,IAAIW,EAAE,EAAGC,EAAE,CAAC,EAAG,KAAK,IAAID,EAAE,EAAGC,EAAE,CAAC,CAAC,EAC9C,MAAO,CAACD,EAAaC,IACnBX,EAAM,KAAK,IAAIU,EAAE,EAAGC,EAAE,CAAC,EAAG,KAAK,IAAID,EAAE,EAAGC,EAAE,CAAC,CAAC,EAC9C,MAAO,CAACD,EAAaC,IACnBV,EAAM,KAAK,IAAIS,EAAE,EAAGC,EAAE,CAAC,EAAG,KAAK,IAAID,EAAE,EAAGC,EAAE,CAAC,CAAC,EAE9C,MAAO,CAACD,EAAaC,IACnBT,EAAM,KAAK,IAAIQ,EAAE,EAAGC,EAAE,CAAC,EAAG,KAAK,IAAID,EAAE,EAAGC,EAAE,CAAC,EAAG,KAAK,IAAID,EAAE,EAAGC,EAAE,CAAC,CAAC,EAClE,MAAO,CAACD,EAAaC,IACnBR,EAAM,KAAK,IAAIO,EAAE,EAAGC,EAAE,CAAC,EAAG,KAAK,IAAID,EAAE,EAAGC,EAAE,CAAC,EAAG,KAAK,IAAID,EAAE,EAAGC,EAAE,CAAC,CAAC,EAClE,MAAO,CAACD,EAAaC,IACnBP,EAAM,KAAK,IAAIM,EAAE,EAAGC,EAAE,CAAC,EAAG,KAAK,IAAID,EAAE,EAAGC,EAAE,CAAC,EAAG,KAAK,IAAID,EAAE,EAAGC,EAAE,CAAC,CAAC,EAClE,MAAO,CAACD,EAAaC,IACnBN,EAAM,KAAK,IAAIK,EAAE,EAAGC,EAAE,CAAC,EAAG,KAAK,IAAID,EAAE,EAAGC,EAAE,CAAC,EAAG,KAAK,IAAID,EAAE,EAAGC,EAAE,CAAC,CAAC,EAElE,MAAO,CAACD,EAAaC,IACnBL,EACE,KAAK,IAAII,EAAE,EAAGC,EAAE,CAAC,EACjB,KAAK,IAAID,EAAE,EAAGC,EAAE,CAAC,EACjB,KAAK,IAAID,EAAE,EAAGC,EAAE,CAAC,EACjB,KAAK,IAAID,EAAE,EAAGC,EAAE,CAAC,CACnB,EACF,MAAO,CAACD,EAAaC,IACnBJ,EACE,KAAK,IAAIG,EAAE,EAAGC,EAAE,CAAC,EACjB,KAAK,IAAID,EAAE,EAAGC,EAAE,CAAC,EACjB,KAAK,IAAID,EAAE,EAAGC,EAAE,CAAC,EACjB,KAAK,IAAID,EAAE,EAAGC,EAAE,CAAC,CACnB,EACF,MAAO,CAACD,EAAaC,IACnBH,EACE,KAAK,IAAIE,EAAE,EAAGC,EAAE,CAAC,EACjB,KAAK,IAAID,EAAE,EAAGC,EAAE,CAAC,EACjB,KAAK,IAAID,EAAE,EAAGC,EAAE,CAAC,EACjB,KAAK,IAAID,EAAE,EAAGC,EAAE,CAAC,CACnB,EACF,MAAO,CAACD,EAAaC,IACnBF,EACE,KAAK,IAAIC,EAAE,EAAGC,EAAE,CAAC,EACjB,KAAK,IAAID,EAAE,EAAGC,EAAE,CAAC,EACjB,KAAK,IAAID,EAAE,EAAGC,EAAE,CAAC,EACjB,KAAK,IAAID,EAAE,EAAGC,EAAE,CAAC,CACnB,CACJ,CACF,EChdO,SAASG,EAAqBC,EAAQC,EAAW,CACtD,OAAIC,EAAU,EACL,IAAIF,CAAG,MAAMC,CAAG,IAElBE,EAAU,IAAIH,EAAI,IAAI,EAAEA,EAAKC,CAAG,CACzC,CAEO,SAASG,EAAqBJ,EAAQC,EAAW,CACtD,OAAIC,EAAU,EACL,IAAIF,CAAG,MAAMC,CAAG,IAElBE,EAAU,IAAIH,EAAI,IAAI,EAAEA,EAAKC,CAAG,CACzC,CAEO,SAASI,EAAqBC,EAAeC,EAAS,CAC3D,OAAIL,EAAU,EACL,IAAII,CAAC,MAAMC,CAAC,IAEjB,OAAOD,GAAM,SACRH,EAAU,OAAOI,EAAE,IAAI,EAAED,EAAGC,CAAC,EAE/BJ,EAAU,OAAOI,EAAE,IAAI,EAAED,EAAGC,CAAC,CACtC,CAEO,SAASC,EAA8BC,EAAa,CACzD,OAAIP,EAAU,EACL,OAAOO,CAAK,IAEjB,OAAOA,GAAU,SACZ,KAAK,IAAIA,CAAK,EAEhBN,EAAU,IAAIM,EAAM,IAAI,EAAEA,CAAK,CACxC,CAMO,SAASC,EAA+BD,EAAa,CAC1D,OAAIP,EAAU,EACL,QAAQO,CAAK,IAElB,OAAOA,GAAU,SACZ,KAAK,KAAKA,CAAK,EAEjBN,EAAU,KAAKM,EAAM,IAAI,EAAEA,CAAK,CACzC,CAMO,SAASE,EAAgCF,EAAUG,EAAQC,EAAY,CAC5E,OAAIX,EAAU,EACL,SAASO,CAAK,KAAKG,CAAG,KAAKC,CAAI,IAEpC,OAAOJ,GAAU,SACZ,KAAK,IAAI,KAAK,IAAIG,EAAeH,CAAK,EAAGI,CAAc,EAEzDV,EAAU,MAAMM,EAAM,IAAI,EAAEA,EAAOG,EAAcC,CAAa,CACvE,CAOO,SAASC,EAAIC,EAAyB,CAC3C,OAAIb,EAAU,EACL,OAAOa,CAAO,IAEhB,KAAK,IAAIA,CAAO,CACzB,CAMO,SAASC,EAAiCC,EAAMC,EAAS,CAC9D,OAAIhB,EAAU,EACL,SAASe,CAAC,KAAKC,CAAC,IAElBf,EAAU,MAAMc,EAAE,IAAI,EAAEA,EAAGC,CAAC,CACrC,CAMO,SAASC,EAAqBnB,EAAQC,EAAgB,CAC3D,OAAIC,EAAU,EACL,OAAOF,CAAG,KAAKC,CAAG,IAEpBE,EAAU,IAAIH,EAAI,IAAI,EAAEA,EAAKC,CAAG,CACzC,CAEO,SAASmB,EAA2Bb,EAAS,CAClD,OAAIL,EAAU,EACL,aAAaK,CAAC,IAEhBJ,EAAU,UAAUI,EAAE,IAAI,EAAEA,CAAC,CACtC,CAMO,SAASc,EAAgCZ,EAAa,CAC3D,OAAIP,EAAU,EACL,SAASO,CAAK,IAEnB,OAAOA,GAAU,SACZ,KAAK,MAAMA,CAAK,EAElBN,EAAU,MAAMM,EAAM,IAAI,EAAEA,CAAK,CAC1C,CAEO,SAASa,EAAML,EAAmB,CACvC,OAAIf,EAAU,EACL,SAASe,CAAC,IAEZA,EAAI,KAAK,MAAMA,CAAC,CACzB,CAMO,SAASM,EAAiCd,EAAkB,CACjE,OAAIP,EAAU,EACL,UAAUO,CAAK,IAEpB,OAAOA,GAAU,SACZ,KAAK,IAAIA,CAAK,EAEhBN,EAAU,OAAOM,EAAM,IAAI,EAAEA,CAAK,CAC3C,CAMO,SAASe,EAA8BP,EAAMC,EAAS,CAC3D,OAAIhB,EAAU,EACL,OAAOe,CAAC,KAAKC,CAAC,IAEnB,OAAOD,GAAM,SACR,KAAK,IAAIA,EAAGC,CAAW,EAEzBf,EAAU,IAAIc,EAAE,IAAI,EAAEA,EAAGC,CAAU,CAC5C,CAMO,SAASO,EAA8BR,EAAMC,EAAS,CAC3D,OAAIhB,EAAU,EACL,OAAOe,CAAC,KAAKC,CAAC,IAEnB,OAAOD,GAAM,SACR,KAAK,IAAIA,EAAGC,CAAW,EAEzBf,EAAU,IAAIc,EAAE,IAAI,EAAEA,EAAGC,CAAU,CAC5C,CAEO,SAASQ,EAAIX,EAAyB,CAC3C,OAAIb,EAAU,EACL,OAAOa,CAAO,IAEhB,KAAK,IAAIA,CAAO,CACzB","names":["lengthVec2","v","lengthVec3","lengthVec4","dotVec2","lhs","rhs","dotVec3","dotVec4","clamp","value","low","high","VectorOps","vec2f","vec2h","vec2i","vec2u","vec3f","vec3h","vec3i","vec3u","vec4f","vec4h","vec4i","vec4u","a","b","s","len","add","lhs","rhs","inGPUMode","VectorOps","sub","mul","s","v","abs","value","ceil","clamp","low","high","cos","radians","cross","a","b","dot","normalize","floor","fract","length","max","min","sin"]}
1
+ {"version":3,"sources":["../../src/data/vectorOps.ts","../../src/std/numeric.ts"],"sourcesContent":["import {\n type VecKind,\n vec2f,\n vec2h,\n vec2i,\n vec2u,\n vec3f,\n vec3h,\n vec3i,\n vec3u,\n vec4f,\n vec4h,\n vec4i,\n vec4u,\n} from './vector';\nimport type * as wgsl from './wgslTypes';\n\ntype vBase = { kind: VecKind };\ntype v2 = wgsl.v2f | wgsl.v2h | wgsl.v2i | wgsl.v2u;\ntype v3 = wgsl.v3f | wgsl.v3h | wgsl.v3i | wgsl.v3u;\ntype v4 = wgsl.v4f | wgsl.v4h | wgsl.v4i | wgsl.v4u;\n\nconst lengthVec2 = (v: v2) => Math.sqrt(v.x ** 2 + v.y ** 2);\nconst lengthVec3 = (v: v3) => Math.sqrt(v.x ** 2 + v.y ** 2 + v.z ** 2);\nconst lengthVec4 = (v: v4) =>\n Math.sqrt(v.x ** 2 + v.y ** 2 + v.z ** 2 + v.w ** 2);\n\nconst dotVec2 = (lhs: v2, rhs: v2) => lhs.x * rhs.x + lhs.y * rhs.y;\nconst dotVec3 = (lhs: v3, rhs: v3) =>\n lhs.x * rhs.x + lhs.y * rhs.y + lhs.z * rhs.z;\nconst dotVec4 = (lhs: v4, rhs: v4) =>\n lhs.x * rhs.x + lhs.y * rhs.y + lhs.z * rhs.z + lhs.w * rhs.w;\n\nconst clamp = (value: number, low: number, high: number) =>\n Math.min(Math.max(low, value), high);\n\nexport const VectorOps = {\n abs: {\n vec2f: (v: wgsl.v2f) => vec2f(Math.abs(v.x), Math.abs(v.y)),\n vec2h: (v: wgsl.v2h) => vec2h(Math.abs(v.x), Math.abs(v.y)),\n vec2i: (v: wgsl.v2i) => vec2i(Math.abs(v.x), Math.abs(v.y)),\n vec2u: (v: wgsl.v2u) => vec2u(Math.abs(v.x), Math.abs(v.y)),\n\n vec3f: (v: wgsl.v3f) => vec3f(Math.abs(v.x), Math.abs(v.y), Math.abs(v.z)),\n vec3h: (v: wgsl.v3h) => vec3h(Math.abs(v.x), Math.abs(v.y), Math.abs(v.z)),\n vec3i: (v: wgsl.v3i) => vec3i(Math.abs(v.x), Math.abs(v.y), Math.abs(v.z)),\n vec3u: (v: wgsl.v3u) => vec3u(Math.abs(v.x), Math.abs(v.y), Math.abs(v.z)),\n\n vec4f: (v: wgsl.v4f) =>\n vec4f(Math.abs(v.x), Math.abs(v.y), Math.abs(v.z), Math.abs(v.w)),\n vec4h: (v: wgsl.v4h) =>\n vec4h(Math.abs(v.x), Math.abs(v.y), Math.abs(v.z), Math.abs(v.w)),\n vec4i: (v: wgsl.v4i) =>\n vec4i(Math.abs(v.x), Math.abs(v.y), Math.abs(v.z), Math.abs(v.w)),\n vec4u: (v: wgsl.v4u) =>\n vec4u(Math.abs(v.x), Math.abs(v.y), Math.abs(v.z), Math.abs(v.w)),\n } as Record<VecKind, <T extends vBase>(v: T) => T>,\n\n ceil: {\n vec2f: (v: wgsl.v2f) => vec2f(Math.ceil(v.x), Math.ceil(v.y)),\n vec2h: (v: wgsl.v2h) => vec2h(Math.ceil(v.x), Math.ceil(v.y)),\n vec2i: (v: wgsl.v2i) => vec2i(Math.ceil(v.x), Math.ceil(v.y)),\n vec2u: (v: wgsl.v2u) => vec2u(Math.ceil(v.x), Math.ceil(v.y)),\n\n vec3f: (v: wgsl.v3f) =>\n vec3f(Math.ceil(v.x), Math.ceil(v.y), Math.ceil(v.z)),\n vec3h: (v: wgsl.v3h) =>\n vec3h(Math.ceil(v.x), Math.ceil(v.y), Math.ceil(v.z)),\n vec3i: (v: wgsl.v3i) =>\n vec3i(Math.ceil(v.x), Math.ceil(v.y), Math.ceil(v.z)),\n vec3u: (v: wgsl.v3u) =>\n vec3u(Math.ceil(v.x), Math.ceil(v.y), Math.ceil(v.z)),\n\n vec4f: (v: wgsl.v4f) =>\n vec4f(Math.ceil(v.x), Math.ceil(v.y), Math.ceil(v.z), Math.ceil(v.w)),\n vec4h: (v: wgsl.v4h) =>\n vec4h(Math.ceil(v.x), Math.ceil(v.y), Math.ceil(v.z), Math.ceil(v.w)),\n vec4i: (v: wgsl.v4i) =>\n vec4i(Math.ceil(v.x), Math.ceil(v.y), Math.ceil(v.z), Math.ceil(v.w)),\n vec4u: (v: wgsl.v4u) =>\n vec4u(Math.ceil(v.x), Math.ceil(v.y), Math.ceil(v.z), Math.ceil(v.w)),\n } as Record<VecKind, <T extends vBase>(v: T) => T>,\n\n clamp: {\n vec2f: (v: wgsl.v2f, low: wgsl.v2f, high: wgsl.v2f) =>\n vec2f(clamp(v.x, low.x, high.x), clamp(v.y, low.y, high.y)),\n vec2h: (v: wgsl.v2h, low: wgsl.v2h, high: wgsl.v2h) =>\n vec2h(clamp(v.x, low.x, high.x), clamp(v.y, low.y, high.y)),\n vec2i: (v: wgsl.v2i, low: wgsl.v2i, high: wgsl.v2i) =>\n vec2i(clamp(v.x, low.x, high.x), clamp(v.y, low.y, high.y)),\n vec2u: (v: wgsl.v2u, low: wgsl.v2u, high: wgsl.v2u) =>\n vec2u(clamp(v.x, low.x, high.x), clamp(v.y, low.y, high.y)),\n\n vec3f: (v: wgsl.v3f, low: wgsl.v3f, high: wgsl.v3f) =>\n vec3f(\n clamp(v.x, low.x, high.x),\n clamp(v.y, low.y, high.y),\n clamp(v.z, low.z, high.z),\n ),\n vec3h: (v: wgsl.v3h, low: wgsl.v3h, high: wgsl.v3h) =>\n vec3h(\n clamp(v.x, low.x, high.x),\n clamp(v.y, low.y, high.y),\n clamp(v.z, low.z, high.z),\n ),\n vec3i: (v: wgsl.v3i, low: wgsl.v3i, high: wgsl.v3f) =>\n vec3i(\n clamp(v.x, low.x, high.x),\n clamp(v.y, low.y, high.y),\n clamp(v.z, low.z, high.z),\n ),\n vec3u: (v: wgsl.v3u, low: wgsl.v3u, high: wgsl.v3f) =>\n vec3u(\n clamp(v.x, low.x, high.x),\n clamp(v.y, low.y, high.y),\n clamp(v.z, low.z, high.z),\n ),\n\n vec4f: (v: wgsl.v4f, low: wgsl.v4f, high: wgsl.v4f) =>\n vec4f(\n clamp(v.x, low.x, high.x),\n clamp(v.y, low.y, high.y),\n clamp(v.z, low.z, high.z),\n clamp(v.w, low.w, high.w),\n ),\n vec4h: (v: wgsl.v4h, low: wgsl.v4h, high: wgsl.v4h) =>\n vec4h(\n clamp(v.x, low.x, high.x),\n clamp(v.y, low.y, high.y),\n clamp(v.z, low.z, high.z),\n clamp(v.w, low.w, high.w),\n ),\n vec4i: (v: wgsl.v4i, low: wgsl.v4i, high: wgsl.v4i) =>\n vec4i(\n clamp(v.x, low.x, high.x),\n clamp(v.y, low.y, high.y),\n clamp(v.z, low.z, high.z),\n clamp(v.w, low.w, high.w),\n ),\n vec4u: (v: wgsl.v4u, low: wgsl.v4u, high: wgsl.v4u) =>\n vec4u(\n clamp(v.x, low.x, high.x),\n clamp(v.y, low.y, high.y),\n clamp(v.z, low.z, high.z),\n clamp(v.w, low.w, high.w),\n ),\n } as Record<VecKind, <T extends vBase>(v: T, low: T, high: T) => T>,\n\n length: {\n vec2f: lengthVec2,\n vec2h: lengthVec2,\n vec2i: lengthVec2,\n vec2u: lengthVec2,\n vec3f: lengthVec3,\n vec3h: lengthVec3,\n vec3i: lengthVec3,\n vec3u: lengthVec3,\n vec4f: lengthVec4,\n vec4h: lengthVec4,\n vec4i: lengthVec4,\n vec4u: lengthVec4,\n } as Record<VecKind, (v: vBase) => number>,\n\n add: {\n vec2f: (a: wgsl.v2f, b: wgsl.v2f) => vec2f(a.x + b.x, a.y + b.y),\n vec2h: (a: wgsl.v2h, b: wgsl.v2h) => vec2h(a.x + b.x, a.y + b.y),\n vec2i: (a: wgsl.v2i, b: wgsl.v2i) => vec2i(a.x + b.x, a.y + b.y),\n vec2u: (a: wgsl.v2u, b: wgsl.v2u) => vec2u(a.x + b.x, a.y + b.y),\n\n vec3f: (a: wgsl.v3f, b: wgsl.v3f) => vec3f(a.x + b.x, a.y + b.y, a.z + b.z),\n vec3h: (a: wgsl.v3h, b: wgsl.v3h) => vec3h(a.x + b.x, a.y + b.y, a.z + b.z),\n vec3i: (a: wgsl.v3i, b: wgsl.v3i) => vec3i(a.x + b.x, a.y + b.y, a.z + b.z),\n vec3u: (a: wgsl.v3u, b: wgsl.v3u) => vec3u(a.x + b.x, a.y + b.y, a.z + b.z),\n\n vec4f: (a: wgsl.v4f, b: wgsl.v4f) =>\n vec4f(a.x + b.x, a.y + b.y, a.z + b.z, a.w + b.w),\n vec4h: (a: wgsl.v4h, b: wgsl.v4h) =>\n vec4h(a.x + b.x, a.y + b.y, a.z + b.z, a.w + b.w),\n vec4i: (a: wgsl.v4i, b: wgsl.v4i) =>\n vec4i(a.x + b.x, a.y + b.y, a.z + b.z, a.w + b.w),\n vec4u: (a: wgsl.v4u, b: wgsl.v4u) =>\n vec4u(a.x + b.x, a.y + b.y, a.z + b.z, a.w + b.w),\n } as Record<VecKind, <T extends vBase>(lhs: T, rhs: T) => T>,\n\n sub: {\n vec2f: (a: wgsl.v2f, b: wgsl.v2f) => vec2f(a.x - b.x, a.y - b.y),\n vec2h: (a: wgsl.v2h, b: wgsl.v2h) => vec2h(a.x - b.x, a.y - b.y),\n vec2i: (a: wgsl.v2i, b: wgsl.v2i) => vec2i(a.x - b.x, a.y - b.y),\n vec2u: (a: wgsl.v2u, b: wgsl.v2u) => vec2u(a.x - b.x, a.y - b.y),\n\n vec3f: (a: wgsl.v3f, b: wgsl.v3f) => vec3f(a.x - b.x, a.y - b.y, a.z - b.z),\n vec3h: (a: wgsl.v3h, b: wgsl.v3h) => vec3h(a.x - b.x, a.y - b.y, a.z - b.z),\n vec3i: (a: wgsl.v3i, b: wgsl.v3i) => vec3i(a.x - b.x, a.y - b.y, a.z - b.z),\n vec3u: (a: wgsl.v3u, b: wgsl.v3u) => vec3u(a.x - b.x, a.y - b.y, a.z - b.z),\n\n vec4f: (a: wgsl.v4f, b: wgsl.v4f) =>\n vec4f(a.x - b.x, a.y - b.y, a.z - b.z, a.w - b.w),\n vec4h: (a: wgsl.v4h, b: wgsl.v4h) =>\n vec4h(a.x - b.x, a.y - b.y, a.z - b.z, a.w - b.w),\n vec4i: (a: wgsl.v4i, b: wgsl.v4i) =>\n vec4i(a.x - b.x, a.y - b.y, a.z - b.z, a.w - b.w),\n vec4u: (a: wgsl.v4u, b: wgsl.v4u) =>\n vec4u(a.x - b.x, a.y - b.y, a.z - b.z, a.w - b.w),\n } as Record<VecKind, <T extends vBase>(lhs: T, rhs: T) => T>,\n\n mulSxV: {\n vec2f: (s: number, v: wgsl.v2f) => vec2f(s * v.x, s * v.y),\n vec2h: (s: number, v: wgsl.v2h) => vec2h(s * v.x, s * v.y),\n vec2i: (s: number, v: wgsl.v2i) => vec2i(s * v.x, s * v.y),\n vec2u: (s: number, v: wgsl.v2u) => vec2u(s * v.x, s * v.y),\n\n vec3f: (s: number, v: wgsl.v3f) => vec3f(s * v.x, s * v.y, s * v.z),\n vec3h: (s: number, v: wgsl.v3h) => vec3h(s * v.x, s * v.y, s * v.z),\n vec3i: (s: number, v: wgsl.v3i) => vec3i(s * v.x, s * v.y, s * v.z),\n vec3u: (s: number, v: wgsl.v3u) => vec3u(s * v.x, s * v.y, s * v.z),\n\n vec4f: (s: number, v: wgsl.v4f) =>\n vec4f(s * v.x, s * v.y, s * v.z, s * v.w),\n vec4h: (s: number, v: wgsl.v4h) =>\n vec4h(s * v.x, s * v.y, s * v.z, s * v.w),\n vec4i: (s: number, v: wgsl.v4i) =>\n vec4i(s * v.x, s * v.y, s * v.z, s * v.w),\n vec4u: (s: number, v: wgsl.v4u) =>\n vec4u(s * v.x, s * v.y, s * v.z, s * v.w),\n } as Record<VecKind, <T extends vBase>(s: number, v: T) => T>,\n\n mulVxV: {\n vec2f: (a: wgsl.v2f, b: wgsl.v2f) => vec2f(a.x * b.x, a.y * b.y),\n vec2h: (a: wgsl.v2h, b: wgsl.v2h) => vec2h(a.x * b.x, a.y * b.y),\n vec2i: (a: wgsl.v2i, b: wgsl.v2i) => vec2i(a.x * b.x, a.y * b.y),\n vec2u: (a: wgsl.v2u, b: wgsl.v2u) => vec2u(a.x * b.x, a.y * b.y),\n\n vec3f: (a: wgsl.v3f, b: wgsl.v3f) => vec3f(a.x * b.x, a.y * b.y, a.z * b.z),\n vec3h: (a: wgsl.v3h, b: wgsl.v3h) => vec3h(a.x * b.x, a.y * b.y, a.z * b.z),\n vec3i: (a: wgsl.v3i, b: wgsl.v3i) => vec3i(a.x * b.x, a.y * b.y, a.z * b.z),\n vec3u: (a: wgsl.v3u, b: wgsl.v3u) => vec3u(a.x * b.x, a.y * b.y, a.z * b.z),\n\n vec4f: (a: wgsl.v4f, b: wgsl.v4f) =>\n vec4f(a.x * b.x, a.y * b.y, a.z * b.z, a.w * b.w),\n vec4h: (a: wgsl.v4h, b: wgsl.v4h) =>\n vec4h(a.x * b.x, a.y * b.y, a.z * b.z, a.w * b.w),\n vec4i: (a: wgsl.v4i, b: wgsl.v4i) =>\n vec4i(a.x * b.x, a.y * b.y, a.z * b.z, a.w * b.w),\n vec4u: (a: wgsl.v4u, b: wgsl.v4u) =>\n vec4u(a.x * b.x, a.y * b.y, a.z * b.z, a.w * b.w),\n } as Record<VecKind, <T extends vBase>(lhs: T, rhs: T) => T>,\n\n dot: {\n vec2f: dotVec2,\n vec2h: dotVec2,\n vec2i: dotVec2,\n vec2u: dotVec2,\n vec3f: dotVec3,\n vec3h: dotVec3,\n vec3i: dotVec3,\n vec3u: dotVec3,\n vec4f: dotVec4,\n vec4h: dotVec4,\n vec4i: dotVec4,\n vec4u: dotVec4,\n } as Record<VecKind, <T extends vBase>(lhs: T, rhs: T) => number>,\n\n normalize: {\n vec2f: (v: wgsl.v2f) => {\n const len = lengthVec2(v);\n return vec2f(v.x / len, v.y / len);\n },\n vec2h: (v: wgsl.v2h) => {\n const len = lengthVec2(v);\n return vec2h(v.x / len, v.y / len);\n },\n vec2i: (v: wgsl.v2i) => {\n const len = lengthVec2(v);\n return vec2i(v.x / len, v.y / len);\n },\n vec2u: (v: wgsl.v2u) => {\n const len = lengthVec2(v);\n return vec2u(v.x / len, v.y / len);\n },\n\n vec3f: (v: wgsl.v3f) => {\n const len = lengthVec3(v);\n return vec3f(v.x / len, v.y / len, v.z / len);\n },\n vec3h: (v: wgsl.v3h) => {\n const len = lengthVec3(v);\n return vec3h(v.x / len, v.y / len, v.z / len);\n },\n vec3i: (v: wgsl.v3i) => {\n const len = lengthVec3(v);\n return vec3i(v.x / len, v.y / len, v.z / len);\n },\n vec3u: (v: wgsl.v3u) => {\n const len = lengthVec3(v);\n return vec3u(v.x / len, v.y / len, v.z / len);\n },\n\n vec4f: (v: wgsl.v4f) => {\n const len = lengthVec4(v);\n return vec4f(v.x / len, v.y / len, v.z / len, v.w / len);\n },\n vec4h: (v: wgsl.v4h) => {\n const len = lengthVec4(v);\n return vec4h(v.x / len, v.y / len, v.z / len, v.w / len);\n },\n vec4i: (v: wgsl.v4i) => {\n const len = lengthVec4(v);\n return vec4i(v.x / len, v.y / len, v.z / len, v.w / len);\n },\n vec4u: (v: wgsl.v4u) => {\n const len = lengthVec4(v);\n return vec4u(v.x / len, v.y / len, v.z / len, v.w / len);\n },\n } as Record<VecKind, <T extends vBase>(v: T) => T>,\n\n cross: {\n vec3f: (a: wgsl.v3f, b: wgsl.v3f) => {\n return vec3f(\n a.y * b.z - a.z * b.y,\n a.z * b.x - a.x * b.z,\n a.x * b.y - a.y * b.x,\n );\n },\n vec3h: (a: wgsl.v3h, b: wgsl.v3h) => {\n return vec3h(\n a.y * b.z - a.z * b.y,\n a.z * b.x - a.x * b.z,\n a.x * b.y - a.y * b.x,\n );\n },\n vec3i: (a: wgsl.v3i, b: wgsl.v3i) => {\n return vec3i(\n a.y * b.z - a.z * b.y,\n a.z * b.x - a.x * b.z,\n a.x * b.y - a.y * b.x,\n );\n },\n vec3u: (a: wgsl.v3u, b: wgsl.v3u) => {\n return vec3u(\n a.y * b.z - a.z * b.y,\n a.z * b.x - a.x * b.z,\n a.x * b.y - a.y * b.x,\n );\n },\n } as Record<\n 'vec3f' | 'vec3i' | 'vec3u',\n <T extends wgsl.v3f | wgsl.v3i | wgsl.v3u>(a: T, b: T) => T\n >,\n\n floor: {\n vec2f: (v: wgsl.v2f) => vec2f(Math.floor(v.x), Math.floor(v.y)),\n vec2h: (v: wgsl.v2h) => vec2h(Math.floor(v.x), Math.floor(v.y)),\n vec2i: (v: wgsl.v2i) => vec2i(Math.floor(v.x), Math.floor(v.y)),\n vec2u: (v: wgsl.v2u) => vec2u(Math.floor(v.x), Math.floor(v.y)),\n\n vec3f: (v: wgsl.v3f) =>\n vec3f(Math.floor(v.x), Math.floor(v.y), Math.floor(v.z)),\n vec3h: (v: wgsl.v3h) =>\n vec3h(Math.floor(v.x), Math.floor(v.y), Math.floor(v.z)),\n vec3i: (v: wgsl.v3i) =>\n vec3i(Math.floor(v.x), Math.floor(v.y), Math.floor(v.z)),\n vec3u: (v: wgsl.v3u) =>\n vec3u(Math.floor(v.x), Math.floor(v.y), Math.floor(v.z)),\n\n vec4f: (v: wgsl.v4f) =>\n vec4f(Math.floor(v.x), Math.floor(v.y), Math.floor(v.z), Math.floor(v.w)),\n vec4h: (v: wgsl.v4h) =>\n vec4h(Math.floor(v.x), Math.floor(v.y), Math.floor(v.z), Math.floor(v.w)),\n vec4i: (v: wgsl.v4i) =>\n vec4i(Math.floor(v.x), Math.floor(v.y), Math.floor(v.z), Math.floor(v.w)),\n vec4u: (v: wgsl.v4u) =>\n vec4u(Math.floor(v.x), Math.floor(v.y), Math.floor(v.z), Math.floor(v.w)),\n } as Record<VecKind, <T extends vBase>(v: T) => T>,\n\n max: {\n vec2f: (a: wgsl.v2f, b: wgsl.v2f) =>\n vec2f(Math.max(a.x, b.x), Math.max(a.y, b.y)),\n vec2h: (a: wgsl.v2h, b: wgsl.v2h) =>\n vec2h(Math.max(a.x, b.x), Math.max(a.y, b.y)),\n vec2i: (a: wgsl.v2i, b: wgsl.v2i) =>\n vec2i(Math.max(a.x, b.x), Math.max(a.y, b.y)),\n vec2u: (a: wgsl.v2u, b: wgsl.v2u) =>\n vec2u(Math.max(a.x, b.x), Math.max(a.y, b.y)),\n\n vec3f: (a: wgsl.v3f, b: wgsl.v3f) =>\n vec3f(Math.max(a.x, b.x), Math.max(a.y, b.y), Math.max(a.z, b.z)),\n vec3h: (a: wgsl.v3h, b: wgsl.v3h) =>\n vec3h(Math.max(a.x, b.x), Math.max(a.y, b.y), Math.max(a.z, b.z)),\n vec3i: (a: wgsl.v3i, b: wgsl.v3i) =>\n vec3i(Math.max(a.x, b.x), Math.max(a.y, b.y), Math.max(a.z, b.z)),\n vec3u: (a: wgsl.v3u, b: wgsl.v3u) =>\n vec3u(Math.max(a.x, b.x), Math.max(a.y, b.y), Math.max(a.z, b.z)),\n\n vec4f: (a: wgsl.v4f, b: wgsl.v4f) =>\n vec4f(\n Math.max(a.x, b.x),\n Math.max(a.y, b.y),\n Math.max(a.z, b.z),\n Math.max(a.w, b.w),\n ),\n vec4h: (a: wgsl.v4h, b: wgsl.v4h) =>\n vec4h(\n Math.max(a.x, b.x),\n Math.max(a.y, b.y),\n Math.max(a.z, b.z),\n Math.max(a.w, b.w),\n ),\n vec4i: (a: wgsl.v4i, b: wgsl.v4i) =>\n vec4i(\n Math.max(a.x, b.x),\n Math.max(a.y, b.y),\n Math.max(a.z, b.z),\n Math.max(a.w, b.w),\n ),\n vec4u: (a: wgsl.v4u, b: wgsl.v4u) =>\n vec4u(\n Math.max(a.x, b.x),\n Math.max(a.y, b.y),\n Math.max(a.z, b.z),\n Math.max(a.w, b.w),\n ),\n } as Record<VecKind, <T extends vBase>(a: T, b: T) => T>,\n\n min: {\n vec2f: (a: wgsl.v2f, b: wgsl.v2f) =>\n vec2f(Math.min(a.x, b.x), Math.min(a.y, b.y)),\n vec2h: (a: wgsl.v2h, b: wgsl.v2h) =>\n vec2h(Math.min(a.x, b.x), Math.min(a.y, b.y)),\n vec2i: (a: wgsl.v2i, b: wgsl.v2i) =>\n vec2i(Math.min(a.x, b.x), Math.min(a.y, b.y)),\n vec2u: (a: wgsl.v2u, b: wgsl.v2u) =>\n vec2u(Math.min(a.x, b.x), Math.min(a.y, b.y)),\n\n vec3f: (a: wgsl.v3f, b: wgsl.v3f) =>\n vec3f(Math.min(a.x, b.x), Math.min(a.y, b.y), Math.min(a.z, b.z)),\n vec3h: (a: wgsl.v3h, b: wgsl.v3h) =>\n vec3h(Math.min(a.x, b.x), Math.min(a.y, b.y), Math.min(a.z, b.z)),\n vec3i: (a: wgsl.v3i, b: wgsl.v3i) =>\n vec3i(Math.min(a.x, b.x), Math.min(a.y, b.y), Math.min(a.z, b.z)),\n vec3u: (a: wgsl.v3u, b: wgsl.v3u) =>\n vec3u(Math.min(a.x, b.x), Math.min(a.y, b.y), Math.min(a.z, b.z)),\n\n vec4f: (a: wgsl.v4f, b: wgsl.v4f) =>\n vec4f(\n Math.min(a.x, b.x),\n Math.min(a.y, b.y),\n Math.min(a.z, b.z),\n Math.min(a.w, b.w),\n ),\n vec4h: (a: wgsl.v4h, b: wgsl.v4h) =>\n vec4h(\n Math.min(a.x, b.x),\n Math.min(a.y, b.y),\n Math.min(a.z, b.z),\n Math.min(a.w, b.w),\n ),\n vec4i: (a: wgsl.v4i, b: wgsl.v4i) =>\n vec4i(\n Math.min(a.x, b.x),\n Math.min(a.y, b.y),\n Math.min(a.z, b.z),\n Math.min(a.w, b.w),\n ),\n vec4u: (a: wgsl.v4u, b: wgsl.v4u) =>\n vec4u(\n Math.min(a.x, b.x),\n Math.min(a.y, b.y),\n Math.min(a.z, b.z),\n Math.min(a.w, b.w),\n ),\n } as Record<VecKind, <T extends vBase>(a: T, b: T) => T>,\n};\n","import type { VecKind } from '../data/vector';\nimport { VectorOps } from '../data/vectorOps';\nimport type { v3f, v3i, v3u } from '../data/wgslTypes';\nimport { inGPUMode } from '../gpuMode';\n\ntype vBase = { kind: VecKind };\n\nexport function add<T extends vBase>(lhs: T, rhs: T): T {\n if (inGPUMode()) {\n return `(${lhs} + ${rhs})` as unknown as T;\n }\n return VectorOps.add[lhs.kind](lhs, rhs);\n}\n\nexport function sub<T extends vBase>(lhs: T, rhs: T): T {\n if (inGPUMode()) {\n return `(${lhs} - ${rhs})` as unknown as T;\n }\n return VectorOps.sub[lhs.kind](lhs, rhs);\n}\n\nexport function mul<T extends vBase>(s: number | T, v: T): T {\n if (inGPUMode()) {\n return `(${s} * ${v})` as unknown as T;\n }\n if (typeof s === 'number') {\n return VectorOps.mulSxV[v.kind](s, v);\n }\n return VectorOps.mulVxV[v.kind](s, v);\n}\n\nexport function abs<T extends vBase | number>(value: T): T {\n if (inGPUMode()) {\n return `abs(${value})` as unknown as T;\n }\n if (typeof value === 'number') {\n return Math.abs(value) as T;\n }\n return VectorOps.abs[value.kind](value) as T;\n}\n\n/**\n * @privateRemarks\n * https://www.w3.org/TR/WGSL/#ceil-builtin\n */\nexport function ceil<T extends vBase | number>(value: T): T {\n if (inGPUMode()) {\n return `ceil(${value})` as unknown as T;\n }\n if (typeof value === 'number') {\n return Math.ceil(value) as T;\n }\n return VectorOps.ceil[value.kind](value) as T;\n}\n\n/**\n * @privateRemarks\n * https://www.w3.org/TR/WGSL/#clamp\n */\nexport function clamp<T extends vBase | number>(value: T, low: T, high: T): T {\n if (inGPUMode()) {\n return `clamp(${value}, ${low}, ${high})` as unknown as T;\n }\n if (typeof value === 'number') {\n return Math.min(Math.max(low as number, value), high as number) as T;\n }\n return VectorOps.clamp[value.kind](value, low as vBase, high as vBase) as T;\n}\n\n// TODO: Accept vectors into `cos`\n/**\n * @privateRemarks\n * https://www.w3.org/TR/WGSL/#cos-builtin\n */\nexport function cos(radians: number): number {\n if (inGPUMode()) {\n return `cos(${radians})` as unknown as number;\n }\n return Math.cos(radians);\n}\n\n/**\n * @privateRemarks\n * https://www.w3.org/TR/WGSL/#cross-builtin\n */\nexport function cross<T extends v3f | v3i | v3u>(a: T, b: T): T {\n if (inGPUMode()) {\n return `cross(${a}, ${b})` as unknown as T;\n }\n return VectorOps.cross[a.kind](a, b);\n}\n\n/**\n * @privateRemarks\n * https://www.w3.org/TR/WGSL/#dot-builtin\n */\nexport function dot<T extends vBase>(lhs: T, rhs: T): number {\n if (inGPUMode()) {\n return `dot(${lhs}, ${rhs})` as unknown as number;\n }\n return VectorOps.dot[lhs.kind](lhs, rhs);\n}\n\nexport function normalize<T extends vBase>(v: T): T {\n if (inGPUMode()) {\n return `normalize(${v})` as unknown as T;\n }\n return VectorOps.normalize[v.kind](v);\n}\n\n/**\n * @privateRemarks\n * https://www.w3.org/TR/WGSL/#floor-builtin\n */\nexport function floor<T extends vBase | number>(value: T): T {\n if (inGPUMode()) {\n return `floor(${value})` as unknown as T;\n }\n if (typeof value === 'number') {\n return Math.floor(value) as T;\n }\n return VectorOps.floor[value.kind](value) as T;\n}\n\nexport function fract(a: number): number {\n if (inGPUMode()) {\n return `fract(${a})` as unknown as number;\n }\n return a - Math.floor(a);\n}\n\n/**\n * @privateRemarks\n * https://www.w3.org/TR/WGSL/#length-builtin\n */\nexport function length<T extends vBase | number>(value: T): number {\n if (inGPUMode()) {\n return `length(${value})` as unknown as number;\n }\n if (typeof value === 'number') {\n return Math.abs(value);\n }\n return VectorOps.length[value.kind](value);\n}\n\n/**\n * @privateRemarks\n * https://www.w3.org/TR/WGSL/#max-float-builtin\n */\nexport function max<T extends vBase | number>(a: T, b: T): T {\n if (inGPUMode()) {\n return `max(${a}, ${b})` as unknown as T;\n }\n if (typeof a === 'number') {\n return Math.max(a, b as number) as T;\n }\n return VectorOps.max[a.kind](a, b as vBase) as T;\n}\n\n/**\n * @privateRemarks\n * https://www.w3.org/TR/WGSL/#min-float-builtin\n */\nexport function min<T extends vBase | number>(a: T, b: T): T {\n if (inGPUMode()) {\n return `min(${a}, ${b})` as unknown as T;\n }\n if (typeof a === 'number') {\n return Math.min(a, b as number) as T;\n }\n return VectorOps.min[a.kind](a, b as vBase) as T;\n}\n\nexport function sin(radians: number): number {\n if (inGPUMode()) {\n return `sin(${radians})` as unknown as number;\n }\n return Math.sin(radians);\n}\n"],"mappings":"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","names":["clamp"]}
@@ -614,12 +614,14 @@ interface Mat4x4f {
614
614
  readonly '~repr': m4x4f;
615
615
  }
616
616
  interface WgslStruct<TProps extends Record<string, BaseWgslData> = Record<string, BaseWgslData>> {
617
+ (props: InferRecord<TProps>): InferRecord<TProps>;
617
618
  readonly type: 'struct';
618
619
  readonly label?: string | undefined;
619
620
  readonly propTypes: TProps;
620
621
  /** Type-token, not available at runtime */
621
622
  readonly '~repr': InferRecord<TProps>;
622
623
  }
624
+ type AnyWgslStruct = WgslStruct<any>;
623
625
  interface WgslArray<TElement = BaseWgslData> {
624
626
  readonly type: 'array';
625
627
  readonly elementCount: number;
@@ -627,6 +629,12 @@ interface WgslArray<TElement = BaseWgslData> {
627
629
  /** Type-token, not available at runtime */
628
630
  readonly '~repr': Infer<TElement>[];
629
631
  }
632
+ interface PtrFn<TInner = BaseWgslData> {
633
+ readonly type: 'ptrFn';
634
+ readonly inner: TInner;
635
+ /** Type-token, not available at runtime */
636
+ readonly '~repr': Infer<TInner>;
637
+ }
630
638
  /**
631
639
  * Schema representing the `atomic<...>` WGSL data type.
632
640
  */
@@ -666,11 +674,11 @@ interface Decorated<TInner extends BaseWgslData = BaseWgslData, TAttribs extends
666
674
  /** Type-token, not available at runtime */
667
675
  readonly '~repr': Infer<TInner>;
668
676
  }
669
- declare const wgslTypeLiterals: readonly ["bool", "f32", "f16", "i32", "u32", "vec2f", "vec2h", "vec2i", "vec2u", "vec3f", "vec3h", "vec3i", "vec3u", "vec4f", "vec4h", "vec4i", "vec4u", "mat2x2f", "mat3x3f", "mat4x4f", "struct", "array", "atomic", "decorated"];
677
+ declare const wgslTypeLiterals: readonly ["bool", "f32", "f16", "i32", "u32", "vec2f", "vec2h", "vec2i", "vec2u", "vec3f", "vec3h", "vec3i", "vec3u", "vec4f", "vec4h", "vec4i", "vec4u", "mat2x2f", "mat3x3f", "mat4x4f", "struct", "array", "ptrFn", "atomic", "decorated"];
670
678
  type WgslTypeLiteral = (typeof wgslTypeLiterals)[number];
671
679
  type PerspectiveOrLinearInterpolatableData = F32 | F16 | Vec2f | Vec2h | Vec3f | Vec3h | Vec4f | Vec4h;
672
680
  type FlatInterpolatableData = PerspectiveOrLinearInterpolatableData | I32 | U32 | Vec2i | Vec2u | Vec3i | Vec3u | Vec4i | Vec4u;
673
- type AnyWgslData = Bool | F32 | F16 | I32 | U32 | Vec2f | Vec2h | Vec2i | Vec2u | Vec3f | Vec3h | Vec3i | Vec3u | Vec4f | Vec4h | Vec4i | Vec4u | Mat2x2f | Mat3x3f | Mat4x4f | WgslStruct | WgslArray | Atomic | Decorated;
681
+ type AnyWgslData = Bool | F32 | F16 | I32 | U32 | Vec2f | Vec2h | Vec2i | Vec2u | Vec3f | Vec3h | Vec3i | Vec3u | Vec4f | Vec4h | Vec4i | Vec4u | Mat2x2f | Mat3x3f | Mat4x4f | AnyWgslStruct | WgslArray | PtrFn | Atomic | Decorated;
674
682
  declare function isWgslData(value: unknown): value is AnyWgslData;
675
683
  /**
676
684
  * Checks whether passed in value is an array schema,
@@ -698,6 +706,14 @@ declare function isWgslArray<T extends WgslArray>(schema: T | unknown): schema i
698
706
  * isWgslStruct(d.vec3f) // false
699
707
  */
700
708
  declare function isWgslStruct<T extends WgslStruct>(schema: T | unknown): schema is T;
709
+ /**
710
+ * Checks whether passed in value is a pointer ('function' scope) schema.
711
+ *
712
+ * @example
713
+ * isPtrFn(d.ptrFn(d.f32)) // true
714
+ * isPtrFn(d.f32) // false
715
+ */
716
+ declare function isPtrFn<T extends PtrFn>(schema: T | unknown): schema is T;
701
717
  /**
702
718
  * Checks whether the passed in value is an atomic schema.
703
719
  *
@@ -958,4 +974,4 @@ type NativeVec4u = Vec4u & {
958
974
  */
959
975
  declare const vec4u: NativeVec4u;
960
976
 
961
- export { type PerspectiveOrLinearInterpolatableData as $, type AnyWgslData as A, type BaseWgslData as B, type NativeVec3i as C, type Decorated as D, type InferRecord as E, type F32 as F, type m2x2f as G, type m3x3f as H, type Infer as I, type m4x4f as J, type v2f as K, type Location as L, type Mat2x2f as M, type NativeVec2u as N, type Mat3x3f as O, type v3f as P, type Mat4x4f as Q, type v4f as R, type Atomic as S, type Align as T, type U32 as U, type Vec2f as V, type WgslArray as W, type Size as X, type Interpolate as Y, type InterpolationType as Z, type PerspectiveOrLinearInterpolationType as _, type F16 as a, type FlatInterpolationType as a0, type FlatInterpolatableData as a1, isWgslData as a2, isWgslArray as a3, isWgslStruct as a4, isAtomic as a5, isDecorated as a6, isAlignAttrib as a7, isBuiltinAttrib as a8, isLocationAttrib as a9, isInterpolateAttrib as aa, isSizeAttrib as ab, type v2i as ac, type v2u as ad, type v3i as ae, type v3u as af, type v4i as ag, type v4u as ah, vec2f as ai, vec2h as aj, vec2i as ak, vec2u as al, vec3f as am, vec3h as an, vec3i as ao, vec3u as ap, vec4f as aq, vec4h as ar, vec4i as as, vec4u as at, type VecKind as au, type I32 as b, type Vec3f as c, type Vec4f as d, type Vec2h as e, type Vec3h as f, type Vec4h as g, type Vec2i as h, type Vec3i as i, type Vec4i as j, type Vec2u as k, type Vec3u as l, type Vec4u as m, type WgslStruct as n, type WgslTypeLiteral as o, type AnyVecInstance as p, type AnyMatInstance as q, type Builtin as r, type Bool as s, type NativeVec4u as t, type NativeVec2i as u, type NativeVec4i as v, type NativeVec2f as w, type NativeVec4f as x, type NativeVec3f as y, type NativeVec3u as z };
977
+ export { type InterpolationType as $, type AnyWgslData as A, type BaseWgslData as B, type NativeVec3u as C, type Decorated as D, type NativeVec3i as E, type F32 as F, type InferRecord as G, type m2x2f as H, type Infer as I, type m3x3f as J, type m4x4f as K, type Location as L, type Mat2x2f as M, type NativeVec2u as N, type v2f as O, type PtrFn as P, type Mat3x3f as Q, type v3f as R, type Mat4x4f as S, type v4f as T, type U32 as U, type Vec2f as V, type WgslArray as W, type Atomic as X, type Align as Y, type Size as Z, type Interpolate as _, type F16 as a, type PerspectiveOrLinearInterpolationType as a0, type PerspectiveOrLinearInterpolatableData as a1, type FlatInterpolationType as a2, type FlatInterpolatableData as a3, isWgslData as a4, isWgslArray as a5, isWgslStruct as a6, isPtrFn as a7, isAtomic as a8, isDecorated as a9, isAlignAttrib as aa, isBuiltinAttrib as ab, isLocationAttrib as ac, isInterpolateAttrib as ad, isSizeAttrib as ae, type v2i as af, type v2u as ag, type v3i as ah, type v3u as ai, type v4i as aj, type v4u as ak, vec2f as al, vec2h as am, vec2i as an, vec2u as ao, vec3f as ap, vec3h as aq, vec3i as ar, vec3u as as, vec4f as at, vec4h as au, vec4i as av, vec4u as aw, type VecKind as ax, type I32 as b, type Vec3f as c, type Vec4f as d, type Vec2h as e, type Vec3h as f, type Vec4h as g, type Vec2i as h, type Vec3i as i, type Vec4i as j, type Vec2u as k, type Vec3u as l, type Vec4u as m, type AnyWgslStruct as n, type WgslTypeLiteral as o, type AnyVecInstance as p, type AnyMatInstance as q, type Builtin as r, type Bool as s, type WgslStruct as t, type NativeVec4u as u, type NativeVec2i as v, type NativeVec4i as w, type NativeVec2f as x, type NativeVec4f as y, type NativeVec3f as z };
@@ -614,12 +614,14 @@ interface Mat4x4f {
614
614
  readonly '~repr': m4x4f;
615
615
  }
616
616
  interface WgslStruct<TProps extends Record<string, BaseWgslData> = Record<string, BaseWgslData>> {
617
+ (props: InferRecord<TProps>): InferRecord<TProps>;
617
618
  readonly type: 'struct';
618
619
  readonly label?: string | undefined;
619
620
  readonly propTypes: TProps;
620
621
  /** Type-token, not available at runtime */
621
622
  readonly '~repr': InferRecord<TProps>;
622
623
  }
624
+ type AnyWgslStruct = WgslStruct<any>;
623
625
  interface WgslArray<TElement = BaseWgslData> {
624
626
  readonly type: 'array';
625
627
  readonly elementCount: number;
@@ -627,6 +629,12 @@ interface WgslArray<TElement = BaseWgslData> {
627
629
  /** Type-token, not available at runtime */
628
630
  readonly '~repr': Infer<TElement>[];
629
631
  }
632
+ interface PtrFn<TInner = BaseWgslData> {
633
+ readonly type: 'ptrFn';
634
+ readonly inner: TInner;
635
+ /** Type-token, not available at runtime */
636
+ readonly '~repr': Infer<TInner>;
637
+ }
630
638
  /**
631
639
  * Schema representing the `atomic<...>` WGSL data type.
632
640
  */
@@ -666,11 +674,11 @@ interface Decorated<TInner extends BaseWgslData = BaseWgslData, TAttribs extends
666
674
  /** Type-token, not available at runtime */
667
675
  readonly '~repr': Infer<TInner>;
668
676
  }
669
- declare const wgslTypeLiterals: readonly ["bool", "f32", "f16", "i32", "u32", "vec2f", "vec2h", "vec2i", "vec2u", "vec3f", "vec3h", "vec3i", "vec3u", "vec4f", "vec4h", "vec4i", "vec4u", "mat2x2f", "mat3x3f", "mat4x4f", "struct", "array", "atomic", "decorated"];
677
+ declare const wgslTypeLiterals: readonly ["bool", "f32", "f16", "i32", "u32", "vec2f", "vec2h", "vec2i", "vec2u", "vec3f", "vec3h", "vec3i", "vec3u", "vec4f", "vec4h", "vec4i", "vec4u", "mat2x2f", "mat3x3f", "mat4x4f", "struct", "array", "ptrFn", "atomic", "decorated"];
670
678
  type WgslTypeLiteral = (typeof wgslTypeLiterals)[number];
671
679
  type PerspectiveOrLinearInterpolatableData = F32 | F16 | Vec2f | Vec2h | Vec3f | Vec3h | Vec4f | Vec4h;
672
680
  type FlatInterpolatableData = PerspectiveOrLinearInterpolatableData | I32 | U32 | Vec2i | Vec2u | Vec3i | Vec3u | Vec4i | Vec4u;
673
- type AnyWgslData = Bool | F32 | F16 | I32 | U32 | Vec2f | Vec2h | Vec2i | Vec2u | Vec3f | Vec3h | Vec3i | Vec3u | Vec4f | Vec4h | Vec4i | Vec4u | Mat2x2f | Mat3x3f | Mat4x4f | WgslStruct | WgslArray | Atomic | Decorated;
681
+ type AnyWgslData = Bool | F32 | F16 | I32 | U32 | Vec2f | Vec2h | Vec2i | Vec2u | Vec3f | Vec3h | Vec3i | Vec3u | Vec4f | Vec4h | Vec4i | Vec4u | Mat2x2f | Mat3x3f | Mat4x4f | AnyWgslStruct | WgslArray | PtrFn | Atomic | Decorated;
674
682
  declare function isWgslData(value: unknown): value is AnyWgslData;
675
683
  /**
676
684
  * Checks whether passed in value is an array schema,
@@ -698,6 +706,14 @@ declare function isWgslArray<T extends WgslArray>(schema: T | unknown): schema i
698
706
  * isWgslStruct(d.vec3f) // false
699
707
  */
700
708
  declare function isWgslStruct<T extends WgslStruct>(schema: T | unknown): schema is T;
709
+ /**
710
+ * Checks whether passed in value is a pointer ('function' scope) schema.
711
+ *
712
+ * @example
713
+ * isPtrFn(d.ptrFn(d.f32)) // true
714
+ * isPtrFn(d.f32) // false
715
+ */
716
+ declare function isPtrFn<T extends PtrFn>(schema: T | unknown): schema is T;
701
717
  /**
702
718
  * Checks whether the passed in value is an atomic schema.
703
719
  *
@@ -958,4 +974,4 @@ type NativeVec4u = Vec4u & {
958
974
  */
959
975
  declare const vec4u: NativeVec4u;
960
976
 
961
- export { type PerspectiveOrLinearInterpolatableData as $, type AnyWgslData as A, type BaseWgslData as B, type NativeVec3i as C, type Decorated as D, type InferRecord as E, type F32 as F, type m2x2f as G, type m3x3f as H, type Infer as I, type m4x4f as J, type v2f as K, type Location as L, type Mat2x2f as M, type NativeVec2u as N, type Mat3x3f as O, type v3f as P, type Mat4x4f as Q, type v4f as R, type Atomic as S, type Align as T, type U32 as U, type Vec2f as V, type WgslArray as W, type Size as X, type Interpolate as Y, type InterpolationType as Z, type PerspectiveOrLinearInterpolationType as _, type F16 as a, type FlatInterpolationType as a0, type FlatInterpolatableData as a1, isWgslData as a2, isWgslArray as a3, isWgslStruct as a4, isAtomic as a5, isDecorated as a6, isAlignAttrib as a7, isBuiltinAttrib as a8, isLocationAttrib as a9, isInterpolateAttrib as aa, isSizeAttrib as ab, type v2i as ac, type v2u as ad, type v3i as ae, type v3u as af, type v4i as ag, type v4u as ah, vec2f as ai, vec2h as aj, vec2i as ak, vec2u as al, vec3f as am, vec3h as an, vec3i as ao, vec3u as ap, vec4f as aq, vec4h as ar, vec4i as as, vec4u as at, type VecKind as au, type I32 as b, type Vec3f as c, type Vec4f as d, type Vec2h as e, type Vec3h as f, type Vec4h as g, type Vec2i as h, type Vec3i as i, type Vec4i as j, type Vec2u as k, type Vec3u as l, type Vec4u as m, type WgslStruct as n, type WgslTypeLiteral as o, type AnyVecInstance as p, type AnyMatInstance as q, type Builtin as r, type Bool as s, type NativeVec4u as t, type NativeVec2i as u, type NativeVec4i as v, type NativeVec2f as w, type NativeVec4f as x, type NativeVec3f as y, type NativeVec3u as z };
977
+ export { type InterpolationType as $, type AnyWgslData as A, type BaseWgslData as B, type NativeVec3u as C, type Decorated as D, type NativeVec3i as E, type F32 as F, type InferRecord as G, type m2x2f as H, type Infer as I, type m3x3f as J, type m4x4f as K, type Location as L, type Mat2x2f as M, type NativeVec2u as N, type v2f as O, type PtrFn as P, type Mat3x3f as Q, type v3f as R, type Mat4x4f as S, type v4f as T, type U32 as U, type Vec2f as V, type WgslArray as W, type Atomic as X, type Align as Y, type Size as Z, type Interpolate as _, type F16 as a, type PerspectiveOrLinearInterpolationType as a0, type PerspectiveOrLinearInterpolatableData as a1, type FlatInterpolationType as a2, type FlatInterpolatableData as a3, isWgslData as a4, isWgslArray as a5, isWgslStruct as a6, isPtrFn as a7, isAtomic as a8, isDecorated as a9, isAlignAttrib as aa, isBuiltinAttrib as ab, isLocationAttrib as ac, isInterpolateAttrib as ad, isSizeAttrib as ae, type v2i as af, type v2u as ag, type v3i as ah, type v3u as ai, type v4i as aj, type v4u as ak, vec2f as al, vec2h as am, vec2i as an, vec2u as ao, vec3f as ap, vec3h as aq, vec3i as ar, vec3u as as, vec4f as at, vec4h as au, vec4i as av, vec4u as aw, type VecKind as ax, type I32 as b, type Vec3f as c, type Vec4f as d, type Vec2h as e, type Vec3h as f, type Vec4h as g, type Vec2i as h, type Vec3i as i, type Vec4i as j, type Vec2u as k, type Vec3u as l, type Vec4u as m, type AnyWgslStruct as n, type WgslTypeLiteral as o, type AnyVecInstance as p, type AnyMatInstance as q, type Builtin as r, type Bool as s, type WgslStruct as t, type NativeVec4u as u, type NativeVec2i as v, type NativeVec4i as w, type NativeVec2f as x, type NativeVec4f as y, type NativeVec3f as z };
@@ -1,4 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var B=Object.defineProperty,E=Object.defineProperties;var A=Object.getOwnPropertyDescriptors;var N=Object.getOwnPropertySymbols;var D=Object.prototype.hasOwnProperty,H=Object.prototype.propertyIsEnumerable;var T=(e,r,n)=>r in e?B(e,r,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[r]=n,K= exports.a =(e,r)=>{for(var n in r||(r={}))D.call(r,n)&&T(e,n,r[n]);if(N)for(var n of N(r))H.call(r,n)&&T(e,n,r[n]);return e},U= exports.b =(e,r)=>E(e,A(r));var m=(e,r,n)=>(T(e,typeof r!="symbol"?r+"":r,n),n);var S="Invariant failed";function j(e,r){if(e)return;throw new Error(S)}var z=class e extends Error{constructor(n,t){let u=t.map(a=>`- ${a}`);u.length>20&&(u=[...u.slice(0,11),"...",...u.slice(-10)]);super(`Resolution of the following tree failed:
2
- ${u.join(`
3
- `)}`);this.cause=n;this.trace=t;Object.setPrototypeOf(this,e.prototype)}appendToTrace(n){let t=[n,...this.trace];return new e(this.cause,t)}},$= exports.f =class e extends Error{constructor(n){super(`Missing value for '${n}'`);this.slot=n;Object.setPrototypeOf(this,e.prototype)}},F= exports.g =class e extends Error{constructor(r){var n;super(`Buffer '${(n=r.label)!=null?n:"<unnamed>"}' is not bindable as a uniform. Use .$usage('uniform') to allow it.`),Object.setPrototypeOf(this,e.prototype)}},O= exports.h =class e extends Error{constructor(r,n){super(`The function '${r!=null?r:"<unnamed>"}' is missing links to the following external values: ${n}.`),Object.setPrototypeOf(this,e.prototype)}},R= exports.i =class e extends Error{constructor(r){super(`Bind group was not provided for '${r!=null?r:"<unnamed>"}' layout.`),Object.setPrototypeOf(this,e.prototype)}};var P=null;function M(e,r){j(P===null,"Cannot nest context providers"),P=e;try{return r()}finally{P=null}}function Q(){return P}var C=()=>P!==null;function o(e){let r={"~repr":void 0,type:e.type};return Object.assign((...t)=>{var a;let u=t;if(C())return`${r.type}(${u.join(", ")})`;if(u.length<=1)return e.makeFromScalar((a=u[0])!=null?a:0);if(u.length===e.length)return e.make(...u);throw new Error(`'${e.type}' constructor called with invalid number of arguments.`)},r)}var i=class{constructor(r,n){this.x=r;this.y=n;m(this,"length",2)}*[Symbol.iterator](){yield this.x,yield this.y}get 0(){return this.x}get 1(){return this.y}set 0(r){this.x=r}set 1(r){this.y=r}"~resolve"(){return`${this.kind}(${this.x}, ${this.y})`}toString(){return this["~resolve"]()}},c=class e extends i{constructor(){super(...arguments);m(this,"kind","vec2f")}make2(n,t){return new e(n,t)}make3(n,t,u){return new w(n,t,u)}make4(n,t,u,a){return new p(n,t,u,a)}},b=class e extends i{constructor(){super(...arguments);m(this,"kind","vec2h")}make2(n,t){return new e(n,t)}make3(n,t,u){return new h(n,t,u)}make4(n,t,u,a){return new d(n,t,u,a)}},v=class e extends i{constructor(){super(...arguments);m(this,"kind","vec2i")}make2(n,t){return new e(n,t)}make3(n,t,u){return new k(n,t,u)}make4(n,t,u,a){return new V(n,t,u,a)}},l=class e extends i{constructor(){super(...arguments);m(this,"kind","vec2u")}make2(n,t){return new e(n,t)}make3(n,t,u){return new f(n,t,u)}make4(n,t,u,a){return new g(n,t,u,a)}},y=class{constructor(r,n,t){this.x=r;this.y=n;this.z=t;m(this,"length",3)}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}get 0(){return this.x}get 1(){return this.y}get 2(){return this.z}set 0(r){this.x=r}set 1(r){this.y=r}set 2(r){this.z=r}"~resolve"(){return`${this.kind}(${this.x}, ${this.y}, ${this.z})`}toString(){return this["~resolve"]()}},w=class e extends y{constructor(){super(...arguments);m(this,"kind","vec3f")}make2(n,t){return new c(n,t)}make3(n,t,u){return new e(n,t,u)}make4(n,t,u,a){return new p(n,t,u,a)}},h=class e extends y{constructor(){super(...arguments);m(this,"kind","vec3h")}make2(n,t){return new b(n,t)}make3(n,t,u){return new e(n,t,u)}make4(n,t,u,a){return new d(n,t,u,a)}},k=class e extends y{constructor(){super(...arguments);m(this,"kind","vec3i")}make2(n,t){return new v(n,t)}make3(n,t,u){return new e(n,t,u)}make4(n,t,u,a){return new V(n,t,u,a)}},f=class e extends y{constructor(){super(...arguments);m(this,"kind","vec3u")}make2(n,t){return new l(n,t)}make3(n,t,u){return new e(n,t,u)}make4(n,t,u,a){return new g(n,t,u,a)}},x=class{constructor(r,n,t,u){this.x=r;this.y=n;this.z=t;this.w=u;m(this,"length",4)}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}get 0(){return this.x}get 1(){return this.y}get 2(){return this.z}get 3(){return this.w}set 0(r){this.x=r}set 1(r){this.y=r}set 2(r){this.z=r}set 3(r){this.w=r}"~resolve"(){return`${this.kind}(${this.x}, ${this.y}, ${this.z}, ${this.w})`}toString(){return this["~resolve"]()}},p=class e extends x{constructor(){super(...arguments);m(this,"kind","vec4f")}make2(n,t){return new c(n,t)}make3(n,t,u){return new w(n,t,u)}make4(n,t,u,a){return new e(n,t,u,a)}},d=class e extends x{constructor(){super(...arguments);m(this,"kind","vec4h")}make2(n,t){return new b(n,t)}make3(n,t,u){return new h(n,t,u)}make4(n,t,u,a){return new e(n,t,u,a)}},V=class e extends x{constructor(){super(...arguments);m(this,"kind","vec4i")}make2(n,t){return new v(n,t)}make3(n,t,u){return new k(n,t,u)}make4(n,t,u,a){return new e(n,t,u,a)}},g=class e extends x{constructor(){super(...arguments);m(this,"kind","vec4u")}make2(n,t){return new l(n,t)}make3(n,t,u){return new f(n,t,u)}make4(n,t,u,a){return new e(n,t,u,a)}},s={get:(e,r)=>{if(typeof r=="symbol"||!Number.isNaN(Number.parseInt(r)))return Reflect.get(e,r);let n=e,t=new Array(r.length),u=0;for(let a of r){switch(a){case"x":t[u]=n.x;break;case"y":t[u]=n.y;break;case"z":t[u]=n.z;break;case"w":t[u]=n.w;break;default:return Reflect.get(n,r)}u++}return r.length===4?new Proxy(n.make4(t[0],t[1],t[2],t[3]),s):r.length===3?new Proxy(n.make3(t[0],t[1],t[2]),s):r.length===2?new Proxy(n.make2(t[0],t[1]),s):Reflect.get(e,r)}},Y= exports.m =o({type:"vec2f",length:2,make:(e,r)=>new Proxy(new c(e,r),s),makeFromScalar:e=>new Proxy(new c(e,e),s)}),Z= exports.n =o({type:"vec2h",length:2,make:(e,r)=>new Proxy(new b(e,r),s),makeFromScalar:e=>new Proxy(new b(e,e),s)}),L= exports.o =o({type:"vec2i",length:2,make:(e,r)=>new Proxy(new v(e,r),s),makeFromScalar:e=>new Proxy(new v(e,e),s)}),I= exports.p =o({type:"vec2u",length:2,make:(e,r)=>new Proxy(new l(e,r),s),makeFromScalar:e=>new Proxy(new l(e,e),s)}),_= exports.q =o({type:"vec3f",length:3,make:(e,r,n)=>new Proxy(new w(e,r,n),s),makeFromScalar:e=>new Proxy(new w(e,e,e),s)}),ee= exports.r =o({type:"vec3h",length:3,make:(e,r,n)=>new Proxy(new h(e,r,n),s),makeFromScalar:e=>new Proxy(new h(e,e,e),s)}),ne= exports.s =o({type:"vec3i",length:3,make:(e,r,n)=>new Proxy(new k(e,r,n),s),makeFromScalar:e=>new Proxy(new k(e,e,e),s)}),re= exports.t =o({type:"vec3u",length:3,make:(e,r,n)=>new Proxy(new f(e,r,n),s),makeFromScalar:e=>new Proxy(new f(e,e,e),s)}),te= exports.u =o({type:"vec4f",length:4,make:(e,r,n,t)=>new Proxy(new p(e,r,n,t),s),makeFromScalar:e=>new Proxy(new p(e,e,e,e),s)}),ue= exports.v =o({type:"vec4h",length:4,make:(e,r,n,t)=>new Proxy(new d(e,r,n,t),s),makeFromScalar:e=>new Proxy(new d(e,e,e,e),s)}),ae= exports.w =o({type:"vec4i",length:4,make:(e,r,n,t)=>new Proxy(new V(e,r,n,t),s),makeFromScalar:e=>new Proxy(new V(e,e,e,e),s)}),se= exports.x =o({length:4,type:"vec4u",make:(e,r,n,t)=>new Proxy(new g(e,r,n,t),s),makeFromScalar:e=>new Proxy(new g(e,e,e,e),s)});exports.a = K; exports.b = U; exports.c = m; exports.d = j; exports.e = z; exports.f = $; exports.g = F; exports.h = O; exports.i = R; exports.j = M; exports.k = Q; exports.l = C; exports.m = Y; exports.n = Z; exports.o = L; exports.p = I; exports.q = _; exports.r = ee; exports.s = ne; exports.t = re; exports.u = te; exports.v = ue; exports.w = ae; exports.x = se;
4
- //# sourceMappingURL=chunk-47YH5LQ7.cjs.map
package/chunk-BGPVBIFN.js DELETED
@@ -1,4 +0,0 @@
1
- var B=Object.defineProperty,E=Object.defineProperties;var A=Object.getOwnPropertyDescriptors;var N=Object.getOwnPropertySymbols;var D=Object.prototype.hasOwnProperty,H=Object.prototype.propertyIsEnumerable;var T=(e,r,n)=>r in e?B(e,r,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[r]=n,K=(e,r)=>{for(var n in r||(r={}))D.call(r,n)&&T(e,n,r[n]);if(N)for(var n of N(r))H.call(r,n)&&T(e,n,r[n]);return e},U=(e,r)=>E(e,A(r));var m=(e,r,n)=>(T(e,typeof r!="symbol"?r+"":r,n),n);var S="Invariant failed";function j(e,r){if(e)return;throw new Error(S)}var z=class e extends Error{constructor(n,t){let u=t.map(a=>`- ${a}`);u.length>20&&(u=[...u.slice(0,11),"...",...u.slice(-10)]);super(`Resolution of the following tree failed:
2
- ${u.join(`
3
- `)}`);this.cause=n;this.trace=t;Object.setPrototypeOf(this,e.prototype)}appendToTrace(n){let t=[n,...this.trace];return new e(this.cause,t)}},$=class e extends Error{constructor(n){super(`Missing value for '${n}'`);this.slot=n;Object.setPrototypeOf(this,e.prototype)}},F=class e extends Error{constructor(r){var n;super(`Buffer '${(n=r.label)!=null?n:"<unnamed>"}' is not bindable as a uniform. Use .$usage('uniform') to allow it.`),Object.setPrototypeOf(this,e.prototype)}},O=class e extends Error{constructor(r,n){super(`The function '${r!=null?r:"<unnamed>"}' is missing links to the following external values: ${n}.`),Object.setPrototypeOf(this,e.prototype)}},R=class e extends Error{constructor(r){super(`Bind group was not provided for '${r!=null?r:"<unnamed>"}' layout.`),Object.setPrototypeOf(this,e.prototype)}};var P=null;function M(e,r){j(P===null,"Cannot nest context providers"),P=e;try{return r()}finally{P=null}}function Q(){return P}var C=()=>P!==null;function o(e){let r={"~repr":void 0,type:e.type};return Object.assign((...t)=>{var a;let u=t;if(C())return`${r.type}(${u.join(", ")})`;if(u.length<=1)return e.makeFromScalar((a=u[0])!=null?a:0);if(u.length===e.length)return e.make(...u);throw new Error(`'${e.type}' constructor called with invalid number of arguments.`)},r)}var i=class{constructor(r,n){this.x=r;this.y=n;m(this,"length",2)}*[Symbol.iterator](){yield this.x,yield this.y}get 0(){return this.x}get 1(){return this.y}set 0(r){this.x=r}set 1(r){this.y=r}"~resolve"(){return`${this.kind}(${this.x}, ${this.y})`}toString(){return this["~resolve"]()}},c=class e extends i{constructor(){super(...arguments);m(this,"kind","vec2f")}make2(n,t){return new e(n,t)}make3(n,t,u){return new w(n,t,u)}make4(n,t,u,a){return new p(n,t,u,a)}},b=class e extends i{constructor(){super(...arguments);m(this,"kind","vec2h")}make2(n,t){return new e(n,t)}make3(n,t,u){return new h(n,t,u)}make4(n,t,u,a){return new d(n,t,u,a)}},v=class e extends i{constructor(){super(...arguments);m(this,"kind","vec2i")}make2(n,t){return new e(n,t)}make3(n,t,u){return new k(n,t,u)}make4(n,t,u,a){return new V(n,t,u,a)}},l=class e extends i{constructor(){super(...arguments);m(this,"kind","vec2u")}make2(n,t){return new e(n,t)}make3(n,t,u){return new f(n,t,u)}make4(n,t,u,a){return new g(n,t,u,a)}},y=class{constructor(r,n,t){this.x=r;this.y=n;this.z=t;m(this,"length",3)}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}get 0(){return this.x}get 1(){return this.y}get 2(){return this.z}set 0(r){this.x=r}set 1(r){this.y=r}set 2(r){this.z=r}"~resolve"(){return`${this.kind}(${this.x}, ${this.y}, ${this.z})`}toString(){return this["~resolve"]()}},w=class e extends y{constructor(){super(...arguments);m(this,"kind","vec3f")}make2(n,t){return new c(n,t)}make3(n,t,u){return new e(n,t,u)}make4(n,t,u,a){return new p(n,t,u,a)}},h=class e extends y{constructor(){super(...arguments);m(this,"kind","vec3h")}make2(n,t){return new b(n,t)}make3(n,t,u){return new e(n,t,u)}make4(n,t,u,a){return new d(n,t,u,a)}},k=class e extends y{constructor(){super(...arguments);m(this,"kind","vec3i")}make2(n,t){return new v(n,t)}make3(n,t,u){return new e(n,t,u)}make4(n,t,u,a){return new V(n,t,u,a)}},f=class e extends y{constructor(){super(...arguments);m(this,"kind","vec3u")}make2(n,t){return new l(n,t)}make3(n,t,u){return new e(n,t,u)}make4(n,t,u,a){return new g(n,t,u,a)}},x=class{constructor(r,n,t,u){this.x=r;this.y=n;this.z=t;this.w=u;m(this,"length",4)}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}get 0(){return this.x}get 1(){return this.y}get 2(){return this.z}get 3(){return this.w}set 0(r){this.x=r}set 1(r){this.y=r}set 2(r){this.z=r}set 3(r){this.w=r}"~resolve"(){return`${this.kind}(${this.x}, ${this.y}, ${this.z}, ${this.w})`}toString(){return this["~resolve"]()}},p=class e extends x{constructor(){super(...arguments);m(this,"kind","vec4f")}make2(n,t){return new c(n,t)}make3(n,t,u){return new w(n,t,u)}make4(n,t,u,a){return new e(n,t,u,a)}},d=class e extends x{constructor(){super(...arguments);m(this,"kind","vec4h")}make2(n,t){return new b(n,t)}make3(n,t,u){return new h(n,t,u)}make4(n,t,u,a){return new e(n,t,u,a)}},V=class e extends x{constructor(){super(...arguments);m(this,"kind","vec4i")}make2(n,t){return new v(n,t)}make3(n,t,u){return new k(n,t,u)}make4(n,t,u,a){return new e(n,t,u,a)}},g=class e extends x{constructor(){super(...arguments);m(this,"kind","vec4u")}make2(n,t){return new l(n,t)}make3(n,t,u){return new f(n,t,u)}make4(n,t,u,a){return new e(n,t,u,a)}},s={get:(e,r)=>{if(typeof r=="symbol"||!Number.isNaN(Number.parseInt(r)))return Reflect.get(e,r);let n=e,t=new Array(r.length),u=0;for(let a of r){switch(a){case"x":t[u]=n.x;break;case"y":t[u]=n.y;break;case"z":t[u]=n.z;break;case"w":t[u]=n.w;break;default:return Reflect.get(n,r)}u++}return r.length===4?new Proxy(n.make4(t[0],t[1],t[2],t[3]),s):r.length===3?new Proxy(n.make3(t[0],t[1],t[2]),s):r.length===2?new Proxy(n.make2(t[0],t[1]),s):Reflect.get(e,r)}},Y=o({type:"vec2f",length:2,make:(e,r)=>new Proxy(new c(e,r),s),makeFromScalar:e=>new Proxy(new c(e,e),s)}),Z=o({type:"vec2h",length:2,make:(e,r)=>new Proxy(new b(e,r),s),makeFromScalar:e=>new Proxy(new b(e,e),s)}),L=o({type:"vec2i",length:2,make:(e,r)=>new Proxy(new v(e,r),s),makeFromScalar:e=>new Proxy(new v(e,e),s)}),I=o({type:"vec2u",length:2,make:(e,r)=>new Proxy(new l(e,r),s),makeFromScalar:e=>new Proxy(new l(e,e),s)}),_=o({type:"vec3f",length:3,make:(e,r,n)=>new Proxy(new w(e,r,n),s),makeFromScalar:e=>new Proxy(new w(e,e,e),s)}),ee=o({type:"vec3h",length:3,make:(e,r,n)=>new Proxy(new h(e,r,n),s),makeFromScalar:e=>new Proxy(new h(e,e,e),s)}),ne=o({type:"vec3i",length:3,make:(e,r,n)=>new Proxy(new k(e,r,n),s),makeFromScalar:e=>new Proxy(new k(e,e,e),s)}),re=o({type:"vec3u",length:3,make:(e,r,n)=>new Proxy(new f(e,r,n),s),makeFromScalar:e=>new Proxy(new f(e,e,e),s)}),te=o({type:"vec4f",length:4,make:(e,r,n,t)=>new Proxy(new p(e,r,n,t),s),makeFromScalar:e=>new Proxy(new p(e,e,e,e),s)}),ue=o({type:"vec4h",length:4,make:(e,r,n,t)=>new Proxy(new d(e,r,n,t),s),makeFromScalar:e=>new Proxy(new d(e,e,e,e),s)}),ae=o({type:"vec4i",length:4,make:(e,r,n,t)=>new Proxy(new V(e,r,n,t),s),makeFromScalar:e=>new Proxy(new V(e,e,e,e),s)}),se=o({length:4,type:"vec4u",make:(e,r,n,t)=>new Proxy(new g(e,r,n,t),s),makeFromScalar:e=>new Proxy(new g(e,e,e,e),s)});export{K as a,U as b,m as c,j as d,z as e,$ as f,F as g,O as h,R as i,M as j,Q as k,C as l,Y as m,Z as n,L as o,I as p,_ as q,ee as r,ne as s,re as t,te as u,ue as v,ae as w,se as x};
4
- //# sourceMappingURL=chunk-BGPVBIFN.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/errors.ts","../src/gpuMode.ts","../src/data/vector.ts"],"sourcesContent":["import type { TgpuBuffer } from './core/buffer/buffer';\nimport type { TgpuSlot } from './core/slot/slotTypes';\nimport type { AnyData } from './data/dataTypes';\n\nconst prefix = 'Invariant failed';\n\n/**\n * Inspired by: https://github.com/alexreardon/tiny-invariant/blob/master/src/tiny-invariant.ts\n */\nexport function invariant(\n condition: unknown,\n message?: string | (() => string),\n): asserts condition {\n if (condition) {\n // Condition passed\n return;\n }\n\n // In production we strip the message but still throw\n if (process.env.NODE_ENV === 'production') {\n throw new Error(prefix);\n }\n\n // When not in production we allow the message to pass through\n // *This block will be removed in production builds*\n\n const provided = typeof message === 'function' ? message() : message;\n\n // Options:\n // 1. message provided: `${prefix}: ${provided}`\n // 2. message not provided: prefix\n const value = provided ? `${prefix}: ${provided}` : prefix;\n throw new Error(value);\n}\n\n/**\n * An error that happens during resolution of WGSL code.\n * Contains a trace of all ancestor resolvables in\n * which this error originated.\n *\n * @category Errors\n */\nexport class ResolutionError extends Error {\n constructor(\n public readonly cause: unknown,\n public readonly trace: unknown[],\n ) {\n let entries = trace.map((ancestor) => `- ${ancestor}`);\n\n // Showing only the root and leaf nodes.\n if (entries.length > 20) {\n entries = [...entries.slice(0, 11), '...', ...entries.slice(-10)];\n }\n\n super(`Resolution of the following tree failed: \\n${entries.join('\\n')}`);\n\n // Set the prototype explicitly.\n Object.setPrototypeOf(this, ResolutionError.prototype);\n }\n\n appendToTrace(ancestor: unknown): ResolutionError {\n const newTrace = [ancestor, ...this.trace];\n\n return new ResolutionError(this.cause, newTrace);\n }\n}\n\n/**\n * @category Errors\n */\nexport class MissingSlotValueError extends Error {\n constructor(public readonly slot: TgpuSlot<unknown>) {\n super(`Missing value for '${slot}'`);\n\n // Set the prototype explicitly.\n Object.setPrototypeOf(this, MissingSlotValueError.prototype);\n }\n}\n\n/**\n * @category Errors\n */\nexport class NotUniformError extends Error {\n constructor(value: TgpuBuffer<AnyData>) {\n super(\n `Buffer '${value.label ?? '<unnamed>'}' is not bindable as a uniform. Use .$usage('uniform') to allow it.`,\n );\n\n // Set the prototype explicitly.\n Object.setPrototypeOf(this, NotUniformError.prototype);\n }\n}\n\nexport class MissingLinksError extends Error {\n constructor(fnLabel: string | undefined, externalNames: string[]) {\n super(\n `The function '${fnLabel ?? '<unnamed>'}' is missing links to the following external values: ${externalNames}.`,\n );\n\n // Set the prototype explicitly.\n Object.setPrototypeOf(this, MissingLinksError.prototype);\n }\n}\n\nexport class MissingBindGroupError extends Error {\n constructor(layoutLabel: string | undefined) {\n super(\n `Bind group was not provided for '${layoutLabel ?? '<unnamed>'}' layout.`,\n );\n\n // Set the prototype explicitly.\n Object.setPrototypeOf(this, MissingBindGroupError.prototype);\n }\n}\n","import { invariant } from './errors';\nimport type { ResolutionCtx } from './types';\n\nlet resolutionCtx: ResolutionCtx | null = null;\n\nexport function provideCtx<T>(ctx: ResolutionCtx, callback: () => T): T {\n invariant(resolutionCtx === null, 'Cannot nest context providers');\n\n resolutionCtx = ctx;\n try {\n return callback();\n } finally {\n resolutionCtx = null;\n }\n}\n\nexport function getResolutionCtx(): ResolutionCtx | null {\n return resolutionCtx;\n}\n\nexport const inGPUMode = () => resolutionCtx !== null;\n","import { inGPUMode } from '../gpuMode';\nimport type { SelfResolvable } from '../types';\nimport type {\n Vec2f,\n Vec2h,\n Vec2i,\n Vec2u,\n Vec3f,\n Vec3h,\n Vec3i,\n Vec3u,\n Vec4f,\n Vec4h,\n Vec4i,\n Vec4u,\n v2f,\n v2h,\n v2i,\n v2u,\n v3f,\n v3h,\n v3i,\n v3u,\n v4f,\n v4h,\n v4i,\n v4u,\n} from './wgslTypes';\n\n// --------------\n// Implementation\n// --------------\n\ninterface VecSchemaOptions<TType extends string, TValue> {\n type: TType;\n length: number;\n make: (...args: number[]) => TValue;\n makeFromScalar: (value: number) => TValue;\n}\n\ntype VecSchemaBase<TValue> = {\n readonly type: string;\n readonly '~repr': TValue;\n};\n\nfunction makeVecSchema<TType extends string, TValue>(\n options: VecSchemaOptions<TType, TValue>,\n): VecSchemaBase<TValue> & ((...args: number[]) => TValue) {\n const VecSchema: VecSchemaBase<TValue> = {\n /** Type-token, not available at runtime */\n '~repr': undefined as unknown as TValue,\n type: options.type,\n };\n\n const construct = (...args: number[]): TValue => {\n const values = args; // TODO: Allow users to pass in vectors that fill part of the values.\n\n if (inGPUMode()) {\n return `${VecSchema.type}(${values.join(', ')})` as unknown as TValue;\n }\n\n if (values.length <= 1) {\n return options.makeFromScalar(values[0] ?? 0);\n }\n\n if (values.length === options.length) {\n return options.make(...values);\n }\n\n throw new Error(\n `'${options.type}' constructor called with invalid number of arguments.`,\n );\n };\n\n return Object.assign(construct, VecSchema);\n}\n\nabstract class vec2Impl implements SelfResolvable {\n public readonly length = 2;\n abstract readonly kind: `vec2${'f' | 'u' | 'i' | 'h'}`;\n\n [n: number]: number;\n\n constructor(\n public x: number,\n public y: number,\n ) {}\n\n *[Symbol.iterator]() {\n yield this.x;\n yield this.y;\n }\n\n get [0]() {\n return this.x;\n }\n\n get [1]() {\n return this.y;\n }\n\n set [0](value: number) {\n this.x = value;\n }\n\n set [1](value: number) {\n this.y = value;\n }\n\n '~resolve'(): string {\n return `${this.kind}(${this.x}, ${this.y})`;\n }\n\n toString() {\n return this['~resolve']();\n }\n}\n\nclass vec2fImpl extends vec2Impl {\n readonly kind = 'vec2f';\n\n make2(x: number, y: number): v2f {\n return new vec2fImpl(x, y) as unknown as v2f;\n }\n\n make3(x: number, y: number, z: number): v3f {\n return new vec3fImpl(x, y, z) as unknown as v3f;\n }\n\n make4(x: number, y: number, z: number, w: number): v4f {\n return new vec4fImpl(x, y, z, w) as unknown as v4f;\n }\n}\n\nclass vec2hImpl extends vec2Impl {\n readonly kind = 'vec2h';\n\n make2(x: number, y: number): v2h {\n return new vec2hImpl(x, y) as unknown as v2h;\n }\n\n make3(x: number, y: number, z: number): v3h {\n return new vec3hImpl(x, y, z) as unknown as v3h;\n }\n\n make4(x: number, y: number, z: number, w: number): v4h {\n return new vec4hImpl(x, y, z, w) as unknown as v4h;\n }\n}\n\nclass vec2iImpl extends vec2Impl {\n readonly kind = 'vec2i';\n\n make2(x: number, y: number): v2i {\n return new vec2iImpl(x, y) as unknown as v2i;\n }\n\n make3(x: number, y: number, z: number): v3i {\n return new vec3iImpl(x, y, z) as unknown as v3i;\n }\n\n make4(x: number, y: number, z: number, w: number): v4i {\n return new vec4iImpl(x, y, z, w) as unknown as v4i;\n }\n}\n\nclass vec2uImpl extends vec2Impl {\n readonly kind = 'vec2u';\n\n make2(x: number, y: number): v2u {\n return new vec2uImpl(x, y) as unknown as v2u;\n }\n\n make3(x: number, y: number, z: number): v3u {\n return new vec3uImpl(x, y, z) as unknown as v3u;\n }\n\n make4(x: number, y: number, z: number, w: number): v4u {\n return new vec4uImpl(x, y, z, w) as unknown as v4u;\n }\n}\n\nabstract class vec3Impl implements SelfResolvable {\n public readonly length = 3;\n abstract readonly kind: `vec3${'f' | 'u' | 'i' | 'h'}`;\n [n: number]: number;\n\n constructor(\n public x: number,\n public y: number,\n public z: number,\n ) {}\n\n *[Symbol.iterator]() {\n yield this.x;\n yield this.y;\n yield this.z;\n }\n\n get [0]() {\n return this.x;\n }\n\n get [1]() {\n return this.y;\n }\n\n get [2]() {\n return this.z;\n }\n\n set [0](value: number) {\n this.x = value;\n }\n\n set [1](value: number) {\n this.y = value;\n }\n\n set [2](value: number) {\n this.z = value;\n }\n\n '~resolve'(): string {\n return `${this.kind}(${this.x}, ${this.y}, ${this.z})`;\n }\n\n toString() {\n return this['~resolve']();\n }\n}\n\nclass vec3fImpl extends vec3Impl {\n readonly kind = 'vec3f';\n\n make2(x: number, y: number): v2f {\n return new vec2fImpl(x, y) as unknown as v2f;\n }\n\n make3(x: number, y: number, z: number): v3f {\n return new vec3fImpl(x, y, z) as unknown as v3f;\n }\n\n make4(x: number, y: number, z: number, w: number): v4f {\n return new vec4fImpl(x, y, z, w) as unknown as v4f;\n }\n}\n\nclass vec3hImpl extends vec3Impl {\n readonly kind = 'vec3h';\n\n make2(x: number, y: number): v2h {\n return new vec2hImpl(x, y) as unknown as v2h;\n }\n\n make3(x: number, y: number, z: number): v3h {\n return new vec3hImpl(x, y, z) as unknown as v3h;\n }\n\n make4(x: number, y: number, z: number, w: number): v4h {\n return new vec4hImpl(x, y, z, w) as unknown as v4h;\n }\n}\n\nclass vec3iImpl extends vec3Impl {\n readonly kind = 'vec3i';\n\n make2(x: number, y: number): v2i {\n return new vec2iImpl(x, y) as unknown as v2i;\n }\n\n make3(x: number, y: number, z: number): v3i {\n return new vec3iImpl(x, y, z) as unknown as v3i;\n }\n\n make4(x: number, y: number, z: number, w: number): v4i {\n return new vec4iImpl(x, y, z, w) as unknown as v4i;\n }\n}\n\nclass vec3uImpl extends vec3Impl {\n readonly kind = 'vec3u';\n\n make2(x: number, y: number): v2u {\n return new vec2uImpl(x, y) as unknown as v2u;\n }\n\n make3(x: number, y: number, z: number): v3u {\n return new vec3uImpl(x, y, z) as unknown as v3u;\n }\n\n make4(x: number, y: number, z: number, w: number): v4u {\n return new vec4uImpl(x, y, z, w) as unknown as v4u;\n }\n}\n\nabstract class vec4Impl implements SelfResolvable {\n public readonly length = 4;\n abstract readonly kind: `vec4${'f' | 'u' | 'i' | 'h'}`;\n [n: number]: number;\n\n constructor(\n public x: number,\n public y: number,\n public z: number,\n public w: number,\n ) {}\n\n *[Symbol.iterator]() {\n yield this.x;\n yield this.y;\n yield this.z;\n yield this.w;\n }\n\n get [0]() {\n return this.x;\n }\n\n get [1]() {\n return this.y;\n }\n\n get [2]() {\n return this.z;\n }\n\n get [3]() {\n return this.w;\n }\n\n set [0](value: number) {\n this.x = value;\n }\n\n set [1](value: number) {\n this.y = value;\n }\n\n set [2](value: number) {\n this.z = value;\n }\n\n set [3](value: number) {\n this.w = value;\n }\n\n '~resolve'(): string {\n return `${this.kind}(${this.x}, ${this.y}, ${this.z}, ${this.w})`;\n }\n\n toString() {\n return this['~resolve']();\n }\n}\n\nclass vec4fImpl extends vec4Impl {\n readonly kind = 'vec4f';\n\n make2(x: number, y: number): v2f {\n return new vec2fImpl(x, y) as unknown as v2f;\n }\n\n make3(x: number, y: number, z: number): v3f {\n return new vec3fImpl(x, y, z) as unknown as v3f;\n }\n\n make4(x: number, y: number, z: number, w: number): v4f {\n return new vec4fImpl(x, y, z, w) as unknown as v4f;\n }\n}\n\nclass vec4hImpl extends vec4Impl {\n readonly kind = 'vec4h';\n\n make2(x: number, y: number): v2h {\n return new vec2hImpl(x, y) as unknown as v2h;\n }\n\n make3(x: number, y: number, z: number): v3h {\n return new vec3hImpl(x, y, z) as unknown as v3h;\n }\n\n make4(x: number, y: number, z: number, w: number): v4h {\n return new vec4hImpl(x, y, z, w) as unknown as v4h;\n }\n}\n\nclass vec4iImpl extends vec4Impl {\n readonly kind = 'vec4i';\n\n make2(x: number, y: number): v2i {\n return new vec2iImpl(x, y) as unknown as v2i;\n }\n\n make3(x: number, y: number, z: number): v3i {\n return new vec3iImpl(x, y, z) as unknown as v3i;\n }\n\n make4(x: number, y: number, z: number, w: number): v4i {\n return new vec4iImpl(x, y, z, w) as unknown as v4i;\n }\n}\n\nclass vec4uImpl extends vec4Impl {\n readonly kind = 'vec4u';\n\n make2(x: number, y: number): v2u {\n return new vec2uImpl(x, y) as unknown as v2u;\n }\n\n make3(x: number, y: number, z: number): v3u {\n return new vec3uImpl(x, y, z) as unknown as v3u;\n }\n\n make4(x: number, y: number, z: number, w: number): v4u {\n return new vec4uImpl(x, y, z, w) as unknown as v4u;\n }\n}\n\nconst vecProxyHandler: ProxyHandler<{ kind: VecKind }> = {\n get: (target, prop) => {\n if (typeof prop === 'symbol' || !Number.isNaN(Number.parseInt(prop))) {\n return Reflect.get(target, prop);\n }\n\n const targetAsVec4 = target as unknown as vec4uImpl;\n const values = new Array(prop.length) as number[];\n\n let idx = 0;\n for (const char of prop as string) {\n switch (char) {\n case 'x':\n values[idx] = targetAsVec4.x;\n break;\n case 'y':\n values[idx] = targetAsVec4.y;\n break;\n case 'z':\n values[idx] = targetAsVec4.z;\n break;\n case 'w':\n values[idx] = targetAsVec4.w;\n break;\n default:\n return Reflect.get(targetAsVec4, prop);\n }\n idx++;\n }\n\n if (prop.length === 4) {\n return new Proxy(\n targetAsVec4.make4(\n values[0] as number,\n values[1] as number,\n values[2] as number,\n values[3] as number,\n ),\n vecProxyHandler,\n );\n }\n\n if (prop.length === 3) {\n return new Proxy(\n targetAsVec4.make3(\n values[0] as number,\n values[1] as number,\n values[2] as number,\n ),\n vecProxyHandler,\n );\n }\n\n if (prop.length === 2) {\n return new Proxy(\n targetAsVec4.make2(values[0] as number, values[1] as number),\n vecProxyHandler,\n );\n }\n\n return Reflect.get(target, prop);\n },\n};\n\n// ----------\n// Public API\n// ----------\n\n/**\n * Type encompassing all available kinds of vector.\n */\nexport type VecKind =\n | 'vec2f'\n | 'vec2i'\n | 'vec2u'\n | 'vec2h'\n | 'vec3f'\n | 'vec3i'\n | 'vec3u'\n | 'vec3h'\n | 'vec4f'\n | 'vec4i'\n | 'vec4u'\n | 'vec4h';\n\n/**\n * Type of the `d.vec2f` object/function: vector data type schema/constructor\n */\nexport type NativeVec2f = Vec2f & { '~exotic': Vec2f } & ((\n x: number,\n y: number,\n ) => v2f) &\n ((xy: number) => v2f) &\n (() => v2f);\n\n/**\n *\n * Schema representing vec2f - a vector with 2 elements of type f32.\n * Also a constructor function for this vector value.\n *\n * @example\n * const vector = d.vec2f(); // (0.0, 0.0)\n * const vector = d.vec2f(1); // (1.0, 1.0)\n * const vector = d.vec2f(0.5, 0.1); // (0.5, 0.1)\n *\n * @example\n * const buffer = root.createBuffer(d.vec2f, d.vec2f(0, 1)); // buffer holding a d.vec2f value, with an initial value of vec2f(0, 1);\n */\nexport const vec2f = makeVecSchema({\n type: 'vec2f',\n length: 2,\n make: (x: number, y: number) =>\n new Proxy(new vec2fImpl(x, y), vecProxyHandler) as v2f,\n makeFromScalar: (x) => new Proxy(new vec2fImpl(x, x), vecProxyHandler) as v2f,\n}) as NativeVec2f;\n\n/**\n * Type of the `d.vec2h` object/function: vector data type schema/constructor\n */\nexport type NativeVec2h = Vec2h & { '~exotic': Vec2h } & ((\n x: number,\n y: number,\n ) => v2h) &\n ((xy: number) => v2h) &\n (() => v2h);\n\n/**\n *\n * Schema representing vec2h - a vector with 2 elements of type f16.\n * Also a constructor function for this vector value.\n *\n * @example\n * const vector = d.vec2h(); // (0.0, 0.0)\n * const vector = d.vec2h(1); // (1.0, 1.0)\n * const vector = d.vec2h(0.5, 0.1); // (0.5, 0.1)\n *\n * @example\n * const buffer = root.createBuffer(d.vec2h, d.vec2h(0, 1)); // buffer holding a d.vec2h value, with an initial value of vec2h(0, 1);\n */\nexport const vec2h = makeVecSchema({\n type: 'vec2h',\n length: 2,\n make: (x: number, y: number) =>\n new Proxy(new vec2hImpl(x, y), vecProxyHandler) as v2h,\n makeFromScalar: (x) => new Proxy(new vec2hImpl(x, x), vecProxyHandler) as v2h,\n}) as NativeVec2h;\n\n/**\n * Type of the `d.vec2i` object/function: vector data type schema/constructor\n */\nexport type NativeVec2i = Vec2i & { '~exotic': Vec2i } & ((\n x: number,\n y: number,\n ) => v2i) &\n ((xy: number) => v2i) &\n (() => v2i);\n\n/**\n *\n * Schema representing vec2i - a vector with 2 elements of type i32.\n * Also a constructor function for this vector value.\n *\n * @example\n * const vector = d.vec2i(); // (0, 0)\n * const vector = d.vec2i(1); // (1, 1)\n * const vector = d.vec2i(-1, 1); // (-1, 1)\n *\n * @example\n * const buffer = root.createBuffer(d.vec2i, d.vec2i(0, 1)); // buffer holding a d.vec2i value, with an initial value of vec2i(0, 1);\n */\nexport const vec2i = makeVecSchema({\n type: 'vec2i',\n length: 2,\n make: (x: number, y: number) =>\n new Proxy(new vec2iImpl(x, y), vecProxyHandler) as v2i,\n makeFromScalar: (x) => new Proxy(new vec2iImpl(x, x), vecProxyHandler) as v2i,\n}) as NativeVec2i;\n\n/**\n * Type of the `d.vec2u` object/function: vector data type schema/constructor\n */\nexport type NativeVec2u = Vec2u & { '~exotic': Vec2u } & ((\n x: number,\n y: number,\n ) => v2u) &\n ((xy: number) => v2u) &\n (() => v2u);\n\n/**\n *\n * Schema representing vec2u - a vector with 2 elements of type u32.\n * Also a constructor function for this vector value.\n *\n * @example\n * const vector = d.vec2u(); // (0, 0)\n * const vector = d.vec2u(1); // (1, 1)\n * const vector = d.vec2u(1, 2); // (1, 2)\n *\n * @example\n * const buffer = root.createBuffer(d.vec2u, d.vec2u(0, 1)); // buffer holding a d.vec2u value, with an initial value of vec2u(0, 1);\n */\nexport const vec2u = makeVecSchema({\n type: 'vec2u',\n length: 2,\n make: (x: number, y: number) =>\n new Proxy(new vec2uImpl(x, y), vecProxyHandler) as v2u,\n makeFromScalar: (x) => new Proxy(new vec2uImpl(x, x), vecProxyHandler) as v2u,\n}) as NativeVec2u;\n\n/**\n * Type of the `d.vec3f` object/function: vector data type schema/constructor\n */\nexport type NativeVec3f = Vec3f & { '~exotic': Vec3f } & ((\n x: number,\n y: number,\n z: number,\n ) => v3f) &\n ((xyz: number) => v3f) &\n (() => v3f);\n\n/**\n *\n * Schema representing vec3f - a vector with 3 elements of type f32.\n * Also a constructor function for this vector value.\n *\n * @example\n * const vector = d.vec3f(); // (0.0, 0.0, 0.0)\n * const vector = d.vec3f(1); // (1.0, 1.0, 1.0)\n * const vector = d.vec3f(1, 2, 3.5); // (1.0, 2.0, 3.5)\n *\n * @example\n * const buffer = root.createBuffer(d.vec3f, d.vec3f(0, 1, 2)); // buffer holding a d.vec3f value, with an initial value of vec3f(0, 1, 2);\n */\nexport const vec3f = makeVecSchema({\n type: 'vec3f',\n length: 3,\n make: (x, y, z) => new Proxy(new vec3fImpl(x, y, z), vecProxyHandler) as v3f,\n makeFromScalar: (x) =>\n new Proxy(new vec3fImpl(x, x, x), vecProxyHandler) as v3f,\n}) as NativeVec3f;\n\n/**\n * Type of the `d.vec3h` object/function: vector data type schema/constructor\n */\nexport type NativeVec3h = Vec3h & { '~exotic': Vec3h } & ((\n x: number,\n y: number,\n z: number,\n ) => v3h) &\n ((xyz: number) => v3h) &\n (() => v3h);\n\n/**\n *\n * Schema representing vec3h - a vector with 3 elements of type f16.\n * Also a constructor function for this vector value.\n *\n * @example\n * const vector = d.vec3h(); // (0.0, 0.0, 0.0)\n * const vector = d.vec3h(1); // (1.0, 1.0, 1.0)\n * const vector = d.vec3h(1, 2, 3.5); // (1.0, 2.0, 3.5)\n *\n * @example\n * const buffer = root.createBuffer(d.vec3h, d.vec3h(0, 1, 2)); // buffer holding a d.vec3h value, with an initial value of vec3h(0, 1, 2);\n */\nexport const vec3h = makeVecSchema({\n type: 'vec3h',\n length: 3,\n make: (x, y, z) => new Proxy(new vec3hImpl(x, y, z), vecProxyHandler) as v3h,\n makeFromScalar: (x) =>\n new Proxy(new vec3hImpl(x, x, x), vecProxyHandler) as v3h,\n}) as NativeVec3h;\n\n/**\n * Type of the `d.vec3i` object/function: vector data type schema/constructor\n */\nexport type NativeVec3i = Vec3i & { '~exotic': Vec3i } & ((\n x: number,\n y: number,\n z: number,\n ) => v3i) &\n ((xyz: number) => v3i) &\n (() => v3i);\n\n/**\n *\n * Schema representing vec3i - a vector with 3 elements of type i32.\n * Also a constructor function for this vector value.\n *\n * @example\n * const vector = d.vec3i(); // (0, 0, 0)\n * const vector = d.vec3i(1); // (1, 1, 1)\n * const vector = d.vec3i(1, 2, -3); // (1, 2, -3)\n *\n * @example\n * const buffer = root.createBuffer(d.vec3i, d.vec3i(0, 1, 2)); // buffer holding a d.vec3i value, with an initial value of vec3i(0, 1, 2);\n */\nexport const vec3i = makeVecSchema({\n type: 'vec3i',\n length: 3,\n make: (x, y, z) => new Proxy(new vec3iImpl(x, y, z), vecProxyHandler) as v3i,\n makeFromScalar: (x) =>\n new Proxy(new vec3iImpl(x, x, x), vecProxyHandler) as v3i,\n}) as NativeVec3i;\n\n/**\n * Type of the `d.vec3u` object/function: vector data type schema/constructor\n */\nexport type NativeVec3u = Vec3u & { '~exotic': Vec3u } & ((\n x: number,\n y: number,\n z: number,\n ) => v3u) &\n ((xyz: number) => v3u) &\n (() => v3u);\n\n/**\n *\n * Schema representing vec3u - a vector with 3 elements of type u32.\n * Also a constructor function for this vector value.\n *\n * @example\n * const vector = d.vec3u(); // (0, 0, 0)\n * const vector = d.vec3u(1); // (1, 1, 1)\n * const vector = d.vec3u(1, 2, 3); // (1, 2, 3)\n *\n * @example\n * const buffer = root.createBuffer(d.vec3u, d.vec3u(0, 1, 2)); // buffer holding a d.vec3u value, with an initial value of vec3u(0, 1, 2);\n */\nexport const vec3u = makeVecSchema({\n type: 'vec3u',\n length: 3,\n make: (x, y, z) => new Proxy(new vec3uImpl(x, y, z), vecProxyHandler) as v3u,\n makeFromScalar: (x) =>\n new Proxy(new vec3uImpl(x, x, x), vecProxyHandler) as v3u,\n}) as NativeVec3u;\n\n/**\n * Type of the `d.vec4f` object/function: vector data type schema/constructor\n */\nexport type NativeVec4f = Vec4f & { '~exotic': Vec4f } & ((\n x: number,\n y: number,\n z: number,\n w: number,\n ) => v4f) &\n ((xyzw: number) => v4f) &\n (() => v4f);\n\n/**\n *\n * Schema representing vec4f - a vector with 4 elements of type f32.\n * Also a constructor function for this vector value.\n *\n * @example\n * const vector = d.vec4f(); // (0.0, 0.0, 0.0, 0.0)\n * const vector = d.vec4f(1); // (1.0, 1.0, 1.0, 1.0)\n * const vector = d.vec4f(1, 2, 3, 4.5); // (1.0, 2.0, 3.0, 4.5)\n *\n * @example\n * const buffer = root.createBuffer(d.vec4f, d.vec4f(0, 1, 2, 3)); // buffer holding a d.vec4f value, with an initial value of vec4f(0, 1, 2, 3);\n */\nexport const vec4f = makeVecSchema({\n type: 'vec4f',\n length: 4,\n make: (x, y, z, w) =>\n new Proxy(new vec4fImpl(x, y, z, w), vecProxyHandler) as v4f,\n makeFromScalar: (x) =>\n new Proxy(new vec4fImpl(x, x, x, x), vecProxyHandler) as v4f,\n}) as NativeVec4f;\n\n/**\n * Type of the `d.vec4h` object/function: vector data type schema/constructor\n */\nexport type NativeVec4h = Vec4h & { '~exotic': Vec4h } & ((\n x: number,\n y: number,\n z: number,\n w: number,\n ) => v4h) &\n ((xyzw: number) => v4h) &\n (() => v4h);\n\n/**\n *\n * Schema representing vec4h - a vector with 4 elements of type f16.\n * Also a constructor function for this vector value.\n *\n * @example\n * const vector = d.vec4h(); // (0.0, 0.0, 0.0, 0.0)\n * const vector = d.vec4h(1); // (1.0, 1.0, 1.0, 1.0)\n * const vector = d.vec4h(1, 2, 3, 4.5); // (1.0, 2.0, 3.0, 4.5)\n *\n * @example\n * const buffer = root.createBuffer(d.vec4h, d.vec4h(0, 1, 2, 3)); // buffer holding a d.vec4h value, with an initial value of vec4h(0, 1, 2, 3);\n */\nexport const vec4h = makeVecSchema({\n type: 'vec4h',\n length: 4,\n make: (x, y, z, w) =>\n new Proxy(new vec4hImpl(x, y, z, w), vecProxyHandler) as v4h,\n makeFromScalar: (x) =>\n new Proxy(new vec4hImpl(x, x, x, x), vecProxyHandler) as v4h,\n}) as NativeVec4h;\n\n/**\n * Type of the `d.vec4i` object/function: vector data type schema/constructor\n */\nexport type NativeVec4i = Vec4i & { '~exotic': Vec4i } & ((\n x: number,\n y: number,\n z: number,\n w: number,\n ) => v4i) &\n ((xyzw: number) => v4i) &\n (() => v4i);\n\n/**\n *\n * Schema representing vec4i - a vector with 4 elements of type i32.\n * Also a constructor function for this vector value.\n *\n * @example\n * const vector = d.vec4i(); // (0, 0, 0, 0)\n * const vector = d.vec4i(1); // (1, 1, 1, 1)\n * const vector = d.vec4i(1, 2, 3, -4); // (1, 2, 3, -4)\n *\n * @example\n * const buffer = root.createBuffer(d.vec4i, d.vec4i(0, 1, 2, 3)); // buffer holding a d.vec4i value, with an initial value of vec4i(0, 1, 2, 3);\n */\nexport const vec4i = makeVecSchema({\n type: 'vec4i',\n length: 4,\n make: (x, y, z, w) =>\n new Proxy(new vec4iImpl(x, y, z, w), vecProxyHandler) as v4i,\n makeFromScalar: (x) =>\n new Proxy(new vec4iImpl(x, x, x, x), vecProxyHandler) as v4i,\n}) as NativeVec4i;\n\n/**\n * Type of the `d.vec4u` object/function: vector data type schema/constructor\n */\nexport type NativeVec4u = Vec4u & { '~exotic': Vec4u } & ((\n x: number,\n y: number,\n z: number,\n w: number,\n ) => v4u) &\n ((xyzw: number) => v4u) &\n (() => v4u);\n\n/**\n *\n * Schema representing vec4u - a vector with 4 elements of type u32.\n * Also a constructor function for this vector value.\n *\n * @example\n * const vector = d.vec4u(); // (0, 0, 0, 0)\n * const vector = d.vec4u(1); // (1, 1, 1, 1)\n * const vector = d.vec4u(1, 2, 3, 4); // (1, 2, 3, 4)\n *\n * @example\n * const buffer = root.createBuffer(d.vec4u, d.vec4u(0, 1, 2, 3)); // buffer holding a d.vec4u value, with an initial value of vec4u(0, 1, 2, 3);\n */\nexport const vec4u = makeVecSchema({\n length: 4,\n type: 'vec4u',\n make: (x, y, z, w) =>\n new Proxy(new vec4uImpl(x, y, z, w), vecProxyHandler) as v4u,\n makeFromScalar: (x) =>\n new Proxy(new vec4uImpl(x, x, x, x), vecProxyHandler) as v4u,\n}) as NativeVec4u;\n"],"mappings":"ieAIA,IAAMA,EAAS,mBAKR,SAASC,EACdC,EACAC,EACmB,CACnB,GAAID,EAEF,OAKA,MAAM,IAAI,MAAMF,CAAM,CAa1B,CASO,IAAMI,EAAN,MAAMC,UAAwB,KAAM,CACzC,YACkBC,EACAC,EAChB,CACA,IAAIC,EAAUD,EAAM,IAAKE,GAAa,KAAKA,CAAQ,EAAE,EAGjDD,EAAQ,OAAS,KACnBA,EAAU,CAAC,GAAGA,EAAQ,MAAM,EAAG,EAAE,EAAG,MAAO,GAAGA,EAAQ,MAAM,GAAG,CAAC,GAGlE,MAAM;AAAA,EAA8CA,EAAQ,KAAK;AAAA,CAAI,CAAC,EAAE,EAVxD,WAAAF,EACA,WAAAC,EAYhB,OAAO,eAAe,KAAMF,EAAgB,SAAS,CACvD,CAEA,cAAcI,EAAoC,CAChD,IAAMC,EAAW,CAACD,EAAU,GAAG,KAAK,KAAK,EAEzC,OAAO,IAAIJ,EAAgB,KAAK,MAAOK,CAAQ,CACjD,CACF,EAKaC,EAAN,MAAMC,UAA8B,KAAM,CAC/C,YAA4BC,EAAyB,CACnD,MAAM,sBAAsBA,CAAI,GAAG,EADT,UAAAA,EAI1B,OAAO,eAAe,KAAMD,EAAsB,SAAS,CAC7D,CACF,EAKaE,EAAN,MAAMC,UAAwB,KAAM,CACzC,YAAYC,EAA4B,CAnF1C,IAAAC,EAoFI,MACE,YAAWA,EAAAD,EAAM,QAAN,KAAAC,EAAe,WAAW,qEACvC,EAGA,OAAO,eAAe,KAAMF,EAAgB,SAAS,CACvD,CACF,EAEaG,EAAN,MAAMC,UAA0B,KAAM,CAC3C,YAAYC,EAA6BC,EAAyB,CAChE,MACE,iBAAiBD,GAAA,KAAAA,EAAW,WAAW,wDAAwDC,CAAa,GAC9G,EAGA,OAAO,eAAe,KAAMF,EAAkB,SAAS,CACzD,CACF,EAEaG,EAAN,MAAMC,UAA8B,KAAM,CAC/C,YAAYC,EAAiC,CAC3C,MACE,oCAAoCA,GAAA,KAAAA,EAAe,WAAW,WAChE,EAGA,OAAO,eAAe,KAAMD,EAAsB,SAAS,CAC7D,CACF,EC9GA,IAAIE,EAAsC,KAEnC,SAASC,EAAcC,EAAoBC,EAAsB,CACtEC,EAAUJ,IAAkB,KAAM,+BAA+B,EAEjEA,EAAgBE,EAChB,GAAI,CACF,OAAOC,EAAS,CAClB,QAAE,CACAH,EAAgB,IAClB,CACF,CAEO,SAASK,GAAyC,CACvD,OAAOL,CACT,CAEO,IAAMM,EAAY,IAAMN,IAAkB,KCyBjD,SAASO,EACPC,EACyD,CACzD,IAAMC,EAAmC,CAEvC,QAAS,OACT,KAAMD,EAAQ,IAChB,EAsBA,OAAO,OAAO,OApBI,IAAIE,IAA2B,CAtDnD,IAAAC,EAuDI,IAAMC,EAASF,EAEf,GAAIG,EAAU,EACZ,MAAO,GAAGJ,EAAU,IAAI,IAAIG,EAAO,KAAK,IAAI,CAAC,IAG/C,GAAIA,EAAO,QAAU,EACnB,OAAOJ,EAAQ,gBAAeG,EAAAC,EAAO,CAAC,IAAR,KAAAD,EAAa,CAAC,EAG9C,GAAIC,EAAO,SAAWJ,EAAQ,OAC5B,OAAOA,EAAQ,KAAK,GAAGI,CAAM,EAG/B,MAAM,IAAI,MACR,IAAIJ,EAAQ,IAAI,wDAClB,CACF,EAEgCC,CAAS,CAC3C,CAEA,IAAeK,EAAf,KAAkD,CAMhD,YACSC,EACAC,EACP,CAFO,OAAAD,EACA,OAAAC,EAPTC,EAAA,KAAgB,SAAS,EAQtB,CAEH,EAAE,OAAO,QAAQ,GAAI,CACnB,MAAM,KAAK,EACX,MAAM,KAAK,CACb,CAEA,GAAK,IAAK,CACR,OAAO,KAAK,CACd,CAEA,GAAK,IAAK,CACR,OAAO,KAAK,CACd,CAEA,GAAK,GAAGC,EAAe,CACrB,KAAK,EAAIA,CACX,CAEA,GAAK,GAAGA,EAAe,CACrB,KAAK,EAAIA,CACX,CAEA,YAAqB,CACnB,MAAO,GAAG,KAAK,IAAI,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC,GAC1C,CAEA,UAAW,CACT,OAAO,KAAK,UAAU,EAAE,CAC1B,CACF,EAEMC,EAAN,MAAMC,UAAkBN,CAAS,CAAjC,kCACEG,EAAA,KAAS,OAAO,SAEhB,MAAMF,EAAWC,EAAgB,CAC/B,OAAO,IAAII,EAAUL,EAAGC,CAAC,CAC3B,CAEA,MAAMD,EAAWC,EAAWK,EAAgB,CAC1C,OAAO,IAAIC,EAAUP,EAAGC,EAAGK,CAAC,CAC9B,CAEA,MAAMN,EAAWC,EAAWK,EAAWE,EAAgB,CACrD,OAAO,IAAIC,EAAUT,EAAGC,EAAGK,EAAGE,CAAC,CACjC,CACF,EAEME,EAAN,MAAMC,UAAkBZ,CAAS,CAAjC,kCACEG,EAAA,KAAS,OAAO,SAEhB,MAAMF,EAAWC,EAAgB,CAC/B,OAAO,IAAIU,EAAUX,EAAGC,CAAC,CAC3B,CAEA,MAAMD,EAAWC,EAAWK,EAAgB,CAC1C,OAAO,IAAIM,EAAUZ,EAAGC,EAAGK,CAAC,CAC9B,CAEA,MAAMN,EAAWC,EAAWK,EAAWE,EAAgB,CACrD,OAAO,IAAIK,EAAUb,EAAGC,EAAGK,EAAGE,CAAC,CACjC,CACF,EAEMM,EAAN,MAAMC,UAAkBhB,CAAS,CAAjC,kCACEG,EAAA,KAAS,OAAO,SAEhB,MAAMF,EAAWC,EAAgB,CAC/B,OAAO,IAAIc,EAAUf,EAAGC,CAAC,CAC3B,CAEA,MAAMD,EAAWC,EAAWK,EAAgB,CAC1C,OAAO,IAAIU,EAAUhB,EAAGC,EAAGK,CAAC,CAC9B,CAEA,MAAMN,EAAWC,EAAWK,EAAWE,EAAgB,CACrD,OAAO,IAAIS,EAAUjB,EAAGC,EAAGK,EAAGE,CAAC,CACjC,CACF,EAEMU,EAAN,MAAMC,UAAkBpB,CAAS,CAAjC,kCACEG,EAAA,KAAS,OAAO,SAEhB,MAAMF,EAAWC,EAAgB,CAC/B,OAAO,IAAIkB,EAAUnB,EAAGC,CAAC,CAC3B,CAEA,MAAMD,EAAWC,EAAWK,EAAgB,CAC1C,OAAO,IAAIc,EAAUpB,EAAGC,EAAGK,CAAC,CAC9B,CAEA,MAAMN,EAAWC,EAAWK,EAAWE,EAAgB,CACrD,OAAO,IAAIa,EAAUrB,EAAGC,EAAGK,EAAGE,CAAC,CACjC,CACF,EAEec,EAAf,KAAkD,CAKhD,YACStB,EACAC,EACAK,EACP,CAHO,OAAAN,EACA,OAAAC,EACA,OAAAK,EAPTJ,EAAA,KAAgB,SAAS,EAQtB,CAEH,EAAE,OAAO,QAAQ,GAAI,CACnB,MAAM,KAAK,EACX,MAAM,KAAK,EACX,MAAM,KAAK,CACb,CAEA,GAAK,IAAK,CACR,OAAO,KAAK,CACd,CAEA,GAAK,IAAK,CACR,OAAO,KAAK,CACd,CAEA,GAAK,IAAK,CACR,OAAO,KAAK,CACd,CAEA,GAAK,GAAGC,EAAe,CACrB,KAAK,EAAIA,CACX,CAEA,GAAK,GAAGA,EAAe,CACrB,KAAK,EAAIA,CACX,CAEA,GAAK,GAAGA,EAAe,CACrB,KAAK,EAAIA,CACX,CAEA,YAAqB,CACnB,MAAO,GAAG,KAAK,IAAI,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC,KAAK,KAAK,CAAC,GACrD,CAEA,UAAW,CACT,OAAO,KAAK,UAAU,EAAE,CAC1B,CACF,EAEMI,EAAN,MAAMgB,UAAkBD,CAAS,CAAjC,kCACEpB,EAAA,KAAS,OAAO,SAEhB,MAAMF,EAAWC,EAAgB,CAC/B,OAAO,IAAIG,EAAUJ,EAAGC,CAAC,CAC3B,CAEA,MAAMD,EAAWC,EAAWK,EAAgB,CAC1C,OAAO,IAAIiB,EAAUvB,EAAGC,EAAGK,CAAC,CAC9B,CAEA,MAAMN,EAAWC,EAAWK,EAAWE,EAAgB,CACrD,OAAO,IAAIC,EAAUT,EAAGC,EAAGK,EAAGE,CAAC,CACjC,CACF,EAEMI,EAAN,MAAMY,UAAkBF,CAAS,CAAjC,kCACEpB,EAAA,KAAS,OAAO,SAEhB,MAAMF,EAAWC,EAAgB,CAC/B,OAAO,IAAIS,EAAUV,EAAGC,CAAC,CAC3B,CAEA,MAAMD,EAAWC,EAAWK,EAAgB,CAC1C,OAAO,IAAIkB,EAAUxB,EAAGC,EAAGK,CAAC,CAC9B,CAEA,MAAMN,EAAWC,EAAWK,EAAWE,EAAgB,CACrD,OAAO,IAAIK,EAAUb,EAAGC,EAAGK,EAAGE,CAAC,CACjC,CACF,EAEMQ,EAAN,MAAMS,UAAkBH,CAAS,CAAjC,kCACEpB,EAAA,KAAS,OAAO,SAEhB,MAAMF,EAAWC,EAAgB,CAC/B,OAAO,IAAIa,EAAUd,EAAGC,CAAC,CAC3B,CAEA,MAAMD,EAAWC,EAAWK,EAAgB,CAC1C,OAAO,IAAImB,EAAUzB,EAAGC,EAAGK,CAAC,CAC9B,CAEA,MAAMN,EAAWC,EAAWK,EAAWE,EAAgB,CACrD,OAAO,IAAIS,EAAUjB,EAAGC,EAAGK,EAAGE,CAAC,CACjC,CACF,EAEMY,EAAN,MAAMM,UAAkBJ,CAAS,CAAjC,kCACEpB,EAAA,KAAS,OAAO,SAEhB,MAAMF,EAAWC,EAAgB,CAC/B,OAAO,IAAIiB,EAAUlB,EAAGC,CAAC,CAC3B,CAEA,MAAMD,EAAWC,EAAWK,EAAgB,CAC1C,OAAO,IAAIoB,EAAU1B,EAAGC,EAAGK,CAAC,CAC9B,CAEA,MAAMN,EAAWC,EAAWK,EAAWE,EAAgB,CACrD,OAAO,IAAIa,EAAUrB,EAAGC,EAAGK,EAAGE,CAAC,CACjC,CACF,EAEemB,EAAf,KAAkD,CAKhD,YACS3B,EACAC,EACAK,EACAE,EACP,CAJO,OAAAR,EACA,OAAAC,EACA,OAAAK,EACA,OAAAE,EARTN,EAAA,KAAgB,SAAS,EAStB,CAEH,EAAE,OAAO,QAAQ,GAAI,CACnB,MAAM,KAAK,EACX,MAAM,KAAK,EACX,MAAM,KAAK,EACX,MAAM,KAAK,CACb,CAEA,GAAK,IAAK,CACR,OAAO,KAAK,CACd,CAEA,GAAK,IAAK,CACR,OAAO,KAAK,CACd,CAEA,GAAK,IAAK,CACR,OAAO,KAAK,CACd,CAEA,GAAK,IAAK,CACR,OAAO,KAAK,CACd,CAEA,GAAK,GAAGC,EAAe,CACrB,KAAK,EAAIA,CACX,CAEA,GAAK,GAAGA,EAAe,CACrB,KAAK,EAAIA,CACX,CAEA,GAAK,GAAGA,EAAe,CACrB,KAAK,EAAIA,CACX,CAEA,GAAK,GAAGA,EAAe,CACrB,KAAK,EAAIA,CACX,CAEA,YAAqB,CACnB,MAAO,GAAG,KAAK,IAAI,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC,KAAK,KAAK,CAAC,KAAK,KAAK,CAAC,GAChE,CAEA,UAAW,CACT,OAAO,KAAK,UAAU,EAAE,CAC1B,CACF,EAEMM,EAAN,MAAMmB,UAAkBD,CAAS,CAAjC,kCACEzB,EAAA,KAAS,OAAO,SAEhB,MAAMF,EAAWC,EAAgB,CAC/B,OAAO,IAAIG,EAAUJ,EAAGC,CAAC,CAC3B,CAEA,MAAMD,EAAWC,EAAWK,EAAgB,CAC1C,OAAO,IAAIC,EAAUP,EAAGC,EAAGK,CAAC,CAC9B,CAEA,MAAMN,EAAWC,EAAWK,EAAWE,EAAgB,CACrD,OAAO,IAAIoB,EAAU5B,EAAGC,EAAGK,EAAGE,CAAC,CACjC,CACF,EAEMK,EAAN,MAAMgB,UAAkBF,CAAS,CAAjC,kCACEzB,EAAA,KAAS,OAAO,SAEhB,MAAMF,EAAWC,EAAgB,CAC/B,OAAO,IAAIS,EAAUV,EAAGC,CAAC,CAC3B,CAEA,MAAMD,EAAWC,EAAWK,EAAgB,CAC1C,OAAO,IAAIM,EAAUZ,EAAGC,EAAGK,CAAC,CAC9B,CAEA,MAAMN,EAAWC,EAAWK,EAAWE,EAAgB,CACrD,OAAO,IAAIqB,EAAU7B,EAAGC,EAAGK,EAAGE,CAAC,CACjC,CACF,EAEMS,EAAN,MAAMa,UAAkBH,CAAS,CAAjC,kCACEzB,EAAA,KAAS,OAAO,SAEhB,MAAMF,EAAWC,EAAgB,CAC/B,OAAO,IAAIa,EAAUd,EAAGC,CAAC,CAC3B,CAEA,MAAMD,EAAWC,EAAWK,EAAgB,CAC1C,OAAO,IAAIU,EAAUhB,EAAGC,EAAGK,CAAC,CAC9B,CAEA,MAAMN,EAAWC,EAAWK,EAAWE,EAAgB,CACrD,OAAO,IAAIsB,EAAU9B,EAAGC,EAAGK,EAAGE,CAAC,CACjC,CACF,EAEMa,EAAN,MAAMU,UAAkBJ,CAAS,CAAjC,kCACEzB,EAAA,KAAS,OAAO,SAEhB,MAAMF,EAAWC,EAAgB,CAC/B,OAAO,IAAIiB,EAAUlB,EAAGC,CAAC,CAC3B,CAEA,MAAMD,EAAWC,EAAWK,EAAgB,CAC1C,OAAO,IAAIc,EAAUpB,EAAGC,EAAGK,CAAC,CAC9B,CAEA,MAAMN,EAAWC,EAAWK,EAAWE,EAAgB,CACrD,OAAO,IAAIuB,EAAU/B,EAAGC,EAAGK,EAAGE,CAAC,CACjC,CACF,EAEMwB,EAAmD,CACvD,IAAK,CAACC,EAAQC,IAAS,CACrB,GAAI,OAAOA,GAAS,UAAY,CAAC,OAAO,MAAM,OAAO,SAASA,CAAI,CAAC,EACjE,OAAO,QAAQ,IAAID,EAAQC,CAAI,EAGjC,IAAMC,EAAeF,EACfpC,EAAS,IAAI,MAAMqC,EAAK,MAAM,EAEhCE,EAAM,EACV,QAAWC,KAAQH,EAAgB,CACjC,OAAQG,EAAM,CACZ,IAAK,IACHxC,EAAOuC,CAAG,EAAID,EAAa,EAC3B,MACF,IAAK,IACHtC,EAAOuC,CAAG,EAAID,EAAa,EAC3B,MACF,IAAK,IACHtC,EAAOuC,CAAG,EAAID,EAAa,EAC3B,MACF,IAAK,IACHtC,EAAOuC,CAAG,EAAID,EAAa,EAC3B,MACF,QACE,OAAO,QAAQ,IAAIA,EAAcD,CAAI,CACzC,CACAE,GACF,CAEA,OAAIF,EAAK,SAAW,EACX,IAAI,MACTC,EAAa,MACXtC,EAAO,CAAC,EACRA,EAAO,CAAC,EACRA,EAAO,CAAC,EACRA,EAAO,CAAC,CACV,EACAmC,CACF,EAGEE,EAAK,SAAW,EACX,IAAI,MACTC,EAAa,MACXtC,EAAO,CAAC,EACRA,EAAO,CAAC,EACRA,EAAO,CAAC,CACV,EACAmC,CACF,EAGEE,EAAK,SAAW,EACX,IAAI,MACTC,EAAa,MAAMtC,EAAO,CAAC,EAAaA,EAAO,CAAC,CAAW,EAC3DmC,CACF,EAGK,QAAQ,IAAIC,EAAQC,CAAI,CACjC,CACF,EA8CaI,EAAQ9C,EAAc,CACjC,KAAM,QACN,OAAQ,EACR,KAAM,CAACQ,EAAWC,IAChB,IAAI,MAAM,IAAIG,EAAUJ,EAAGC,CAAC,EAAG+B,CAAe,EAChD,eAAiBhC,GAAM,IAAI,MAAM,IAAII,EAAUJ,EAAGA,CAAC,EAAGgC,CAAe,CACvE,CAAC,EAyBYO,EAAQ/C,EAAc,CACjC,KAAM,QACN,OAAQ,EACR,KAAM,CAACQ,EAAWC,IAChB,IAAI,MAAM,IAAIS,EAAUV,EAAGC,CAAC,EAAG+B,CAAe,EAChD,eAAiBhC,GAAM,IAAI,MAAM,IAAIU,EAAUV,EAAGA,CAAC,EAAGgC,CAAe,CACvE,CAAC,EAyBYQ,EAAQhD,EAAc,CACjC,KAAM,QACN,OAAQ,EACR,KAAM,CAACQ,EAAWC,IAChB,IAAI,MAAM,IAAIa,EAAUd,EAAGC,CAAC,EAAG+B,CAAe,EAChD,eAAiBhC,GAAM,IAAI,MAAM,IAAIc,EAAUd,EAAGA,CAAC,EAAGgC,CAAe,CACvE,CAAC,EAyBYS,EAAQjD,EAAc,CACjC,KAAM,QACN,OAAQ,EACR,KAAM,CAACQ,EAAWC,IAChB,IAAI,MAAM,IAAIiB,EAAUlB,EAAGC,CAAC,EAAG+B,CAAe,EAChD,eAAiBhC,GAAM,IAAI,MAAM,IAAIkB,EAAUlB,EAAGA,CAAC,EAAGgC,CAAe,CACvE,CAAC,EA0BYU,EAAQlD,EAAc,CACjC,KAAM,QACN,OAAQ,EACR,KAAM,CAACQ,EAAGC,EAAGK,IAAM,IAAI,MAAM,IAAIC,EAAUP,EAAGC,EAAGK,CAAC,EAAG0B,CAAe,EACpE,eAAiBhC,GACf,IAAI,MAAM,IAAIO,EAAUP,EAAGA,EAAGA,CAAC,EAAGgC,CAAe,CACrD,CAAC,EA0BYW,GAAQnD,EAAc,CACjC,KAAM,QACN,OAAQ,EACR,KAAM,CAACQ,EAAGC,EAAGK,IAAM,IAAI,MAAM,IAAIM,EAAUZ,EAAGC,EAAGK,CAAC,EAAG0B,CAAe,EACpE,eAAiBhC,GACf,IAAI,MAAM,IAAIY,EAAUZ,EAAGA,EAAGA,CAAC,EAAGgC,CAAe,CACrD,CAAC,EA0BYY,GAAQpD,EAAc,CACjC,KAAM,QACN,OAAQ,EACR,KAAM,CAACQ,EAAGC,EAAGK,IAAM,IAAI,MAAM,IAAIU,EAAUhB,EAAGC,EAAGK,CAAC,EAAG0B,CAAe,EACpE,eAAiBhC,GACf,IAAI,MAAM,IAAIgB,EAAUhB,EAAGA,EAAGA,CAAC,EAAGgC,CAAe,CACrD,CAAC,EA0BYa,GAAQrD,EAAc,CACjC,KAAM,QACN,OAAQ,EACR,KAAM,CAACQ,EAAGC,EAAGK,IAAM,IAAI,MAAM,IAAIc,EAAUpB,EAAGC,EAAGK,CAAC,EAAG0B,CAAe,EACpE,eAAiBhC,GACf,IAAI,MAAM,IAAIoB,EAAUpB,EAAGA,EAAGA,CAAC,EAAGgC,CAAe,CACrD,CAAC,EA2BYc,GAAQtD,EAAc,CACjC,KAAM,QACN,OAAQ,EACR,KAAM,CAACQ,EAAGC,EAAGK,EAAGE,IACd,IAAI,MAAM,IAAIC,EAAUT,EAAGC,EAAGK,EAAGE,CAAC,EAAGwB,CAAe,EACtD,eAAiBhC,GACf,IAAI,MAAM,IAAIS,EAAUT,EAAGA,EAAGA,EAAGA,CAAC,EAAGgC,CAAe,CACxD,CAAC,EA2BYe,GAAQvD,EAAc,CACjC,KAAM,QACN,OAAQ,EACR,KAAM,CAACQ,EAAGC,EAAGK,EAAGE,IACd,IAAI,MAAM,IAAIK,EAAUb,EAAGC,EAAGK,EAAGE,CAAC,EAAGwB,CAAe,EACtD,eAAiBhC,GACf,IAAI,MAAM,IAAIa,EAAUb,EAAGA,EAAGA,EAAGA,CAAC,EAAGgC,CAAe,CACxD,CAAC,EA2BYgB,GAAQxD,EAAc,CACjC,KAAM,QACN,OAAQ,EACR,KAAM,CAACQ,EAAGC,EAAGK,EAAGE,IACd,IAAI,MAAM,IAAIS,EAAUjB,EAAGC,EAAGK,EAAGE,CAAC,EAAGwB,CAAe,EACtD,eAAiBhC,GACf,IAAI,MAAM,IAAIiB,EAAUjB,EAAGA,EAAGA,EAAGA,CAAC,EAAGgC,CAAe,CACxD,CAAC,EA2BYiB,GAAQzD,EAAc,CACjC,OAAQ,EACR,KAAM,QACN,KAAM,CAACQ,EAAGC,EAAGK,EAAGE,IACd,IAAI,MAAM,IAAIa,EAAUrB,EAAGC,EAAGK,EAAGE,CAAC,EAAGwB,CAAe,EACtD,eAAiBhC,GACf,IAAI,MAAM,IAAIqB,EAAUrB,EAAGA,EAAGA,EAAGA,CAAC,EAAGgC,CAAe,CACxD,CAAC","names":["prefix","invariant","condition","message","ResolutionError","_ResolutionError","cause","trace","entries","ancestor","newTrace","MissingSlotValueError","_MissingSlotValueError","slot","NotUniformError","_NotUniformError","value","_a","MissingLinksError","_MissingLinksError","fnLabel","externalNames","MissingBindGroupError","_MissingBindGroupError","layoutLabel","resolutionCtx","provideCtx","ctx","callback","invariant","getResolutionCtx","inGPUMode","makeVecSchema","options","VecSchema","args","_a","values","inGPUMode","vec2Impl","x","y","__publicField","value","vec2fImpl","_vec2fImpl","z","vec3fImpl","w","vec4fImpl","vec2hImpl","_vec2hImpl","vec3hImpl","vec4hImpl","vec2iImpl","_vec2iImpl","vec3iImpl","vec4iImpl","vec2uImpl","_vec2uImpl","vec3uImpl","vec4uImpl","vec3Impl","_vec3fImpl","_vec3hImpl","_vec3iImpl","_vec3uImpl","vec4Impl","_vec4fImpl","_vec4hImpl","_vec4iImpl","_vec4uImpl","vecProxyHandler","target","prop","targetAsVec4","idx","char","vec2f","vec2h","vec2i","vec2u","vec3f","vec3h","vec3i","vec3u","vec4f","vec4h","vec4i","vec4u"]}
package/chunk-MCUGRE3S.js DELETED
@@ -1,2 +0,0 @@
1
- import{c as o,l as w,m as d,o as h,p as V,q as I,s as O,t as b,u as x,w as F,x as B}from"./chunk-BGPVBIFN.js";import _ from"typed-binary";var ye={type:"bool"},ue=e=>w()?`u32(${e})`:typeof e=="boolean"?e?1:0:Number.isInteger(e)?((e<0||e>4294967295)&&console.warn(`u32 value ${e} overflowed`),(e&4294967295)>>>0):Math.max(0,Math.min(4294967295,Math.floor(e))),u=Object.assign(ue,{type:"u32"}),pe=e=>{if(w())return`i32(${e})`;if(typeof e=="boolean")return e?1:0;if(Number.isInteger(e))return(e<-2147483648||e>2147483647)&&console.warn(`i32 value ${e} overflowed`),(e|0)&4294967295;let t=e<0?Math.ceil(e):Math.floor(e);return Math.max(-2147483648,Math.min(2147483647,t))},k=Object.assign(pe,{type:"i32"}),me=e=>{if(w())return`f32(${e})`;if(typeof e=="boolean")return e?1:0;let t=new Float32Array(1);return t[0]=e,t[0]},p=Object.assign(me,{type:"f32"}),ce=e=>{if(w())return`f16(${e})`;if(typeof e=="boolean")return e?1:0;let t=new ArrayBuffer(2);return _.f16.write(new _.BufferWriter(t),e),_.f16.read(new _.BufferReader(t))},de=Object.assign(ce,{type:"f16"});var Te=["bool","f32","f16","i32","u32","vec2f","vec2h","vec2i","vec2u","vec3f","vec3h","vec3i","vec3u","vec4f","vec4h","vec4i","vec4u","mat2x2f","mat3x3f","mat4x4f","struct","array","atomic","decorated"];function C(e){return Te.includes(e==null?void 0:e.type)}function W(e){return(e==null?void 0:e.type)==="array"}function S(e){return(e==null?void 0:e.type)==="struct"}function fe(e){return(e==null?void 0:e.type)==="atomic"}function L(e){return(e==null?void 0:e.type)==="@align"}function E(e){return(e==null?void 0:e.type)==="@size"}function $(e){return(e==null?void 0:e.type)==="@location"}function be(e){return(e==null?void 0:e.type)==="@interpolate"}function R(e){return(e==null?void 0:e.type)==="@builtin"}function f(e){return(e==null?void 0:e.type)==="decorated"}var ge=e=>new j(e),j=class{constructor(t){this.propTypes=t;o(this,"_label");o(this,"type","struct");o(this,"~repr");o(this,"~exotic")}get label(){return this._label}$name(t){return this._label=t,this}toString(){var t;return`struct:${(t=this.label)!=null?t:"<unnamed>"}`}};var g=(e,t)=>{let n=t-1,a=~n;return e&n?(e&a)+t:e};var oe=["uint8","uint8x2","uint8x4","sint8","sint8x2","sint8x4","unorm8","unorm8x2","unorm8x4","snorm8","snorm8x2","snorm8x4","uint16","uint16x2","uint16x4","sint16","sint16x2","sint16x4","unorm16","unorm16x2","unorm16x4","snorm16","snorm16x2","snorm16x4","float16","float16x2","float16x4","float32","float32x2","float32x3","float32x4","uint32","uint32x2","uint32x3","uint32x4","sint32","sint32x2","sint32x3","sint32x4","unorm10-10-10-2","unorm8x4-bgra"],Ye={f32:"float32",vec2f:"float32x2",vec3f:"float32x3",vec4f:"float32x4",f16:"float16",vec2h:"float16x2",vec4h:"float16x4",u32:"uint32",vec2u:"uint32x2",vec3u:"uint32x3",vec4u:"uint32x4",i32:"sint32",vec2i:"sint32x2",vec3i:"sint32x3",vec4i:"sint32x4"};var ze=["unstruct","disarray","loose-decorated",...oe];function N(e){return ze.includes(e==null?void 0:e.type)}function z(e){return(e==null?void 0:e.type)==="disarray"}function v(e){return(e==null?void 0:e.type)==="unstruct"}function T(e){return(e==null?void 0:e.type)==="loose-decorated"}function D(e){var t,n;return(n=(t=e.attribs)==null?void 0:t.find(L))==null?void 0:n.value}function ae(e){var t,n;return(n=(t=e.attribs)==null?void 0:t.find(E))==null?void 0:n.value}function tt(e){var t,n;return(n=(t=e.attribs)==null?void 0:t.find($))==null?void 0:n.value}function ve(e){return C(e)||N(e)}var r=class{constructor(t){this.type=t;o(this,"~repr")}},De={uint8:u,uint8x2:V,uint8x4:B,sint8:k,sint8x2:h,sint8x4:F,unorm8:p,unorm8x2:d,unorm8x4:x,snorm8:p,snorm8x2:d,snorm8x4:x,uint16:u,uint16x2:V,uint16x4:B,sint16:k,sint16x2:h,sint16x4:F,unorm16:p,unorm16x2:d,unorm16x4:x,snorm16:p,snorm16x2:d,snorm16x4:x,float16:p,float16x2:d,float16x4:x,float32:p,float32x2:d,float32x3:I,float32x4:x,uint32:u,uint32x2:V,uint32x3:b,uint32x4:B,sint32:k,sint32x2:h,sint32x3:O,sint32x4:F,"unorm10-10-10-2":x,"unorm8x4-bgra":x},ie=Object.keys(De),at=new r("uint8"),it=new r("uint8x2"),st=new r("uint8x4"),lt=new r("sint8"),xt=new r("sint8x2"),yt=new r("sint8x4"),ut=new r("unorm8"),pt=new r("unorm8x2"),mt=new r("unorm8x4"),ct=new r("snorm8"),dt=new r("snorm8x2"),Tt=new r("snorm8x4"),ft=new r("uint16"),bt=new r("uint16x2"),wt=new r("uint16x4"),gt=new r("sint16"),zt=new r("sint16x2"),vt=new r("sint16x4"),Dt=new r("unorm16"),At=new r("unorm16x2"),ht=new r("unorm16x4"),Vt=new r("snorm16"),It=new r("snorm16x2"),Ft=new r("snorm16x4"),Bt=new r("float16"),kt=new r("float16x2"),Ct=new r("float16x4"),Wt=new r("float32"),St=new r("float32x2"),Lt=new r("float32x3"),Et=new r("float32x4"),_t=new r("uint32"),Nt=new r("uint32x2"),Mt=new r("uint32x3"),Ut=new r("uint32x4"),Pt=new r("sint32"),Ot=new r("sint32x2"),$t=new r("sint32x3"),Rt=new r("sint32x4"),jt=new r("unorm10-10-10-2"),Gt=new r("unorm8x4-bgra");var Ae={bool:4,f32:4,f16:2,i32:4,u32:4,vec2f:8,vec2h:4,vec2i:8,vec2u:8,vec3f:16,vec3h:8,vec3i:16,vec3u:16,vec4f:16,vec4h:8,vec4i:16,vec4u:16,mat2x2f:8,mat3x3f:16,mat4x4f:16};function he(e){var a,i,l;let t=e==null?void 0:e.type,n=Ae[t];if(n!==void 0)return n;if(S(e))return Object.values(e.propTypes).map(m).reduce((y,re)=>y>re?y:re);if(W(e))return m(e.elementType);if(v(e)){let y=Object.values(e.propTypes)[0];return y&&(a=D(y))!=null?a:1}if(z(e))return(i=D(e.elementType))!=null?i:1;if(f(e)||T(e))return(l=D(e))!=null?l:m(e.inner);if(ie.includes(t))return 1;throw new Error(`Cannot determine alignment of data: ${JSON.stringify(e)}`)}function Ve(e){var t,n;if(v(e)){let a=Object.values(e.propTypes)[0];return a?A(a):1}return z(e)?A(e.elementType):T(e)?(t=D(e))!=null?t:A(e.inner):(n=D(e))!=null?n:1}var se=new WeakMap,le=new WeakMap;function m(e){let t=se.get(e);return t===void 0&&(t=he(e),se.set(e,t)),t}function A(e){let t=le.get(e);return t===void 0&&(t=Ve(e),le.set(e,t)),t}function Ie(e){return m(e)}var Fe={bool:4,f32:4,f16:2,i32:4,u32:4,vec2f:8,vec2h:4,vec2i:8,vec2u:8,vec3f:12,vec3h:6,vec3i:12,vec3u:12,vec4f:16,vec4h:8,vec4i:16,vec4u:16,mat2x2f:16,mat3x3f:48,mat4x4f:64,uint8:1,uint8x2:2,uint8x4:4,sint8:1,sint8x2:2,sint8x4:4,unorm8:1,unorm8x2:2,unorm8x4:4,snorm8:1,snorm8x2:2,snorm8x4:4,uint16:2,uint16x2:4,uint16x4:8,sint16:2,sint16x2:4,sint16x4:8,unorm16:2,unorm16x2:4,unorm16x4:8,snorm16:2,snorm16x2:4,snorm16x4:8,float16:2,float16x2:4,float16x4:8,float32:4,float32x2:8,float32x3:12,float32x4:16,uint32:4,uint32x2:8,uint32x3:12,uint32x4:16,sint32:4,sint32x2:8,sint32x3:12,sint32x4:16,"unorm10-10-10-2":4,"unorm8x4-bgra":4};function Be(e){let t=0;for(let n of Object.values(e.propTypes)){if(Number.isNaN(t))throw new Error("Only the last property of a struct can be unbounded");if(t=g(t,m(n)),t+=c(n),Number.isNaN(t)&&n.type!=="array")throw new Error("Cannot nest unbounded struct within another struct")}return g(t,m(e))}function ke(e){let t=0;for(let n of Object.values(e.propTypes)){let a=A(n);t=g(t,a),t+=c(n)}return t}function Ce(e){var n;let t=Fe[e==null?void 0:e.type];if(t!==void 0)return t;if(S(e))return Be(e);if(v(e))return ke(e);if(W(e)){if(e.elementCount===0)return Number.NaN;let a=m(e.elementType);return g(c(e.elementType),a)*e.elementCount}if(z(e)){let a=A(e.elementType);return g(c(e.elementType),a)*e.elementCount}if(f(e)||T(e))return(n=ae(e))!=null?n:c(e.inner);throw new Error(`Cannot determine size of data: ${e}`)}var xe=new WeakMap;function c(e){let t=xe.get(e);return t===void 0&&(t=Ce(e),xe.set(e,t)),t}function We(e){return c(e)}var K=(e,t)=>new G(e,t),G=class{constructor(t,n){this.elementType=t;this.elementCount=n;o(this,"type","array");o(this,"~repr");o(this,"~exotic");if(Number.isNaN(c(t)))throw new Error("Cannot nest runtime sized arrays.")}toString(){return`arrayOf(${this.elementType})`}};var Se=(e,t)=>new H(e,t),H=class{constructor(t,n){this.elementType=t;this.elementCount=n;o(this,"type","disarray");o(this,"~repr")}};var Le=e=>new J(e),J=class{constructor(t){this.propTypes=t;o(this,"type","unstruct");o(this,"~repr")}};function te(e){let t={"~repr":void 0,type:e.type,label:e.type};return Object.assign((...a)=>{if(w())return`${t.type}(${a.join(", ")})`;let i=[];for(let l of a)if(typeof l=="number")i.push(l);else for(let y=0;y<l.length;++y)i.push(l[y]);for(let l=i.length;l<e.columns*e.rows;++l)i.push(0);return e.makeFromElements(...i)},t)}var q=class{constructor(...t){o(this,"columns");o(this,"length",4);this.columns=[this.makeColumn(t[0],t[1]),this.makeColumn(t[2],t[3])]}get 0(){return this.columns[0].x}get 1(){return this.columns[0].y}get 2(){return this.columns[1].x}get 3(){return this.columns[1].y}set 0(t){this.columns[0].x=t}set 1(t){this.columns[0].y=t}set 2(t){this.columns[1].x=t}set 3(t){this.columns[1].y=t}"~resolve"(){return`${this.kind}(${Array.from({length:this.length}).map((t,n)=>this[n]).join(", ")})`}},Q=class extends q{constructor(){super(...arguments);o(this,"kind","mat2x2f")}makeColumn(n,a){return d(n,a)}},X=class{constructor(...t){o(this,"columns");o(this,"length",12);this.columns=[this.makeColumn(t[0],t[1],t[2]),this.makeColumn(t[3],t[4],t[5]),this.makeColumn(t[6],t[7],t[8])]}get 0(){return this.columns[0].x}get 1(){return this.columns[0].y}get 2(){return this.columns[0].z}get 3(){return 0}get 4(){return this.columns[1].x}get 5(){return this.columns[1].y}get 6(){return this.columns[1].z}get 7(){return 0}get 8(){return this.columns[2].x}get 9(){return this.columns[2].y}get 10(){return this.columns[2].z}get 11(){return 0}set 0(t){this.columns[0].x=t}set 1(t){this.columns[0].y=t}set 2(t){this.columns[0].z=t}set 3(t){}set 4(t){this.columns[1].x=t}set 5(t){this.columns[1].y=t}set 6(t){this.columns[1].z=t}set 7(t){}set 8(t){this.columns[2].x=t}set 9(t){this.columns[2].y=t}set 10(t){this.columns[2].z=t}set 11(t){}"~resolve"(){return`${this.kind}(${this[0]}, ${this[1]}, ${this[2]}, ${this[4]}, ${this[5]}, ${this[6]}, ${this[8]}, ${this[9]}, ${this[10]})`}},Y=class extends X{constructor(){super(...arguments);o(this,"kind","mat3x3f")}makeColumn(n,a,i){return I(n,a,i)}},Z=class{constructor(...t){o(this,"columns");o(this,"length",16);this.columns=[this.makeColumn(t[0],t[1],t[2],t[3]),this.makeColumn(t[4],t[5],t[6],t[7]),this.makeColumn(t[8],t[9],t[10],t[11]),this.makeColumn(t[12],t[13],t[14],t[15])]}get 0(){return this.columns[0].x}get 1(){return this.columns[0].y}get 2(){return this.columns[0].z}get 3(){return this.columns[0].w}get 4(){return this.columns[1].x}get 5(){return this.columns[1].y}get 6(){return this.columns[1].z}get 7(){return this.columns[1].w}get 8(){return this.columns[2].x}get 9(){return this.columns[2].y}get 10(){return this.columns[2].z}get 11(){return this.columns[2].w}get 12(){return this.columns[3].x}get 13(){return this.columns[3].y}get 14(){return this.columns[3].z}get 15(){return this.columns[3].w}set 0(t){this.columns[0].x=t}set 1(t){this.columns[0].y=t}set 2(t){this.columns[0].z=t}set 3(t){this.columns[0].w=t}set 4(t){this.columns[1].x=t}set 5(t){this.columns[1].y=t}set 6(t){this.columns[1].z=t}set 7(t){this.columns[1].w=t}set 8(t){this.columns[2].x=t}set 9(t){this.columns[2].y=t}set 10(t){this.columns[2].z=t}set 11(t){this.columns[2].w=t}set 12(t){this.columns[3].x=t}set 13(t){this.columns[3].y=t}set 14(t){this.columns[3].z=t}set 15(t){this.columns[3].w=t}"~resolve"(){return`${this.kind}(${Array.from({length:this.length}).map((t,n)=>this[n]).join(", ")})`}},ee=class extends Z{constructor(){super(...arguments);o(this,"kind","mat4x4f")}makeColumn(n,a,i,l){return x(n,a,i,l)}},Ee=te({type:"mat2x2f",rows:2,columns:2,makeFromElements:(...e)=>new Q(...e)}),_e=te({type:"mat3x3f",rows:3,columns:3,makeFromElements:(...e)=>new Y(...e)}),Ne=te({type:"mat4x4f",rows:4,columns:4,makeFromElements:(...e)=>new ee(...e)});function Me(e){return e.kind==="mat3x3f"?[e[0],e[1],e[2],e[4],e[5],e[6],e[8],e[9],e[10]]:Array.from({length:e.length}).map((t,n)=>e[n])}function Ue(e){return new ne(e)}var ne=class{constructor(t){this.inner=t;o(this,"type","atomic");o(this,"~repr")}};function s(e,t){return f(e)?new U(e.inner,[t,...e.attribs]):T(e)?new P(e.inner,[t,...e.attribs]):N(e)?new P(e,[t]):new U(e,[t])}function Pe(e,t){return s(t,{type:"@align",value:e})}function Oe(e,t){return s(t,{type:"@size",value:e})}function $e(e,t){return s(t,{type:"@location",value:e})}function Re(e,t){return s(t,{type:"@interpolate",value:e})}function je(e){return(f(e)||T(e))&&e.attribs.find(R)!==void 0}function zn(e){return!f(e)&&!T(e)?"":e.attribs.map(t=>`${t.type}(${t.value}) `).join("")}var M=class{constructor(t,n){this.inner=t;this.attribs=n;o(this,"~repr");var l,y;let a=(l=n.find(L))==null?void 0:l.value,i=(y=n.find(E))==null?void 0:y.value;if(a!==void 0){if(a<=0)throw new Error(`Custom data alignment must be a positive number, got: ${a}.`);if(Math.log2(a)%1!==0)throw new Error(`Alignment has to be a power of 2, got: ${a}.`);if(C(this.inner)&&a%m(this.inner)!==0)throw new Error(`Custom alignment has to be a multiple of the standard data alignment. Got: ${a}, expected multiple of: ${m(this.inner)}.`)}if(i!==void 0){if(i<c(this.inner))throw new Error(`Custom data size cannot be smaller then the standard data size. Got: ${i}, expected at least: ${c(this.inner)}.`);if(i<=0)throw new Error(`Custom data size must be a positive number. Got: ${i}.`)}}},U=class extends M{constructor(){super(...arguments);o(this,"type","decorated")}},P=class extends M{constructor(){super(...arguments);o(this,"type","loose-decorated")}};var Ge={vertexIndex:s(u,{type:"@builtin",value:"vertex_index"}),instanceIndex:s(u,{type:"@builtin",value:"instance_index"}),position:s(x,{type:"@builtin",value:"position"}),clipDistances:s(K(u,8),{type:"@builtin",value:"clip_distances"}),frontFacing:s(p,{type:"@builtin",value:"front_facing"}),fragDepth:s(p,{type:"@builtin",value:"frag_depth"}),sampleIndex:s(u,{type:"@builtin",value:"sample_index"}),sampleMask:s(u,{type:"@builtin",value:"sample_mask"}),localInvocationId:s(b,{type:"@builtin",value:"local_invocation_id"}),localInvocationIndex:s(u,{type:"@builtin",value:"local_invocation_index"}),globalInvocationId:s(b,{type:"@builtin",value:"global_invocation_id"}),workgroupId:s(b,{type:"@builtin",value:"workgroup_id"}),numWorkgroups:s(b,{type:"@builtin",value:"num_workgroups"})};export{C as a,W as b,S as c,fe as d,L as e,E as f,$ as g,be as h,R as i,f as j,ye as k,u as l,k as m,p as n,de as o,ge as p,g as q,oe as r,Ye as s,N as t,z as u,v,T as w,tt as x,ve as y,ie as z,at as A,it as B,st as C,lt as D,xt as E,yt as F,ut as G,pt as H,mt as I,ct as J,dt as K,Tt as L,ft as M,bt as N,wt as O,gt as P,zt as Q,vt as R,Dt as S,At as T,ht as U,Vt as V,It as W,Ft as X,Bt as Y,kt as Z,Ct as _,Wt as $,St as aa,Lt as ba,Et as ca,_t as da,Nt as ea,Mt as fa,Ut as ga,Pt as ha,Ot as ia,$t as ja,Rt as ka,jt as la,Gt as ma,m as na,A as oa,Ie as pa,c as qa,We as ra,K as sa,Se as ta,Le as ua,Ee as va,_e as wa,Ne as xa,Me as ya,Ue as za,s as Aa,Pe as Ba,Oe as Ca,$e as Da,Re as Ea,je as Fa,zn as Ga,Ge as Ha};
2
- //# sourceMappingURL=chunk-MCUGRE3S.js.map