typegpu 0.3.3 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/attributes-BQuRnaZ4.d.ts +151 -0
  2. package/attributes-Bt2NG-9a.d.cts +151 -0
  3. package/chunk-LF344PKG.cjs +4 -0
  4. package/chunk-LF344PKG.cjs.map +1 -0
  5. package/chunk-SDSDWWKW.js +2 -0
  6. package/chunk-SDSDWWKW.js.map +1 -0
  7. package/chunk-Y2M5GYRO.cjs +2 -0
  8. package/chunk-Y2M5GYRO.cjs.map +1 -0
  9. package/chunk-YLI4IK35.js +4 -0
  10. package/chunk-YLI4IK35.js.map +1 -0
  11. package/data/index.cjs +1 -192
  12. package/data/index.d.cts +209 -2
  13. package/data/index.d.ts +209 -2
  14. package/data/index.js +1 -192
  15. package/index.cjs +18 -4269
  16. package/index.cjs.map +1 -1
  17. package/index.d.cts +146 -133
  18. package/index.d.ts +146 -133
  19. package/index.js +18 -4269
  20. package/index.js.map +1 -1
  21. package/package.json +2 -2
  22. package/std/index.cjs +1 -490
  23. package/std/index.cjs.map +1 -1
  24. package/std/index.d.cts +10 -3
  25. package/std/index.d.ts +10 -3
  26. package/std/index.js +1 -490
  27. package/std/index.js.map +1 -1
  28. package/vector-CeDeofzh.d.ts +176 -0
  29. package/vector-UFYwud47.d.cts +176 -0
  30. package/{vector-CDD2FV2v.d.cts → wgslTypes-BNsjCP--.d.cts} +477 -260
  31. package/{vector-CDD2FV2v.d.ts → wgslTypes-BNsjCP--.d.ts} +477 -260
  32. package/chunk-2CMWQRQC.cjs +0 -2
  33. package/chunk-2CMWQRQC.cjs.map +0 -1
  34. package/chunk-2ZAQFPSX.js +0 -1266
  35. package/chunk-2ZAQFPSX.js.map +0 -1
  36. package/chunk-35UVS2JJ.cjs +0 -591
  37. package/chunk-35UVS2JJ.cjs.map +0 -1
  38. package/chunk-A2QB4MSZ.js +0 -4
  39. package/chunk-A2QB4MSZ.js.map +0 -1
  40. package/chunk-CMYXKKUP.cjs +0 -1266
  41. package/chunk-CMYXKKUP.cjs.map +0 -1
  42. package/chunk-DDEF2Y4S.js +0 -591
  43. package/chunk-DDEF2Y4S.js.map +0 -1
  44. package/chunk-KYBPSQX5.js +0 -2
  45. package/chunk-KYBPSQX5.js.map +0 -1
  46. package/chunk-VRYGOFCW.cjs +0 -4
  47. package/chunk-VRYGOFCW.cjs.map +0 -1
  48. package/index-CuzbyKXg.d.cts +0 -751
  49. package/index-FHKuURMs.d.ts +0 -751
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":"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","names":["clamp"]}
1
+ {"version":3,"sources":["../../src/data/vectorOps.ts","../../src/std/numeric.ts"],"sourcesContent":["import { mat2x2f, mat3x3f, mat4x4f } from './matrix';\nimport {\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\ntype MatKind = 'mat2x2f' | 'mat3x3f' | 'mat4x4f';\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\n mat2x2f: (s: number, m: wgsl.m2x2f) => {\n const m_ = m.columns as [wgsl.v2f, wgsl.v2f];\n return mat2x2f(s * m_[0].x, s * m_[0].y, s * m_[1].x, s * m_[1].y);\n },\n\n mat3x3f: (s: number, m: wgsl.m3x3f) => {\n const m_ = m.columns as [wgsl.v3f, wgsl.v3f, wgsl.v3f];\n return mat3x3f(\n s * m_[0].x,\n s * m_[0].y,\n s * m_[0].z,\n\n s * m_[1].x,\n s * m_[1].y,\n s * m_[1].z,\n\n s * m_[2].x,\n s * m_[2].y,\n s * m_[2].z,\n );\n },\n\n mat4x4f: (s: number, m: wgsl.m4x4f) => {\n const m_ = m.columns as [wgsl.v4f, wgsl.v4f, wgsl.v4f, wgsl.v4f];\n return mat3x3f(\n s * m_[0].x,\n s * m_[0].y,\n s * m_[0].z,\n s * m_[0].w,\n\n s * m_[1].x,\n s * m_[1].y,\n s * m_[1].z,\n s * m_[1].w,\n\n s * m_[2].x,\n s * m_[2].y,\n s * m_[2].z,\n s * m_[2].w,\n\n s * m_[3].x,\n s * m_[3].y,\n s * m_[3].z,\n s * m_[3].w,\n );\n },\n } as Record<\n VecKind | MatKind,\n <T extends vBase | wgsl.AnyMatInstance>(s: number, v: T) => T\n >,\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\n mat2x2f: (a: wgsl.m2x2f, b: wgsl.m2x2f) => {\n const a_ = a.columns as [wgsl.v2f, wgsl.v2f];\n const b_ = b.columns as [wgsl.v2f, wgsl.v2f];\n\n return mat2x2f(\n a_[0].x * b_[0].x + a_[1].x * b_[0].y,\n a_[0].y * b_[0].x + a_[1].y * b_[0].y,\n\n a_[0].x * b_[1].x + a_[1].x * b_[1].y,\n a_[0].y * b_[1].x + a_[1].y * b_[1].y,\n );\n },\n\n mat3x3f: (a: wgsl.m3x3f, b: wgsl.m3x3f) => {\n const a_ = a.columns as [wgsl.v3f, wgsl.v3f, wgsl.v3f];\n const b_ = b.columns as [wgsl.v3f, wgsl.v3f, wgsl.v3f];\n\n return mat3x3f(\n a_[0].x * b_[0].x + a_[1].x * b_[0].y + a_[2].x * b_[0].z,\n a_[0].y * b_[0].x + a_[1].y * b_[0].y + a_[2].y * b_[0].z,\n a_[0].z * b_[0].x + a_[1].z * b_[0].y + a_[2].z * b_[0].z,\n\n a_[0].x * b_[1].x + a_[1].x * b_[1].y + a_[2].x * b_[1].z,\n a_[0].y * b_[1].x + a_[1].y * b_[1].y + a_[2].y * b_[1].z,\n a_[0].z * b_[1].x + a_[1].z * b_[1].y + a_[2].z * b_[1].z,\n\n a_[0].x * b_[2].x + a_[1].x * b_[2].y + a_[2].x * b_[2].z,\n a_[0].y * b_[2].x + a_[1].y * b_[2].y + a_[2].y * b_[2].z,\n a_[0].z * b_[2].x + a_[1].z * b_[2].y + a_[2].z * b_[2].z,\n );\n },\n\n mat4x4f: (a: wgsl.m4x4f, b: wgsl.m4x4f) => {\n const a_ = a.columns as [wgsl.v4f, wgsl.v4f, wgsl.v4f, wgsl.v4f];\n const b_ = b.columns as [wgsl.v4f, wgsl.v4f, wgsl.v4f, wgsl.v4f];\n\n return mat4x4f(\n a_[0].x * b_[0].x +\n a_[1].x * b_[0].y +\n a_[2].x * b_[0].z +\n a_[3].x * b_[0].w,\n a_[0].y * b_[0].x +\n a_[1].y * b_[0].y +\n a_[2].y * b_[0].z +\n a_[3].y * b_[0].w,\n a_[0].z * b_[0].x +\n a_[1].z * b_[0].y +\n a_[2].z * b_[0].z +\n a_[3].z * b_[0].w,\n a_[0].w * b_[0].x +\n a_[1].w * b_[0].y +\n a_[2].w * b_[0].z +\n a_[3].w * b_[0].w,\n\n a_[0].x * b_[1].x +\n a_[1].x * b_[1].y +\n a_[2].x * b_[1].z +\n a_[3].x * b_[1].w,\n a_[0].y * b_[1].x +\n a_[1].y * b_[1].y +\n a_[2].y * b_[1].z +\n a_[3].y * b_[1].w,\n a_[0].z * b_[1].x +\n a_[1].z * b_[1].y +\n a_[2].z * b_[1].z +\n a_[3].z * b_[1].w,\n a_[0].w * b_[1].x +\n a_[1].w * b_[1].y +\n a_[2].w * b_[1].z +\n a_[3].w * b_[1].w,\n\n a_[0].x * b_[2].x +\n a_[1].x * b_[2].y +\n a_[2].x * b_[2].z +\n a_[3].x * b_[2].w,\n a_[0].y * b_[2].x +\n a_[1].y * b_[2].y +\n a_[2].y * b_[2].z +\n a_[3].y * b_[2].w,\n a_[0].z * b_[2].x +\n a_[1].z * b_[2].y +\n a_[2].z * b_[2].z +\n a_[3].z * b_[2].w,\n a_[0].w * b_[2].x +\n a_[1].w * b_[2].y +\n a_[2].w * b_[2].z +\n a_[3].w * b_[2].w,\n\n a_[0].x * b_[3].x +\n a_[1].x * b_[3].y +\n a_[2].x * b_[3].z +\n a_[3].x * b_[3].w,\n a_[0].y * b_[3].x +\n a_[1].y * b_[3].y +\n a_[2].y * b_[3].z +\n a_[3].y * b_[3].w,\n a_[0].z * b_[3].x +\n a_[1].z * b_[3].y +\n a_[2].z * b_[3].z +\n a_[3].z * b_[3].w,\n a_[0].w * b_[3].x +\n a_[1].w * b_[3].y +\n a_[2].w * b_[3].z +\n a_[3].w * b_[3].w,\n );\n },\n } as Record<\n VecKind | MatKind,\n <T extends vBase | wgsl.AnyMatInstance>(lhs: T, rhs: T) => T\n >,\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 pow: {\n vec2f: (base: wgsl.v2f, exponent: wgsl.v2f) =>\n vec2f(base.x ** exponent.x, base.y ** exponent.y),\n vec2h: (base: wgsl.v2h, exponent: wgsl.v2h) =>\n vec2h(base.x ** exponent.x, base.y ** exponent.y),\n\n vec3f: (base: wgsl.v3f, exponent: wgsl.v3f) =>\n vec3f(base.x ** exponent.x, base.y ** exponent.y, base.z ** exponent.z),\n vec3h: (base: wgsl.v3h, exponent: wgsl.v3h) =>\n vec3h(base.x ** exponent.x, base.y ** exponent.y, base.z ** exponent.z),\n\n vec4f: (base: wgsl.v4f, exponent: wgsl.v4f) =>\n vec4f(\n base.x ** exponent.x,\n base.y ** exponent.y,\n base.z ** exponent.z,\n base.w ** exponent.w,\n ),\n vec4h: (base: wgsl.v4h, exponent: wgsl.v4h) =>\n vec4h(\n base.x ** exponent.x,\n base.y ** exponent.y,\n base.z ** exponent.z,\n base.w ** exponent.w,\n ),\n } as Record<\n 'vec2f' | 'vec3f' | 'vec4f' | 'vec2h' | 'vec3h' | 'vec4h' | 'number',\n <\n T extends\n | wgsl.v2f\n | wgsl.v3f\n | wgsl.v4f\n | wgsl.v2h\n | wgsl.v3h\n | wgsl.v4h\n | number,\n >(\n a: T,\n b: T,\n ) => T\n >,\n\n mix: {\n vec2f: (e1: wgsl.v2f, e2: wgsl.v2f, e3: wgsl.v2f | number) => {\n if (typeof e3 === 'number') {\n return vec2f(e1.x * (1 - e3) + e2.x * e3, e1.y * (1 - e3) + e2.y * e3);\n }\n return vec2f(\n e1.x * (1 - e3.x) + e2.x * e3.x,\n e1.y * (1 - e3.y) + e2.y * e3.y,\n );\n },\n vec2h: (e1: wgsl.v2h, e2: wgsl.v2h, e3: wgsl.v2h | number) => {\n if (typeof e3 === 'number') {\n return vec2h(e1.x * (1 - e3) + e2.x * e3, e1.y * (1 - e3) + e2.y * e3);\n }\n return vec2h(\n e1.x * (1 - e3.x) + e2.x * e3.x,\n e1.y * (1 - e3.y) + e2.y * e3.y,\n );\n },\n\n vec3f: (e1: wgsl.v3f, e2: wgsl.v3f, e3: wgsl.v3f | number) => {\n if (typeof e3 === 'number') {\n return vec3f(\n e1.x * (1 - e3) + e2.x * e3,\n e1.y * (1 - e3) + e2.y * e3,\n e1.z * (1 - e3) + e2.z * e3,\n );\n }\n return vec3f(\n e1.x * (1 - e3.x) + e2.x * e3.x,\n e1.y * (1 - e3.y) + e2.y * e3.y,\n e1.z * (1 - e3.z) + e2.z * e3.z,\n );\n },\n vec3h: (e1: wgsl.v3h, e2: wgsl.v3h, e3: wgsl.v3h | number) => {\n if (typeof e3 === 'number') {\n return vec3h(\n e1.x * (1 - e3) + e2.x * e3,\n e1.y * (1 - e3) + e2.y * e3,\n e1.z * (1 - e3) + e2.z * e3,\n );\n }\n return vec3h(\n e1.x * (1 - e3.x) + e2.x * e3.x,\n e1.y * (1 - e3.y) + e2.y * e3.y,\n e1.z * (1 - e3.z) + e2.z * e3.z,\n );\n },\n\n vec4f: (e1: wgsl.v4f, e2: wgsl.v4f, e3: wgsl.v4f | number) => {\n if (typeof e3 === 'number') {\n return vec4f(\n e1.x * (1 - e3) + e2.x * e3,\n e1.y * (1 - e3) + e2.y * e3,\n e1.z * (1 - e3) + e2.z * e3,\n e1.w * (1 - e3) + e2.w * e3,\n );\n }\n return vec4f(\n e1.x * (1 - e3.x) + e2.x * e3.x,\n e1.y * (1 - e3.y) + e2.y * e3.y,\n e1.z * (1 - e3.z) + e2.z * e3.z,\n e1.w * (1 - e3.w) + e2.w * e3.w,\n );\n },\n vec4h: (e1: wgsl.v4h, e2: wgsl.v4h, e3: wgsl.v4h | number) => {\n if (typeof e3 === 'number') {\n return vec4h(\n e1.x * (1 - e3) + e2.x * e3,\n e1.y * (1 - e3) + e2.y * e3,\n e1.z * (1 - e3) + e2.z * e3,\n e1.w * (1 - e3) + e2.w * e3,\n );\n }\n return vec4h(\n e1.x * (1 - e3.x) + e2.x * e3.x,\n e1.y * (1 - e3.y) + e2.y * e3.y,\n e1.z * (1 - e3.z) + e2.z * e3.z,\n e1.w * (1 - e3.w) + e2.w * e3.w,\n );\n },\n } as Record<\n 'vec2f' | 'vec3f' | 'vec4f' | 'vec2h' | 'vec3h' | 'vec4h',\n <T extends wgsl.v2f | wgsl.v3f | wgsl.v4f | wgsl.v2h | wgsl.v3h | wgsl.v4h>(\n a: T,\n b: T,\n c: T | number,\n ) => T\n >,\n};\n","import type { VecKind } from '../data/vector';\nimport { VectorOps } from '../data/vectorOps';\nimport type {\n AnyMatInstance,\n v2f,\n v2h,\n v3f,\n v3h,\n v3i,\n v3u,\n v4f,\n v4h,\n} 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 | AnyMatInstance>(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\nexport function exp(value: number): number {\n if (inGPUMode()) {\n return `exp(${value})` as unknown as number;\n }\n return Math.exp(value);\n}\n\nexport function pow(base: number, exponent: number): number;\nexport function pow<T extends v2f | v3f | v4f | v2h | v3h | v4h>(\n base: T,\n exponent: T,\n): T;\nexport function pow<T extends v2f | v3f | v4f | v2h | v3h | v4h | number>(\n base: T,\n exponent: T,\n): T {\n if (inGPUMode()) {\n return `pow(${base}, ${exponent})` as unknown as T;\n }\n if (typeof base === 'number' && typeof exponent === 'number') {\n return (base ** exponent) as T;\n }\n if (\n typeof base === 'object' &&\n typeof exponent === 'object' &&\n 'kind' in base &&\n 'kind' in exponent\n ) {\n return VectorOps.pow[base.kind](base, exponent) as T;\n }\n throw new Error('Invalid arguments to pow()');\n}\n\nexport function mix(e1: number, e2: number, e3: number): number;\nexport function mix<T extends v2f | v3f | v4f | v2h | v3h | v4h>(\n e1: T,\n e2: T,\n e3: number,\n): T;\nexport function mix<T extends v2f | v3f | v4f | v2h | v3h | v4h>(\n e1: T,\n e2: T,\n e3: T,\n): T;\n\nexport function mix<T extends v2f | v3f | v4f | v2h | v3h | v4h | number>(\n e1: T,\n e2: T,\n e3: T | number,\n): T {\n if (inGPUMode()) {\n return `mix(${e1}, ${e2}, ${e3})` as unknown as T;\n }\n\n if (typeof e1 === 'number') {\n if (typeof e3 !== 'number' || typeof e2 !== 'number') {\n throw new Error(\n 'When e1 and e2 are numbers, the blend factor must be a number.',\n );\n }\n return (e1 * (1 - e3) + e2 * e3) as T;\n }\n\n if (typeof e1 === 'number' || typeof e2 === 'number') {\n throw new Error('e1 and e2 need to both be vectors of the same kind.');\n }\n\n return VectorOps.mix[e1.kind](e1, e2, e3) as T;\n}\n"],"mappings":"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G,CAAC,EAAE,EAAIC,EAAG,CAAC,EAAE,EAChBD,EAAG,CAAC,EAAE,EAAIC,EAAG,CAAC,EAAE,EAClBD,EAAG,CAAC,EAAE,EAAIC,EAAG,CAAC,EAAE,EACdD,EAAG,CAAC,EAAE,EAAIC,EAAG,CAAC,EAAE,EAChBD,EAAG,CAAC,EAAE,EAAIC,EAAG,CAAC,EAAE,EAChBD,EAAG,CAAC,EAAE,EAAIC,EAAG,CAAC,EAAE,EAElBD,EAAG,CAAC,EAAE,EAAIC,EAAG,CAAC,EAAE,EACdD,EAAG,CAAC,EAAE,EAAIC,EAAG,CAAC,EAAE,EAChBD,EAAG,CAAC,EAAE,EAAIC,EAAG,CAAC,EAAE,EAChBD,EAAG,CAAC,EAAE,EAAIC,EAAG,CAAC,EAAE,EAClBD,EAAG,CAAC,EAAE,EAAIC,EAAG,CAAC,EAAE,EACdD,EAAG,CAAC,EAAE,EAAIC,EAAG,CAAC,EAAE,EAChBD,EAAG,CAAC,EAAE,EAAIC,EAAG,CAAC,EAAE,EAChBD,EAAG,CAAC,EAAE,EAAIC,EAAG,CAAC,EAAE,EAClBD,EAAG,CAAC,EAAE,EAAIC,EAAG,CAAC,EAAE,EACdD,EAAG,CAAC,EAAE,EAAIC,EAAG,CAAC,EAAE,EAChBD,EAAG,CAAC,EAAE,EAAIC,EAAG,CAAC,EAAE,EAChBD,EAAG,CAAC,EAAE,EAAIC,EAAG,CAAC,EAAE,EAClBD,EAAG,CAAC,EAAE,EAAIC,EAAG,CAAC,EAAE,EACdD,EAAG,CAAC,EAAE,EAAIC,EAAG,CAAC,EAAE,EAChBD,EAAG,CAAC,EAAE,EAAIC,EAAG,CAAC,EAAE,EAChBD,EAAG,CAAC,EAAE,EAAIC,EAAG,CAAC,EAAE,EAElBD,EAAG,CAAC,EAAE,EAAIC,EAAG,CAAC,EAAE,EACdD,EAAG,CAAC,EAAE,EAAIC,EAAG,CAAC,EAAE,EAChBD,EAAG,CAAC,EAAE,EAAIC,EAAG,CAAC,EAAE,EAChBD,EAAG,CAAC,EAAE,EAAIC,EAAG,CAAC,EAAE,EAClBD,EAAG,CAAC,EAAE,EAAIC,EAAG,CAAC,EAAE,EACdD,EAAG,CAAC,EAAE,EAAIC,EAAG,CAAC,EAAE,EAChBD,EAAG,C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","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","m","m_","mat2x2f","mat3x3f","a_","b_","mat4x4f","len","base","exponent","e1","e2","e3","add","lhs","rhs","inGPUMode","VectorOps","sub","mul","v","abs","value","ceil","clamp","low","high","cos","radians","cross","a","b","dot","normalize","floor","fract","length","max","min","sin","exp","pow","base","exponent","mix","e1","e2","e3"]}
@@ -0,0 +1,176 @@
1
+ import { V as Vec2f, e as Vec2h, h as Vec2i, k as Vec2u, c as Vec3f, f as Vec3h, i as Vec3i, l as Vec3u, d as Vec4f, g as Vec4h, j as Vec4i, m as Vec4u } from './wgslTypes-BNsjCP--.js';
2
+
3
+ /**
4
+ * Type encompassing all available kinds of vector.
5
+ */
6
+ type VecKind = 'vec2f' | 'vec2i' | 'vec2u' | 'vec2h' | 'vec3f' | 'vec3i' | 'vec3u' | 'vec3h' | 'vec4f' | 'vec4i' | 'vec4u' | 'vec4h';
7
+ /**
8
+ *
9
+ * Schema representing vec2f - a vector with 2 elements of type f32.
10
+ * Also a constructor function for this vector value.
11
+ *
12
+ * @example
13
+ * const vector = d.vec2f(); // (0.0, 0.0)
14
+ * const vector = d.vec2f(1); // (1.0, 1.0)
15
+ * const vector = d.vec2f(0.5, 0.1); // (0.5, 0.1)
16
+ *
17
+ * @example
18
+ * const buffer = root.createBuffer(d.vec2f, d.vec2f(0, 1)); // buffer holding a d.vec2f value, with an initial value of vec2f(0, 1);
19
+ */
20
+ declare const vec2f: Vec2f;
21
+ /**
22
+ *
23
+ * Schema representing vec2h - a vector with 2 elements of type f16.
24
+ * Also a constructor function for this vector value.
25
+ *
26
+ * @example
27
+ * const vector = d.vec2h(); // (0.0, 0.0)
28
+ * const vector = d.vec2h(1); // (1.0, 1.0)
29
+ * const vector = d.vec2h(0.5, 0.1); // (0.5, 0.1)
30
+ *
31
+ * @example
32
+ * const buffer = root.createBuffer(d.vec2h, d.vec2h(0, 1)); // buffer holding a d.vec2h value, with an initial value of vec2h(0, 1);
33
+ */
34
+ declare const vec2h: Vec2h;
35
+ /**
36
+ *
37
+ * Schema representing vec2i - a vector with 2 elements of type i32.
38
+ * Also a constructor function for this vector value.
39
+ *
40
+ * @example
41
+ * const vector = d.vec2i(); // (0, 0)
42
+ * const vector = d.vec2i(1); // (1, 1)
43
+ * const vector = d.vec2i(-1, 1); // (-1, 1)
44
+ *
45
+ * @example
46
+ * const buffer = root.createBuffer(d.vec2i, d.vec2i(0, 1)); // buffer holding a d.vec2i value, with an initial value of vec2i(0, 1);
47
+ */
48
+ declare const vec2i: Vec2i;
49
+ /**
50
+ *
51
+ * Schema representing vec2u - a vector with 2 elements of type u32.
52
+ * Also a constructor function for this vector value.
53
+ *
54
+ * @example
55
+ * const vector = d.vec2u(); // (0, 0)
56
+ * const vector = d.vec2u(1); // (1, 1)
57
+ * const vector = d.vec2u(1, 2); // (1, 2)
58
+ *
59
+ * @example
60
+ * const buffer = root.createBuffer(d.vec2u, d.vec2u(0, 1)); // buffer holding a d.vec2u value, with an initial value of vec2u(0, 1);
61
+ */
62
+ declare const vec2u: Vec2u;
63
+ /**
64
+ *
65
+ * Schema representing vec3f - a vector with 3 elements of type f32.
66
+ * Also a constructor function for this vector value.
67
+ *
68
+ * @example
69
+ * const vector = d.vec3f(); // (0.0, 0.0, 0.0)
70
+ * const vector = d.vec3f(1); // (1.0, 1.0, 1.0)
71
+ * const vector = d.vec3f(1, 2, 3.5); // (1.0, 2.0, 3.5)
72
+ *
73
+ * @example
74
+ * 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);
75
+ */
76
+ declare const vec3f: Vec3f;
77
+ /**
78
+ *
79
+ * Schema representing vec3h - a vector with 3 elements of type f16.
80
+ * Also a constructor function for this vector value.
81
+ *
82
+ * @example
83
+ * const vector = d.vec3h(); // (0.0, 0.0, 0.0)
84
+ * const vector = d.vec3h(1); // (1.0, 1.0, 1.0)
85
+ * const vector = d.vec3h(1, 2, 3.5); // (1.0, 2.0, 3.5)
86
+ *
87
+ * @example
88
+ * 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);
89
+ */
90
+ declare const vec3h: Vec3h;
91
+ /**
92
+ *
93
+ * Schema representing vec3i - a vector with 3 elements of type i32.
94
+ * Also a constructor function for this vector value.
95
+ *
96
+ * @example
97
+ * const vector = d.vec3i(); // (0, 0, 0)
98
+ * const vector = d.vec3i(1); // (1, 1, 1)
99
+ * const vector = d.vec3i(1, 2, -3); // (1, 2, -3)
100
+ *
101
+ * @example
102
+ * 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);
103
+ */
104
+ declare const vec3i: Vec3i;
105
+ /**
106
+ *
107
+ * Schema representing vec3u - a vector with 3 elements of type u32.
108
+ * Also a constructor function for this vector value.
109
+ *
110
+ * @example
111
+ * const vector = d.vec3u(); // (0, 0, 0)
112
+ * const vector = d.vec3u(1); // (1, 1, 1)
113
+ * const vector = d.vec3u(1, 2, 3); // (1, 2, 3)
114
+ *
115
+ * @example
116
+ * 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);
117
+ */
118
+ declare const vec3u: Vec3u;
119
+ /**
120
+ *
121
+ * Schema representing vec4f - a vector with 4 elements of type f32.
122
+ * Also a constructor function for this vector value.
123
+ *
124
+ * @example
125
+ * const vector = d.vec4f(); // (0.0, 0.0, 0.0, 0.0)
126
+ * const vector = d.vec4f(1); // (1.0, 1.0, 1.0, 1.0)
127
+ * const vector = d.vec4f(1, 2, 3, 4.5); // (1.0, 2.0, 3.0, 4.5)
128
+ *
129
+ * @example
130
+ * 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);
131
+ */
132
+ declare const vec4f: Vec4f;
133
+ /**
134
+ *
135
+ * Schema representing vec4h - a vector with 4 elements of type f16.
136
+ * Also a constructor function for this vector value.
137
+ *
138
+ * @example
139
+ * const vector = d.vec4h(); // (0.0, 0.0, 0.0, 0.0)
140
+ * const vector = d.vec4h(1); // (1.0, 1.0, 1.0, 1.0)
141
+ * const vector = d.vec4h(1, 2, 3, 4.5); // (1.0, 2.0, 3.0, 4.5)
142
+ *
143
+ * @example
144
+ * 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);
145
+ */
146
+ declare const vec4h: Vec4h;
147
+ /**
148
+ *
149
+ * Schema representing vec4i - a vector with 4 elements of type i32.
150
+ * Also a constructor function for this vector value.
151
+ *
152
+ * @example
153
+ * const vector = d.vec4i(); // (0, 0, 0, 0)
154
+ * const vector = d.vec4i(1); // (1, 1, 1, 1)
155
+ * const vector = d.vec4i(1, 2, 3, -4); // (1, 2, 3, -4)
156
+ *
157
+ * @example
158
+ * 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);
159
+ */
160
+ declare const vec4i: Vec4i;
161
+ /**
162
+ *
163
+ * Schema representing vec4u - a vector with 4 elements of type u32.
164
+ * Also a constructor function for this vector value.
165
+ *
166
+ * @example
167
+ * const vector = d.vec4u(); // (0, 0, 0, 0)
168
+ * const vector = d.vec4u(1); // (1, 1, 1, 1)
169
+ * const vector = d.vec4u(1, 2, 3, 4); // (1, 2, 3, 4)
170
+ *
171
+ * @example
172
+ * 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);
173
+ */
174
+ declare const vec4u: Vec4u;
175
+
176
+ export { type VecKind as V, vec2h as a, vec2i as b, vec2u as c, vec3f as d, vec3h as e, vec3i as f, vec3u as g, vec4f as h, vec4h as i, vec4i as j, vec4u as k, vec2f as v };
@@ -0,0 +1,176 @@
1
+ import { V as Vec2f, e as Vec2h, h as Vec2i, k as Vec2u, c as Vec3f, f as Vec3h, i as Vec3i, l as Vec3u, d as Vec4f, g as Vec4h, j as Vec4i, m as Vec4u } from './wgslTypes-BNsjCP--.cjs';
2
+
3
+ /**
4
+ * Type encompassing all available kinds of vector.
5
+ */
6
+ type VecKind = 'vec2f' | 'vec2i' | 'vec2u' | 'vec2h' | 'vec3f' | 'vec3i' | 'vec3u' | 'vec3h' | 'vec4f' | 'vec4i' | 'vec4u' | 'vec4h';
7
+ /**
8
+ *
9
+ * Schema representing vec2f - a vector with 2 elements of type f32.
10
+ * Also a constructor function for this vector value.
11
+ *
12
+ * @example
13
+ * const vector = d.vec2f(); // (0.0, 0.0)
14
+ * const vector = d.vec2f(1); // (1.0, 1.0)
15
+ * const vector = d.vec2f(0.5, 0.1); // (0.5, 0.1)
16
+ *
17
+ * @example
18
+ * const buffer = root.createBuffer(d.vec2f, d.vec2f(0, 1)); // buffer holding a d.vec2f value, with an initial value of vec2f(0, 1);
19
+ */
20
+ declare const vec2f: Vec2f;
21
+ /**
22
+ *
23
+ * Schema representing vec2h - a vector with 2 elements of type f16.
24
+ * Also a constructor function for this vector value.
25
+ *
26
+ * @example
27
+ * const vector = d.vec2h(); // (0.0, 0.0)
28
+ * const vector = d.vec2h(1); // (1.0, 1.0)
29
+ * const vector = d.vec2h(0.5, 0.1); // (0.5, 0.1)
30
+ *
31
+ * @example
32
+ * const buffer = root.createBuffer(d.vec2h, d.vec2h(0, 1)); // buffer holding a d.vec2h value, with an initial value of vec2h(0, 1);
33
+ */
34
+ declare const vec2h: Vec2h;
35
+ /**
36
+ *
37
+ * Schema representing vec2i - a vector with 2 elements of type i32.
38
+ * Also a constructor function for this vector value.
39
+ *
40
+ * @example
41
+ * const vector = d.vec2i(); // (0, 0)
42
+ * const vector = d.vec2i(1); // (1, 1)
43
+ * const vector = d.vec2i(-1, 1); // (-1, 1)
44
+ *
45
+ * @example
46
+ * const buffer = root.createBuffer(d.vec2i, d.vec2i(0, 1)); // buffer holding a d.vec2i value, with an initial value of vec2i(0, 1);
47
+ */
48
+ declare const vec2i: Vec2i;
49
+ /**
50
+ *
51
+ * Schema representing vec2u - a vector with 2 elements of type u32.
52
+ * Also a constructor function for this vector value.
53
+ *
54
+ * @example
55
+ * const vector = d.vec2u(); // (0, 0)
56
+ * const vector = d.vec2u(1); // (1, 1)
57
+ * const vector = d.vec2u(1, 2); // (1, 2)
58
+ *
59
+ * @example
60
+ * const buffer = root.createBuffer(d.vec2u, d.vec2u(0, 1)); // buffer holding a d.vec2u value, with an initial value of vec2u(0, 1);
61
+ */
62
+ declare const vec2u: Vec2u;
63
+ /**
64
+ *
65
+ * Schema representing vec3f - a vector with 3 elements of type f32.
66
+ * Also a constructor function for this vector value.
67
+ *
68
+ * @example
69
+ * const vector = d.vec3f(); // (0.0, 0.0, 0.0)
70
+ * const vector = d.vec3f(1); // (1.0, 1.0, 1.0)
71
+ * const vector = d.vec3f(1, 2, 3.5); // (1.0, 2.0, 3.5)
72
+ *
73
+ * @example
74
+ * 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);
75
+ */
76
+ declare const vec3f: Vec3f;
77
+ /**
78
+ *
79
+ * Schema representing vec3h - a vector with 3 elements of type f16.
80
+ * Also a constructor function for this vector value.
81
+ *
82
+ * @example
83
+ * const vector = d.vec3h(); // (0.0, 0.0, 0.0)
84
+ * const vector = d.vec3h(1); // (1.0, 1.0, 1.0)
85
+ * const vector = d.vec3h(1, 2, 3.5); // (1.0, 2.0, 3.5)
86
+ *
87
+ * @example
88
+ * 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);
89
+ */
90
+ declare const vec3h: Vec3h;
91
+ /**
92
+ *
93
+ * Schema representing vec3i - a vector with 3 elements of type i32.
94
+ * Also a constructor function for this vector value.
95
+ *
96
+ * @example
97
+ * const vector = d.vec3i(); // (0, 0, 0)
98
+ * const vector = d.vec3i(1); // (1, 1, 1)
99
+ * const vector = d.vec3i(1, 2, -3); // (1, 2, -3)
100
+ *
101
+ * @example
102
+ * 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);
103
+ */
104
+ declare const vec3i: Vec3i;
105
+ /**
106
+ *
107
+ * Schema representing vec3u - a vector with 3 elements of type u32.
108
+ * Also a constructor function for this vector value.
109
+ *
110
+ * @example
111
+ * const vector = d.vec3u(); // (0, 0, 0)
112
+ * const vector = d.vec3u(1); // (1, 1, 1)
113
+ * const vector = d.vec3u(1, 2, 3); // (1, 2, 3)
114
+ *
115
+ * @example
116
+ * 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);
117
+ */
118
+ declare const vec3u: Vec3u;
119
+ /**
120
+ *
121
+ * Schema representing vec4f - a vector with 4 elements of type f32.
122
+ * Also a constructor function for this vector value.
123
+ *
124
+ * @example
125
+ * const vector = d.vec4f(); // (0.0, 0.0, 0.0, 0.0)
126
+ * const vector = d.vec4f(1); // (1.0, 1.0, 1.0, 1.0)
127
+ * const vector = d.vec4f(1, 2, 3, 4.5); // (1.0, 2.0, 3.0, 4.5)
128
+ *
129
+ * @example
130
+ * 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);
131
+ */
132
+ declare const vec4f: Vec4f;
133
+ /**
134
+ *
135
+ * Schema representing vec4h - a vector with 4 elements of type f16.
136
+ * Also a constructor function for this vector value.
137
+ *
138
+ * @example
139
+ * const vector = d.vec4h(); // (0.0, 0.0, 0.0, 0.0)
140
+ * const vector = d.vec4h(1); // (1.0, 1.0, 1.0, 1.0)
141
+ * const vector = d.vec4h(1, 2, 3, 4.5); // (1.0, 2.0, 3.0, 4.5)
142
+ *
143
+ * @example
144
+ * 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);
145
+ */
146
+ declare const vec4h: Vec4h;
147
+ /**
148
+ *
149
+ * Schema representing vec4i - a vector with 4 elements of type i32.
150
+ * Also a constructor function for this vector value.
151
+ *
152
+ * @example
153
+ * const vector = d.vec4i(); // (0, 0, 0, 0)
154
+ * const vector = d.vec4i(1); // (1, 1, 1, 1)
155
+ * const vector = d.vec4i(1, 2, 3, -4); // (1, 2, 3, -4)
156
+ *
157
+ * @example
158
+ * 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);
159
+ */
160
+ declare const vec4i: Vec4i;
161
+ /**
162
+ *
163
+ * Schema representing vec4u - a vector with 4 elements of type u32.
164
+ * Also a constructor function for this vector value.
165
+ *
166
+ * @example
167
+ * const vector = d.vec4u(); // (0, 0, 0, 0)
168
+ * const vector = d.vec4u(1); // (1, 1, 1, 1)
169
+ * const vector = d.vec4u(1, 2, 3, 4); // (1, 2, 3, 4)
170
+ *
171
+ * @example
172
+ * 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);
173
+ */
174
+ declare const vec4u: Vec4u;
175
+
176
+ export { type VecKind as V, vec2h as a, vec2i as b, vec2u as c, vec3f as d, vec3h as e, vec3i as f, vec3u as g, vec4f as h, vec4h as i, vec4i as j, vec4u as k, vec2f as v };