typegpu 0.3.1 → 0.3.3
Sign up to get free protection for your applications and to get access to all the features.
- package/LICENSE.md +1 -1
- package/chunk-2CMWQRQC.cjs +2 -0
- package/chunk-2CMWQRQC.cjs.map +1 -0
- package/chunk-2ZAQFPSX.js +1266 -0
- package/chunk-2ZAQFPSX.js.map +1 -0
- package/chunk-35UVS2JJ.cjs +591 -0
- package/chunk-35UVS2JJ.cjs.map +1 -0
- package/chunk-A2QB4MSZ.js +4 -0
- package/{chunk-47YH5LQ7.cjs.map → chunk-A2QB4MSZ.js.map} +1 -1
- package/chunk-CMYXKKUP.cjs +1266 -0
- package/chunk-CMYXKKUP.cjs.map +1 -0
- package/chunk-DDEF2Y4S.js +591 -0
- package/chunk-DDEF2Y4S.js.map +1 -0
- package/chunk-KYBPSQX5.js +2 -0
- package/chunk-KYBPSQX5.js.map +1 -0
- package/chunk-VRYGOFCW.cjs +4 -0
- package/chunk-VRYGOFCW.cjs.map +1 -0
- package/data/index.cjs +192 -1
- package/data/index.d.cts +2 -2
- package/data/index.d.ts +2 -2
- package/data/index.js +192 -1
- package/{index-CopjPGJg.d.cts → index-CuzbyKXg.d.cts} +5 -3
- package/{index-BM7ZTN7E.d.ts → index-FHKuURMs.d.ts} +5 -3
- package/index.cjs +4269 -14
- package/index.cjs.map +1 -1
- package/index.d.cts +80 -11
- package/index.d.ts +80 -11
- package/index.js +4269 -14
- package/index.js.map +1 -1
- package/package.json +1 -1
- package/std/index.cjs +490 -1
- package/std/index.cjs.map +1 -1
- package/std/index.d.cts +1 -1
- package/std/index.d.ts +1 -1
- package/std/index.js +490 -1
- package/std/index.js.map +1 -1
- package/{vector-BSez01sn.d.cts → vector-CDD2FV2v.d.cts} +19 -3
- package/{vector-BSez01sn.d.ts → vector-CDD2FV2v.d.ts} +19 -3
- package/chunk-47YH5LQ7.cjs +0 -4
- package/chunk-BGPVBIFN.js +0 -4
- package/chunk-BGPVBIFN.js.map +0 -1
- package/chunk-MCUGRE3S.js +0 -2
- package/chunk-MCUGRE3S.js.map +0 -1
- package/chunk-OHFPIYFY.cjs +0 -2
- package/chunk-OHFPIYFY.cjs.map +0 -1
package/std/index.cjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/data/vectorOps.ts","../../src/std/numeric.ts"],"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","inGPUMode","sub","mul","abs","ceil","cos","radians","cross","dot","normalize","floor","fract","length","max","min","sin"],"mappings":"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","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"]}
|
1
|
+
{"version":3,"sources":["../../src/data/vectorOps.ts","../../src/std/numeric.ts"],"names":["clamp"],"mappings":"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","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"]}
|
package/std/index.d.cts
CHANGED
package/std/index.d.ts
CHANGED