typegpu 0.4.5 → 0.5.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.
- package/chunk-3JTP2ATR.cjs +2 -0
- package/chunk-3JTP2ATR.cjs.map +1 -0
- package/chunk-3QXCKMEJ.cjs +2 -0
- package/chunk-3QXCKMEJ.cjs.map +1 -0
- package/chunk-DR55IHDD.js +4 -0
- package/chunk-DR55IHDD.js.map +1 -0
- package/chunk-KVOFUY5A.js +2 -0
- package/chunk-KVOFUY5A.js.map +1 -0
- package/chunk-QRLTUOBJ.cjs +4 -0
- package/chunk-QRLTUOBJ.cjs.map +1 -0
- package/chunk-VOFHV4Z6.js +2 -0
- package/chunk-VOFHV4Z6.js.map +1 -0
- package/data/index.cjs +1 -1
- package/data/index.cjs.map +1 -1
- package/data/index.js +1 -1
- package/index.cjs +18 -13
- package/index.cjs.map +1 -1
- package/index.d.cts +44 -4
- package/index.d.ts +44 -4
- package/index.js +18 -13
- package/index.js.map +1 -1
- package/package.json +2 -2
- package/std/index.cjs +1 -1
- package/std/index.cjs.map +1 -1
- package/std/index.d.cts +72 -40
- package/std/index.d.ts +72 -40
- package/std/index.js +1 -1
- package/std/index.js.map +1 -1
- package/chunk-7S2KQX6O.js +0 -4
- package/chunk-7S2KQX6O.js.map +0 -1
- package/chunk-JSF3RDCP.js +0 -2
- package/chunk-JSF3RDCP.js.map +0 -1
- package/chunk-TLEBUZ6A.cjs +0 -4
- package/chunk-TLEBUZ6A.cjs.map +0 -1
- package/chunk-WVFPBCIE.cjs +0 -2
- package/chunk-WVFPBCIE.cjs.map +0 -1
package/std/index.d.cts
CHANGED
@@ -1,85 +1,117 @@
|
|
1
1
|
import { bk as VecKind, J as AnyMatInstance, bl as vBaseForMat, ai as v3f, aj as v3i, ak as v3u, af as v2f, al as v4f, bm as v2h, bn as v3h, bo as v4h, bp as atomicI32, bq as atomicU32 } from '../wgslTypes-VtSRoe90.cjs';
|
2
2
|
|
3
|
-
declare
|
3
|
+
declare const discard: () => never;
|
4
4
|
|
5
5
|
type vBase = {
|
6
6
|
kind: VecKind;
|
7
7
|
};
|
8
|
-
declare
|
9
|
-
declare
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
8
|
+
declare const add: <T extends vBase>(lhs: T, rhs: T) => T;
|
9
|
+
declare const sub: <T extends vBase>(lhs: T, rhs: T) => T;
|
10
|
+
type MulOverload = {
|
11
|
+
<T extends AnyMatInstance, TVec extends vBaseForMat<T>>(s: T, v: TVec): TVec;
|
12
|
+
<T extends AnyMatInstance, TVec extends vBaseForMat<T>>(s: TVec, v: T): TVec;
|
13
|
+
<T extends vBase | AnyMatInstance>(s: number | T, v: T): T;
|
14
|
+
};
|
15
|
+
declare const mul: MulOverload;
|
16
|
+
declare const abs: <T extends vBase | number>(value: T) => T;
|
17
|
+
declare const atan2: <T extends vBase | number>(y: T, x: T) => T;
|
18
|
+
declare const acos: <T extends vBase | number>(value: T) => T;
|
19
|
+
declare const asin: <T extends vBase | number>(value: T) => T;
|
15
20
|
/**
|
16
21
|
* @privateRemarks
|
17
22
|
* https://www.w3.org/TR/WGSL/#ceil-builtin
|
18
23
|
*/
|
19
|
-
declare
|
24
|
+
declare const ceil: <T extends vBase | number>(value: T) => T;
|
20
25
|
/**
|
21
26
|
* @privateRemarks
|
22
27
|
* https://www.w3.org/TR/WGSL/#clamp
|
23
28
|
*/
|
24
|
-
declare
|
29
|
+
declare const clamp: <T extends vBase | number>(value: T, low: T, high: T) => T;
|
25
30
|
/**
|
26
31
|
* @privateRemarks
|
27
32
|
* https://www.w3.org/TR/WGSL/#cos-builtin
|
28
33
|
*/
|
29
|
-
declare
|
34
|
+
declare const cos: <T extends vBase | number>(value: T) => T;
|
30
35
|
/**
|
31
36
|
* @privateRemarks
|
32
37
|
* https://www.w3.org/TR/WGSL/#cross-builtin
|
33
38
|
*/
|
34
|
-
declare
|
39
|
+
declare const cross: <T extends v3f | v3i | v3u>(a: T, b: T) => T;
|
35
40
|
/**
|
36
41
|
* @privateRemarks
|
37
42
|
* https://www.w3.org/TR/WGSL/#dot-builtin
|
38
43
|
*/
|
39
|
-
declare
|
40
|
-
declare
|
44
|
+
declare const dot: <T extends vBase>(lhs: T, rhs: T) => number;
|
45
|
+
declare const normalize: <T extends vBase>(v: T) => T;
|
41
46
|
/**
|
42
47
|
* @privateRemarks
|
43
48
|
* https://www.w3.org/TR/WGSL/#floor-builtin
|
44
49
|
*/
|
45
|
-
declare
|
46
|
-
declare
|
50
|
+
declare const floor: <T extends vBase | number>(value: T) => T;
|
51
|
+
declare const fract: <T extends vBase | number>(a: T) => T;
|
47
52
|
/**
|
48
53
|
* @privateRemarks
|
49
54
|
* https://www.w3.org/TR/WGSL/#length-builtin
|
50
55
|
*/
|
51
|
-
declare
|
56
|
+
declare const length: <T extends vBase | number>(value: T) => number;
|
52
57
|
/**
|
53
58
|
* @privateRemarks
|
54
59
|
* https://www.w3.org/TR/WGSL/#max-float-builtin
|
55
60
|
*/
|
56
|
-
declare
|
61
|
+
declare const max: <T extends vBase | number>(a: T, b: T) => T;
|
57
62
|
/**
|
58
63
|
* @privateRemarks
|
59
64
|
* https://www.w3.org/TR/WGSL/#min-float-builtin
|
60
65
|
*/
|
61
|
-
declare
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
declare
|
67
|
-
|
68
|
-
|
69
|
-
|
66
|
+
declare const min: <T extends vBase | number>(a: T, b: T) => T;
|
67
|
+
/**
|
68
|
+
* @privateRemarks
|
69
|
+
* https://www.w3.org/TR/WGSL/#sin-builtin
|
70
|
+
*/
|
71
|
+
declare const sin: <T extends vBase | number>(value: T) => T;
|
72
|
+
/**
|
73
|
+
* @privateRemarks
|
74
|
+
* https://www.w3.org/TR/WGSL/#exp-builtin
|
75
|
+
*/
|
76
|
+
declare const exp: <T extends vBase | number>(value: T) => T;
|
77
|
+
type PowOverload = {
|
78
|
+
(base: number, exponent: number): number;
|
79
|
+
<T extends v2f | v3f | v4f | v2h | v3h | v4h>(base: T, exponent: T): T;
|
80
|
+
};
|
81
|
+
declare const pow: PowOverload;
|
82
|
+
type MixOverload = {
|
83
|
+
(e1: number, e2: number, e3: number): number;
|
84
|
+
<T extends v2f | v3f | v4f | v2h | v3h | v4h>(e1: T, e2: T, e3: number): T;
|
85
|
+
<T extends v2f | v3f | v4f | v2h | v3h | v4h>(e1: T, e2: T, e3: T): T;
|
86
|
+
};
|
87
|
+
declare const mix: MixOverload;
|
88
|
+
declare const reflect: <T extends vBase>(e1: T, e2: T) => T;
|
89
|
+
declare const distance: <T extends vBase | number>(a: T, b: T) => number;
|
90
|
+
/**
|
91
|
+
* Checks whether the given elements differ by at most 0.01.
|
92
|
+
* Component-wise if arguments are vectors.
|
93
|
+
* @example
|
94
|
+
* isCloseTo(0, 0.1) // returns false
|
95
|
+
* isCloseTo(vec3f(0, 0, 0), vec3f(0.002, -0.009, 0)) // returns true
|
96
|
+
*
|
97
|
+
* @param {number} precision argument that specifies the maximum allowed difference, 0.01 by default.
|
98
|
+
*/
|
99
|
+
declare const isCloseTo: <T extends v2f | v3f | v4f | v2h | v3h | v4h | number>(e1: T, e2: T, precision?: number) => boolean;
|
70
100
|
|
71
101
|
type AnyAtomic = atomicI32 | atomicU32;
|
72
|
-
declare
|
73
|
-
declare
|
74
|
-
declare
|
75
|
-
declare
|
76
|
-
declare
|
77
|
-
declare
|
78
|
-
declare
|
79
|
-
declare
|
80
|
-
declare
|
81
|
-
declare
|
82
|
-
declare
|
83
|
-
declare
|
102
|
+
declare const workgroupBarrier: () => void;
|
103
|
+
declare const storageBarrier: () => void;
|
104
|
+
declare const textureBarrier: () => void;
|
105
|
+
declare const atomicLoad: <T extends AnyAtomic>(a: T) => number;
|
106
|
+
declare const atomicStore: <T extends AnyAtomic>(a: T, value: number) => void;
|
107
|
+
declare const atomicAdd: <T extends AnyAtomic>(a: T, value: number) => number;
|
108
|
+
declare const atomicSub: <T extends AnyAtomic>(a: T, value: number) => number;
|
109
|
+
declare const atomicMax: <T extends AnyAtomic>(a: T, value: number) => number;
|
110
|
+
declare const atomicMin: <T extends AnyAtomic>(a: T, value: number) => number;
|
111
|
+
declare const atomicAnd: <T extends AnyAtomic>(a: T, value: number) => number;
|
112
|
+
declare const atomicOr: <T extends AnyAtomic>(a: T, value: number) => number;
|
113
|
+
declare const atomicXor: <T extends AnyAtomic>(a: T, value: number) => number;
|
114
|
+
|
115
|
+
declare const arrayLength: (a: unknown[]) => number;
|
84
116
|
|
85
|
-
export { abs, add, atan2, atomicAdd, atomicAnd, atomicLoad, atomicMax, atomicMin, atomicOr, atomicStore, atomicSub, atomicXor, ceil, clamp, cos, cross, discard, dot, exp, floor, fract, length, max, min, mix, mul, normalize, pow, reflect, sin, storageBarrier, sub, textureBarrier, workgroupBarrier };
|
117
|
+
export { abs, acos, add, arrayLength, asin, atan2, atomicAdd, atomicAnd, atomicLoad, atomicMax, atomicMin, atomicOr, atomicStore, atomicSub, atomicXor, ceil, clamp, cos, cross, discard, distance, dot, exp, floor, fract, isCloseTo, length, max, min, mix, mul, normalize, pow, reflect, sin, storageBarrier, sub, textureBarrier, workgroupBarrier };
|
package/std/index.d.ts
CHANGED
@@ -1,85 +1,117 @@
|
|
1
1
|
import { bk as VecKind, J as AnyMatInstance, bl as vBaseForMat, ai as v3f, aj as v3i, ak as v3u, af as v2f, al as v4f, bm as v2h, bn as v3h, bo as v4h, bp as atomicI32, bq as atomicU32 } from '../wgslTypes-VtSRoe90.js';
|
2
2
|
|
3
|
-
declare
|
3
|
+
declare const discard: () => never;
|
4
4
|
|
5
5
|
type vBase = {
|
6
6
|
kind: VecKind;
|
7
7
|
};
|
8
|
-
declare
|
9
|
-
declare
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
8
|
+
declare const add: <T extends vBase>(lhs: T, rhs: T) => T;
|
9
|
+
declare const sub: <T extends vBase>(lhs: T, rhs: T) => T;
|
10
|
+
type MulOverload = {
|
11
|
+
<T extends AnyMatInstance, TVec extends vBaseForMat<T>>(s: T, v: TVec): TVec;
|
12
|
+
<T extends AnyMatInstance, TVec extends vBaseForMat<T>>(s: TVec, v: T): TVec;
|
13
|
+
<T extends vBase | AnyMatInstance>(s: number | T, v: T): T;
|
14
|
+
};
|
15
|
+
declare const mul: MulOverload;
|
16
|
+
declare const abs: <T extends vBase | number>(value: T) => T;
|
17
|
+
declare const atan2: <T extends vBase | number>(y: T, x: T) => T;
|
18
|
+
declare const acos: <T extends vBase | number>(value: T) => T;
|
19
|
+
declare const asin: <T extends vBase | number>(value: T) => T;
|
15
20
|
/**
|
16
21
|
* @privateRemarks
|
17
22
|
* https://www.w3.org/TR/WGSL/#ceil-builtin
|
18
23
|
*/
|
19
|
-
declare
|
24
|
+
declare const ceil: <T extends vBase | number>(value: T) => T;
|
20
25
|
/**
|
21
26
|
* @privateRemarks
|
22
27
|
* https://www.w3.org/TR/WGSL/#clamp
|
23
28
|
*/
|
24
|
-
declare
|
29
|
+
declare const clamp: <T extends vBase | number>(value: T, low: T, high: T) => T;
|
25
30
|
/**
|
26
31
|
* @privateRemarks
|
27
32
|
* https://www.w3.org/TR/WGSL/#cos-builtin
|
28
33
|
*/
|
29
|
-
declare
|
34
|
+
declare const cos: <T extends vBase | number>(value: T) => T;
|
30
35
|
/**
|
31
36
|
* @privateRemarks
|
32
37
|
* https://www.w3.org/TR/WGSL/#cross-builtin
|
33
38
|
*/
|
34
|
-
declare
|
39
|
+
declare const cross: <T extends v3f | v3i | v3u>(a: T, b: T) => T;
|
35
40
|
/**
|
36
41
|
* @privateRemarks
|
37
42
|
* https://www.w3.org/TR/WGSL/#dot-builtin
|
38
43
|
*/
|
39
|
-
declare
|
40
|
-
declare
|
44
|
+
declare const dot: <T extends vBase>(lhs: T, rhs: T) => number;
|
45
|
+
declare const normalize: <T extends vBase>(v: T) => T;
|
41
46
|
/**
|
42
47
|
* @privateRemarks
|
43
48
|
* https://www.w3.org/TR/WGSL/#floor-builtin
|
44
49
|
*/
|
45
|
-
declare
|
46
|
-
declare
|
50
|
+
declare const floor: <T extends vBase | number>(value: T) => T;
|
51
|
+
declare const fract: <T extends vBase | number>(a: T) => T;
|
47
52
|
/**
|
48
53
|
* @privateRemarks
|
49
54
|
* https://www.w3.org/TR/WGSL/#length-builtin
|
50
55
|
*/
|
51
|
-
declare
|
56
|
+
declare const length: <T extends vBase | number>(value: T) => number;
|
52
57
|
/**
|
53
58
|
* @privateRemarks
|
54
59
|
* https://www.w3.org/TR/WGSL/#max-float-builtin
|
55
60
|
*/
|
56
|
-
declare
|
61
|
+
declare const max: <T extends vBase | number>(a: T, b: T) => T;
|
57
62
|
/**
|
58
63
|
* @privateRemarks
|
59
64
|
* https://www.w3.org/TR/WGSL/#min-float-builtin
|
60
65
|
*/
|
61
|
-
declare
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
declare
|
67
|
-
|
68
|
-
|
69
|
-
|
66
|
+
declare const min: <T extends vBase | number>(a: T, b: T) => T;
|
67
|
+
/**
|
68
|
+
* @privateRemarks
|
69
|
+
* https://www.w3.org/TR/WGSL/#sin-builtin
|
70
|
+
*/
|
71
|
+
declare const sin: <T extends vBase | number>(value: T) => T;
|
72
|
+
/**
|
73
|
+
* @privateRemarks
|
74
|
+
* https://www.w3.org/TR/WGSL/#exp-builtin
|
75
|
+
*/
|
76
|
+
declare const exp: <T extends vBase | number>(value: T) => T;
|
77
|
+
type PowOverload = {
|
78
|
+
(base: number, exponent: number): number;
|
79
|
+
<T extends v2f | v3f | v4f | v2h | v3h | v4h>(base: T, exponent: T): T;
|
80
|
+
};
|
81
|
+
declare const pow: PowOverload;
|
82
|
+
type MixOverload = {
|
83
|
+
(e1: number, e2: number, e3: number): number;
|
84
|
+
<T extends v2f | v3f | v4f | v2h | v3h | v4h>(e1: T, e2: T, e3: number): T;
|
85
|
+
<T extends v2f | v3f | v4f | v2h | v3h | v4h>(e1: T, e2: T, e3: T): T;
|
86
|
+
};
|
87
|
+
declare const mix: MixOverload;
|
88
|
+
declare const reflect: <T extends vBase>(e1: T, e2: T) => T;
|
89
|
+
declare const distance: <T extends vBase | number>(a: T, b: T) => number;
|
90
|
+
/**
|
91
|
+
* Checks whether the given elements differ by at most 0.01.
|
92
|
+
* Component-wise if arguments are vectors.
|
93
|
+
* @example
|
94
|
+
* isCloseTo(0, 0.1) // returns false
|
95
|
+
* isCloseTo(vec3f(0, 0, 0), vec3f(0.002, -0.009, 0)) // returns true
|
96
|
+
*
|
97
|
+
* @param {number} precision argument that specifies the maximum allowed difference, 0.01 by default.
|
98
|
+
*/
|
99
|
+
declare const isCloseTo: <T extends v2f | v3f | v4f | v2h | v3h | v4h | number>(e1: T, e2: T, precision?: number) => boolean;
|
70
100
|
|
71
101
|
type AnyAtomic = atomicI32 | atomicU32;
|
72
|
-
declare
|
73
|
-
declare
|
74
|
-
declare
|
75
|
-
declare
|
76
|
-
declare
|
77
|
-
declare
|
78
|
-
declare
|
79
|
-
declare
|
80
|
-
declare
|
81
|
-
declare
|
82
|
-
declare
|
83
|
-
declare
|
102
|
+
declare const workgroupBarrier: () => void;
|
103
|
+
declare const storageBarrier: () => void;
|
104
|
+
declare const textureBarrier: () => void;
|
105
|
+
declare const atomicLoad: <T extends AnyAtomic>(a: T) => number;
|
106
|
+
declare const atomicStore: <T extends AnyAtomic>(a: T, value: number) => void;
|
107
|
+
declare const atomicAdd: <T extends AnyAtomic>(a: T, value: number) => number;
|
108
|
+
declare const atomicSub: <T extends AnyAtomic>(a: T, value: number) => number;
|
109
|
+
declare const atomicMax: <T extends AnyAtomic>(a: T, value: number) => number;
|
110
|
+
declare const atomicMin: <T extends AnyAtomic>(a: T, value: number) => number;
|
111
|
+
declare const atomicAnd: <T extends AnyAtomic>(a: T, value: number) => number;
|
112
|
+
declare const atomicOr: <T extends AnyAtomic>(a: T, value: number) => number;
|
113
|
+
declare const atomicXor: <T extends AnyAtomic>(a: T, value: number) => number;
|
114
|
+
|
115
|
+
declare const arrayLength: (a: unknown[]) => number;
|
84
116
|
|
85
|
-
export { abs, add, atan2, atomicAdd, atomicAnd, atomicLoad, atomicMax, atomicMin, atomicOr, atomicStore, atomicSub, atomicXor, ceil, clamp, cos, cross, discard, dot, exp, floor, fract, length, max, min, mix, mul, normalize, pow, reflect, sin, storageBarrier, sub, textureBarrier, workgroupBarrier };
|
117
|
+
export { abs, acos, add, arrayLength, asin, atan2, atomicAdd, atomicAnd, atomicLoad, atomicMax, atomicMin, atomicOr, atomicStore, atomicSub, atomicXor, ceil, clamp, cos, cross, discard, distance, dot, exp, floor, fract, isCloseTo, length, max, min, mix, mul, normalize, pow, reflect, sin, storageBarrier, sub, textureBarrier, workgroupBarrier };
|
package/std/index.js
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
import{A as g,B as z,C as k,D as A,E as $,p as s,q as o,r as v,s as l,t as m,u as w,v as y,w as f,x as a,y as u,z as i}from"../chunk-7S2KQX6O.js";function en(){if(!s())throw new Error("discard() can only be used on the GPU.");return"discard;"}var d=n=>Math.sqrt(n.x**2+n.y**2),T=n=>Math.sqrt(n.x**2+n.y**2+n.z**2),h=n=>Math.sqrt(n.x**2+n.y**2+n.z**2+n.w**2),M=(n,e)=>n.x*e.x+n.y*e.y,p=(n,e)=>n.x*e.x+n.y*e.y+n.z*e.z,B=(n,e)=>n.x*e.x+n.y*e.y+n.z*e.z+n.w*e.w,c=(n,e,t)=>Math.min(Math.max(e,n),t),b=n=>e=>o(n(e.x),n(e.y)),V=n=>e=>v(n(e.x),n(e.y)),O=n=>e=>l(n(e.x),n(e.y)),U=n=>e=>m(n(e.x),n(e.y)),I=n=>e=>w(n(e.x),n(e.y),n(e.z)),K=n=>e=>y(n(e.x),n(e.y),n(e.z)),R=n=>e=>f(n(e.x),n(e.y),n(e.z)),G=n=>e=>a(n(e.x),n(e.y),n(e.z)),P=n=>e=>u(n(e.x),n(e.y),n(e.z),n(e.w)),W=n=>e=>i(n(e.x),n(e.y),n(e.z),n(e.w)),_=n=>e=>g(n(e.x),n(e.y),n(e.z),n(e.w)),E=n=>e=>z(n(e.x),n(e.y),n(e.z),n(e.w)),C=n=>(e,t)=>o(n(e.x,t.x),n(e.y,t.y)),F=n=>(e,t)=>v(n(e.x,t.x),n(e.y,t.y)),S=n=>(e,t)=>l(n(e.x,t.x),n(e.y,t.y)),j=n=>(e,t)=>m(n(e.x,t.x),n(e.y,t.y)),q=n=>(e,t)=>w(n(e.x,t.x),n(e.y,t.y),n(e.z,t.z)),L=n=>(e,t)=>y(n(e.x,t.x),n(e.y,t.y),n(e.z,t.z)),X=n=>(e,t)=>f(n(e.x,t.x),n(e.y,t.y),n(e.z,t.z)),D=n=>(e,t)=>a(n(e.x,t.x),n(e.y,t.y),n(e.z,t.z)),H=n=>(e,t)=>u(n(e.x,t.x),n(e.y,t.y),n(e.z,t.z),n(e.w,t.w)),J=n=>(e,t)=>i(n(e.x,t.x),n(e.y,t.y),n(e.z,t.z),n(e.w,t.w)),N=n=>(e,t)=>g(n(e.x,t.x),n(e.y,t.y),n(e.z,t.z),n(e.w,t.w)),Q=n=>(e,t)=>z(n(e.x,t.x),n(e.y,t.y),n(e.z,t.z),n(e.w,t.w)),x={abs:{vec2f:b(Math.abs),vec2h:V(Math.abs),vec2i:O(Math.abs),vec2u:U(Math.abs),vec3f:I(Math.abs),vec3h:K(Math.abs),vec3i:R(Math.abs),vec3u:G(Math.abs),vec4f:P(Math.abs),vec4h:W(Math.abs),vec4i:_(Math.abs),vec4u:E(Math.abs)},atan2:{vec2f:C(Math.atan2),vec2h:F(Math.atan2),vec2i:S(Math.atan2),vec2u:j(Math.atan2),vec3f:q(Math.atan2),vec3h:L(Math.atan2),vec3i:X(Math.atan2),vec3u:D(Math.atan2),vec4f:H(Math.atan2),vec4h:J(Math.atan2),vec4i:N(Math.atan2),vec4u:Q(Math.atan2)},ceil:{vec2f:b(Math.ceil),vec2h:V(Math.ceil),vec2i:O(Math.ceil),vec2u:U(Math.ceil),vec3f:I(Math.ceil),vec3h:K(Math.ceil),vec3i:R(Math.ceil),vec3u:G(Math.ceil),vec4f:P(Math.ceil),vec4h:W(Math.ceil),vec4i:_(Math.ceil),vec4u:E(Math.ceil)},clamp:{vec2f:(n,e,t)=>o(c(n.x,e.x,t.x),c(n.y,e.y,t.y)),vec2h:(n,e,t)=>v(c(n.x,e.x,t.x),c(n.y,e.y,t.y)),vec2i:(n,e,t)=>l(c(n.x,e.x,t.x),c(n.y,e.y,t.y)),vec2u:(n,e,t)=>m(c(n.x,e.x,t.x),c(n.y,e.y,t.y)),vec3f:(n,e,t)=>w(c(n.x,e.x,t.x),c(n.y,e.y,t.y),c(n.z,e.z,t.z)),vec3h:(n,e,t)=>y(c(n.x,e.x,t.x),c(n.y,e.y,t.y),c(n.z,e.z,t.z)),vec3i:(n,e,t)=>f(c(n.x,e.x,t.x),c(n.y,e.y,t.y),c(n.z,e.z,t.z)),vec3u:(n,e,t)=>a(c(n.x,e.x,t.x),c(n.y,e.y,t.y),c(n.z,e.z,t.z)),vec4f:(n,e,t)=>u(c(n.x,e.x,t.x),c(n.y,e.y,t.y),c(n.z,e.z,t.z),c(n.w,e.w,t.w)),vec4h:(n,e,t)=>i(c(n.x,e.x,t.x),c(n.y,e.y,t.y),c(n.z,e.z,t.z),c(n.w,e.w,t.w)),vec4i:(n,e,t)=>g(c(n.x,e.x,t.x),c(n.y,e.y,t.y),c(n.z,e.z,t.z),c(n.w,e.w,t.w)),vec4u:(n,e,t)=>z(c(n.x,e.x,t.x),c(n.y,e.y,t.y),c(n.z,e.z,t.z),c(n.w,e.w,t.w))},length:{vec2f:d,vec2h:d,vec2i:d,vec2u:d,vec3f:T,vec3h:T,vec3i:T,vec3u:T,vec4f:h,vec4h:h,vec4i:h,vec4u:h},add:{vec2f:(n,e)=>o(n.x+e.x,n.y+e.y),vec2h:(n,e)=>v(n.x+e.x,n.y+e.y),vec2i:(n,e)=>l(n.x+e.x,n.y+e.y),vec2u:(n,e)=>m(n.x+e.x,n.y+e.y),vec3f:(n,e)=>w(n.x+e.x,n.y+e.y,n.z+e.z),vec3h:(n,e)=>y(n.x+e.x,n.y+e.y,n.z+e.z),vec3i:(n,e)=>f(n.x+e.x,n.y+e.y,n.z+e.z),vec3u:(n,e)=>a(n.x+e.x,n.y+e.y,n.z+e.z),vec4f:(n,e)=>u(n.x+e.x,n.y+e.y,n.z+e.z,n.w+e.w),vec4h:(n,e)=>i(n.x+e.x,n.y+e.y,n.z+e.z,n.w+e.w),vec4i:(n,e)=>g(n.x+e.x,n.y+e.y,n.z+e.z,n.w+e.w),vec4u:(n,e)=>z(n.x+e.x,n.y+e.y,n.z+e.z,n.w+e.w)},sub:{vec2f:(n,e)=>o(n.x-e.x,n.y-e.y),vec2h:(n,e)=>v(n.x-e.x,n.y-e.y),vec2i:(n,e)=>l(n.x-e.x,n.y-e.y),vec2u:(n,e)=>m(n.x-e.x,n.y-e.y),vec3f:(n,e)=>w(n.x-e.x,n.y-e.y,n.z-e.z),vec3h:(n,e)=>y(n.x-e.x,n.y-e.y,n.z-e.z),vec3i:(n,e)=>f(n.x-e.x,n.y-e.y,n.z-e.z),vec3u:(n,e)=>a(n.x-e.x,n.y-e.y,n.z-e.z),vec4f:(n,e)=>u(n.x-e.x,n.y-e.y,n.z-e.z,n.w-e.w),vec4h:(n,e)=>i(n.x-e.x,n.y-e.y,n.z-e.z,n.w-e.w),vec4i:(n,e)=>g(n.x-e.x,n.y-e.y,n.z-e.z,n.w-e.w),vec4u:(n,e)=>z(n.x-e.x,n.y-e.y,n.z-e.z,n.w-e.w)},mulSxV:{vec2f:(n,e)=>o(n*e.x,n*e.y),vec2h:(n,e)=>v(n*e.x,n*e.y),vec2i:(n,e)=>l(n*e.x,n*e.y),vec2u:(n,e)=>m(n*e.x,n*e.y),vec3f:(n,e)=>w(n*e.x,n*e.y,n*e.z),vec3h:(n,e)=>y(n*e.x,n*e.y,n*e.z),vec3i:(n,e)=>f(n*e.x,n*e.y,n*e.z),vec3u:(n,e)=>a(n*e.x,n*e.y,n*e.z),vec4f:(n,e)=>u(n*e.x,n*e.y,n*e.z,n*e.w),vec4h:(n,e)=>i(n*e.x,n*e.y,n*e.z,n*e.w),vec4i:(n,e)=>g(n*e.x,n*e.y,n*e.z,n*e.w),vec4u:(n,e)=>z(n*e.x,n*e.y,n*e.z,n*e.w),mat2x2f:(n,e)=>{let t=e.columns;return k(n*t[0].x,n*t[0].y,n*t[1].x,n*t[1].y)},mat3x3f:(n,e)=>{let t=e.columns;return A(n*t[0].x,n*t[0].y,n*t[0].z,n*t[1].x,n*t[1].y,n*t[1].z,n*t[2].x,n*t[2].y,n*t[2].z)},mat4x4f:(n,e)=>{let t=e.columns;return $(n*t[0].x,n*t[0].y,n*t[0].z,n*t[0].w,n*t[1].x,n*t[1].y,n*t[1].z,n*t[1].w,n*t[2].x,n*t[2].y,n*t[2].z,n*t[2].w,n*t[3].x,n*t[3].y,n*t[3].z,n*t[3].w)}},mulVxV:{vec2f:(n,e)=>o(n.x*e.x,n.y*e.y),vec2h:(n,e)=>v(n.x*e.x,n.y*e.y),vec2i:(n,e)=>l(n.x*e.x,n.y*e.y),vec2u:(n,e)=>m(n.x*e.x,n.y*e.y),vec3f:(n,e)=>w(n.x*e.x,n.y*e.y,n.z*e.z),vec3h:(n,e)=>y(n.x*e.x,n.y*e.y,n.z*e.z),vec3i:(n,e)=>f(n.x*e.x,n.y*e.y,n.z*e.z),vec3u:(n,e)=>a(n.x*e.x,n.y*e.y,n.z*e.z),vec4f:(n,e)=>u(n.x*e.x,n.y*e.y,n.z*e.z,n.w*e.w),vec4h:(n,e)=>i(n.x*e.x,n.y*e.y,n.z*e.z,n.w*e.w),vec4i:(n,e)=>g(n.x*e.x,n.y*e.y,n.z*e.z,n.w*e.w),vec4u:(n,e)=>z(n.x*e.x,n.y*e.y,n.z*e.z,n.w*e.w),mat2x2f:(n,e)=>{let t=n.columns,r=e.columns;return k(t[0].x*r[0].x+t[1].x*r[0].y,t[0].y*r[0].x+t[1].y*r[0].y,t[0].x*r[1].x+t[1].x*r[1].y,t[0].y*r[1].x+t[1].y*r[1].y)},mat3x3f:(n,e)=>{let t=n.columns,r=e.columns;return A(t[0].x*r[0].x+t[1].x*r[0].y+t[2].x*r[0].z,t[0].y*r[0].x+t[1].y*r[0].y+t[2].y*r[0].z,t[0].z*r[0].x+t[1].z*r[0].y+t[2].z*r[0].z,t[0].x*r[1].x+t[1].x*r[1].y+t[2].x*r[1].z,t[0].y*r[1].x+t[1].y*r[1].y+t[2].y*r[1].z,t[0].z*r[1].x+t[1].z*r[1].y+t[2].z*r[1].z,t[0].x*r[2].x+t[1].x*r[2].y+t[2].x*r[2].z,t[0].y*r[2].x+t[1].y*r[2].y+t[2].y*r[2].z,t[0].z*r[2].x+t[1].z*r[2].y+t[2].z*r[2].z)},mat4x4f:(n,e)=>{let t=n.columns,r=e.columns;return $(t[0].x*r[0].x+t[1].x*r[0].y+t[2].x*r[0].z+t[3].x*r[0].w,t[0].y*r[0].x+t[1].y*r[0].y+t[2].y*r[0].z+t[3].y*r[0].w,t[0].z*r[0].x+t[1].z*r[0].y+t[2].z*r[0].z+t[3].z*r[0].w,t[0].w*r[0].x+t[1].w*r[0].y+t[2].w*r[0].z+t[3].w*r[0].w,t[0].x*r[1].x+t[1].x*r[1].y+t[2].x*r[1].z+t[3].x*r[1].w,t[0].y*r[1].x+t[1].y*r[1].y+t[2].y*r[1].z+t[3].y*r[1].w,t[0].z*r[1].x+t[1].z*r[1].y+t[2].z*r[1].z+t[3].z*r[1].w,t[0].w*r[1].x+t[1].w*r[1].y+t[2].w*r[1].z+t[3].w*r[1].w,t[0].x*r[2].x+t[1].x*r[2].y+t[2].x*r[2].z+t[3].x*r[2].w,t[0].y*r[2].x+t[1].y*r[2].y+t[2].y*r[2].z+t[3].y*r[2].w,t[0].z*r[2].x+t[1].z*r[2].y+t[2].z*r[2].z+t[3].z*r[2].w,t[0].w*r[2].x+t[1].w*r[2].y+t[2].w*r[2].z+t[3].w*r[2].w,t[0].x*r[3].x+t[1].x*r[3].y+t[2].x*r[3].z+t[3].x*r[3].w,t[0].y*r[3].x+t[1].y*r[3].y+t[2].y*r[3].z+t[3].y*r[3].w,t[0].z*r[3].x+t[1].z*r[3].y+t[2].z*r[3].z+t[3].z*r[3].w,t[0].w*r[3].x+t[1].w*r[3].y+t[2].w*r[3].z+t[3].w*r[3].w)}},mulMxV:{mat2x2f:(n,e)=>{let t=n.columns;return o(t[0].x*e.x+t[1].x*e.y,t[0].y*e.x+t[1].y*e.y)},mat3x3f:(n,e)=>{let t=n.columns;return w(t[0].x*e.x+t[1].x*e.y+t[2].x*e.z,t[0].y*e.x+t[1].y*e.y+t[2].y*e.z,t[0].z*e.x+t[1].z*e.y+t[2].z*e.z)},mat4x4f:(n,e)=>{let t=n.columns;return u(t[0].x*e.x+t[1].x*e.y+t[2].x*e.z+t[3].x*e.w,t[0].y*e.x+t[1].y*e.y+t[2].y*e.z+t[3].y*e.w,t[0].z*e.x+t[1].z*e.y+t[2].z*e.z+t[3].z*e.w,t[0].w*e.x+t[1].w*e.y+t[2].w*e.z+t[3].w*e.w)}},mulVxM:{mat2x2f:(n,e)=>{let t=e.columns;return o(n.x*t[0].x+n.y*t[0].y,n.x*t[1].x+n.y*t[1].y)},mat3x3f:(n,e)=>{let t=e.columns;return w(n.x*t[0].x+n.y*t[0].y+n.z*t[0].z,n.x*t[1].x+n.y*t[1].y+n.z*t[1].z,n.x*t[2].x+n.y*t[2].y+n.z*t[2].z)},mat4x4f:(n,e)=>{let t=e.columns;return u(n.x*t[0].x+n.y*t[0].y+n.z*t[0].z+n.w*t[0].w,n.x*t[1].x+n.y*t[1].y+n.z*t[1].z+n.w*t[1].w,n.x*t[2].x+n.y*t[2].y+n.z*t[2].z+n.w*t[2].w,n.x*t[3].x+n.y*t[3].y+n.z*t[3].z+n.w*t[3].w)}},dot:{vec2f:M,vec2h:M,vec2i:M,vec2u:M,vec3f:p,vec3h:p,vec3i:p,vec3u:p,vec4f:B,vec4h:B,vec4i:B,vec4u:B},normalize:{vec2f:n=>{let e=d(n);return o(n.x/e,n.y/e)},vec2h:n=>{let e=d(n);return v(n.x/e,n.y/e)},vec2i:n=>{let e=d(n);return l(n.x/e,n.y/e)},vec2u:n=>{let e=d(n);return m(n.x/e,n.y/e)},vec3f:n=>{let e=T(n);return w(n.x/e,n.y/e,n.z/e)},vec3h:n=>{let e=T(n);return y(n.x/e,n.y/e,n.z/e)},vec3i:n=>{let e=T(n);return f(n.x/e,n.y/e,n.z/e)},vec3u:n=>{let e=T(n);return a(n.x/e,n.y/e,n.z/e)},vec4f:n=>{let e=h(n);return u(n.x/e,n.y/e,n.z/e,n.w/e)},vec4h:n=>{let e=h(n);return i(n.x/e,n.y/e,n.z/e,n.w/e)},vec4i:n=>{let e=h(n);return g(n.x/e,n.y/e,n.z/e,n.w/e)},vec4u:n=>{let e=h(n);return z(n.x/e,n.y/e,n.z/e,n.w/e)}},cross:{vec3f:(n,e)=>w(n.y*e.z-n.z*e.y,n.z*e.x-n.x*e.z,n.x*e.y-n.y*e.x),vec3h:(n,e)=>y(n.y*e.z-n.z*e.y,n.z*e.x-n.x*e.z,n.x*e.y-n.y*e.x),vec3i:(n,e)=>f(n.y*e.z-n.z*e.y,n.z*e.x-n.x*e.z,n.x*e.y-n.y*e.x),vec3u:(n,e)=>a(n.y*e.z-n.z*e.y,n.z*e.x-n.x*e.z,n.x*e.y-n.y*e.x)},floor:{vec2f:b(Math.floor),vec2h:V(Math.floor),vec2i:O(Math.floor),vec2u:U(Math.floor),vec3f:I(Math.floor),vec3h:K(Math.floor),vec3i:R(Math.floor),vec3u:G(Math.floor),vec4f:P(Math.floor),vec4h:W(Math.floor),vec4i:_(Math.floor),vec4u:E(Math.floor)},max:{vec2f:C(Math.max),vec2h:F(Math.max),vec2i:S(Math.max),vec2u:j(Math.max),vec3f:q(Math.max),vec3h:L(Math.max),vec3i:X(Math.max),vec3u:D(Math.max),vec4f:H(Math.max),vec4h:J(Math.max),vec4i:N(Math.max),vec4u:Q(Math.max)},min:{vec2f:C(Math.min),vec2h:F(Math.min),vec2i:S(Math.min),vec2u:j(Math.min),vec3f:q(Math.min),vec3h:L(Math.min),vec3i:X(Math.min),vec3u:D(Math.min),vec4f:H(Math.min),vec4h:J(Math.min),vec4i:N(Math.min),vec4u:Q(Math.min)},pow:{vec2f:(n,e)=>o(n.x**e.x,n.y**e.y),vec2h:(n,e)=>v(n.x**e.x,n.y**e.y),vec3f:(n,e)=>w(n.x**e.x,n.y**e.y,n.z**e.z),vec3h:(n,e)=>y(n.x**e.x,n.y**e.y,n.z**e.z),vec4f:(n,e)=>u(n.x**e.x,n.y**e.y,n.z**e.z,n.w**e.w),vec4h:(n,e)=>i(n.x**e.x,n.y**e.y,n.z**e.z,n.w**e.w)},mix:{vec2f:(n,e,t)=>typeof t=="number"?o(n.x*(1-t)+e.x*t,n.y*(1-t)+e.y*t):o(n.x*(1-t.x)+e.x*t.x,n.y*(1-t.y)+e.y*t.y),vec2h:(n,e,t)=>typeof t=="number"?v(n.x*(1-t)+e.x*t,n.y*(1-t)+e.y*t):v(n.x*(1-t.x)+e.x*t.x,n.y*(1-t.y)+e.y*t.y),vec3f:(n,e,t)=>typeof t=="number"?w(n.x*(1-t)+e.x*t,n.y*(1-t)+e.y*t,n.z*(1-t)+e.z*t):w(n.x*(1-t.x)+e.x*t.x,n.y*(1-t.y)+e.y*t.y,n.z*(1-t.z)+e.z*t.z),vec3h:(n,e,t)=>typeof t=="number"?y(n.x*(1-t)+e.x*t,n.y*(1-t)+e.y*t,n.z*(1-t)+e.z*t):y(n.x*(1-t.x)+e.x*t.x,n.y*(1-t.y)+e.y*t.y,n.z*(1-t.z)+e.z*t.z),vec4f:(n,e,t)=>typeof t=="number"?u(n.x*(1-t)+e.x*t,n.y*(1-t)+e.y*t,n.z*(1-t)+e.z*t,n.w*(1-t)+e.w*t):u(n.x*(1-t.x)+e.x*t.x,n.y*(1-t.y)+e.y*t.y,n.z*(1-t.z)+e.z*t.z,n.w*(1-t.w)+e.w*t.w),vec4h:(n,e,t)=>typeof t=="number"?i(n.x*(1-t)+e.x*t,n.y*(1-t)+e.y*t,n.z*(1-t)+e.z*t,n.w*(1-t)+e.w*t):i(n.x*(1-t.x)+e.x*t.x,n.y*(1-t.y)+e.y*t.y,n.z*(1-t.z)+e.z*t.z,n.w*(1-t.w)+e.w*t.w)}};function tn(n,e){return s()?`(${n} + ${e})`:x.add[n.kind](n,e)}function Y(n,e){return s()?`(${n} - ${e})`:x.sub[n.kind](n,e)}function Z(n,e){if(s())return`(${n} * ${e})`;if(typeof n=="number")return x.mulSxV[e.kind](n,e);if(typeof n=="object"&&typeof e=="object"&&"kind"in n&&"kind"in e){let t=!n.kind.startsWith("mat"),r=!e.kind.startsWith("mat");if(!t&&r)return x.mulMxV[n.kind](n,e);if(t&&!r)return x.mulVxM[e.kind](n,e)}return x.mulVxV[e.kind](n,e)}function rn(n){return s()?`abs(${n})`:typeof n=="number"?Math.abs(n):x.abs[n.kind](n)}function sn(n,e){return s()?`atan2(${n}, ${e})`:typeof n=="number"&&typeof e=="number"?Math.atan2(n,e):x.atan2[n.kind](n,e)}function cn(n){return s()?`ceil(${n})`:typeof n=="number"?Math.ceil(n):x.ceil[n.kind](n)}function xn(n,e,t){return s()?`clamp(${n}, ${e}, ${t})`:typeof n=="number"?Math.min(Math.max(e,n),t):x.clamp[n.kind](n,e,t)}function wn(n){return s()?`cos(${n})`:Math.cos(n)}function on(n,e){return s()?`cross(${n}, ${e})`:x.cross[n.kind](n,e)}function nn(n,e){return s()?`dot(${n}, ${e})`:x.dot[n.kind](n,e)}function un(n){return s()?`normalize(${n})`:x.normalize[n.kind](n)}function yn(n){return s()?`floor(${n})`:typeof n=="number"?Math.floor(n):x.floor[n.kind](n)}function vn(n){return s()?`fract(${n})`:n-Math.floor(n)}function fn(n){return s()?`length(${n})`:typeof n=="number"?Math.abs(n):x.length[n.kind](n)}function an(n,e){return s()?`max(${n}, ${e})`:typeof n=="number"?Math.max(n,e):x.max[n.kind](n,e)}function ln(n,e){return s()?`min(${n}, ${e})`:typeof n=="number"?Math.min(n,e):x.min[n.kind](n,e)}function mn(n){return s()?`sin(${n})`:Math.sin(n)}function gn(n){return s()?`exp(${n})`:Math.exp(n)}function zn(n,e){if(s())return`pow(${n}, ${e})`;if(typeof n=="number"&&typeof e=="number")return n**e;if(typeof n=="object"&&typeof e=="object"&&"kind"in n&&"kind"in e)return x.pow[n.kind](n,e);throw new Error("Invalid arguments to pow()")}function dn(n,e,t){if(s())return`mix(${n}, ${e}, ${t})`;if(typeof n=="number"){if(typeof t!="number"||typeof e!="number")throw new Error("When e1 and e2 are numbers, the blend factor must be a number.");return n*(1-t)+e*t}if(typeof n=="number"||typeof e=="number")throw new Error("e1 and e2 need to both be vectors of the same kind.");return x.mix[n.kind](n,e,t)}function Tn(n,e){return s()?`reflect(${n}, ${e})`:Y(n,Z(2*nn(e,n),e))}function hn(){if(s())return"workgroupBarrier()";console.warn("workgroupBarrier is a no-op outside of GPU mode.")}function Mn(){if(s())return"storageBarrier()";console.warn("storageBarrier is a no-op outside of GPU mode.")}function pn(){if(s())return"textureBarrier()";console.warn("textureBarrier is a no-op outside of GPU mode.")}function Bn(n){if(s())return`atomicLoad(&${n})`;throw new Error("Atomic operations are not supported outside of GPU mode.")}function kn(n,e){if(s())return`atomicStore(&${n}, ${e})`;throw new Error("Atomic operations are not supported outside of GPU mode.")}function An(n,e){if(s())return`atomicAdd(&${n}, ${e})`;throw new Error("Atomic operations are not supported outside of GPU mode.")}function $n(n,e){if(s())return`atomicSub(&${n}, ${e})`;throw new Error("Atomic operations are not supported outside of GPU mode.")}function bn(n,e){if(s())return`atomicMax(&${n}, ${e})`;throw new Error("Atomic operations are not supported outside of GPU mode.")}function Vn(n,e){if(s())return`atomicMin(&${n}, ${e})`;throw new Error("Atomic operations are not supported outside of GPU mode.")}function On(n,e){if(s())return`atomicAnd(&${n}, ${e})`;throw new Error("Atomic operations are not supported outside of GPU mode.")}function Un(n,e){if(s())return`atomicOr(&${n}, ${e})`;throw new Error("Atomic operations are not supported outside of GPU mode.")}function In(n,e){if(s())return`atomicXor(&${n}, ${e})`;throw new Error("Atomic operations are not supported outside of GPU mode.")}export{rn as abs,tn as add,sn as atan2,An as atomicAdd,On as atomicAnd,Bn as atomicLoad,bn as atomicMax,Vn as atomicMin,Un as atomicOr,kn as atomicStore,$n as atomicSub,In as atomicXor,cn as ceil,xn as clamp,wn as cos,on as cross,en as discard,nn as dot,gn as exp,yn as floor,vn as fract,fn as length,an as max,ln as min,dn as mix,Z as mul,un as normalize,zn as pow,Tn as reflect,mn as sin,Mn as storageBarrier,Y as sub,pn as textureBarrier,hn as workgroupBarrier};
|
1
|
+
import{g as W}from"../chunk-KVOFUY5A.js";import{A as o,B as u,C as d,D as h,E as F,F as N,G as J,K as C,L as ne,N as E,V as f,r as n,s as y,t as l,u as m,v as T,w as v,x,y as i,z as w}from"../chunk-DR55IHDD.js";var ye=n(()=>{throw new Error("discard() can only be used on the GPU.")},()=>({value:"discard;",dataType:W}));var K=e=>Math.sqrt(e.x**2+e.y**2),R=e=>Math.sqrt(e.x**2+e.y**2+e.z**2),U=e=>Math.sqrt(e.x**2+e.y**2+e.z**2+e.w**2),P=(e,t)=>e.x*t.x+e.y*t.y,_=(e,t)=>e.x*t.x+e.y*t.y+e.z*t.z,G=(e,t)=>e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w,r=(e,t,a)=>Math.min(Math.max(t,e),a),g=e=>t=>y(e(t.x),e(t.y)),p=e=>t=>l(e(t.x),e(t.y)),z=e=>t=>m(e(t.x),e(t.y)),M=e=>t=>T(e(t.x),e(t.y)),B=e=>t=>v(e(t.x),e(t.y),e(t.z)),b=e=>t=>x(e(t.x),e(t.y),e(t.z)),$=e=>t=>i(e(t.x),e(t.y),e(t.z)),A=e=>t=>w(e(t.x),e(t.y),e(t.z)),V=e=>t=>o(e(t.x),e(t.y),e(t.z),e(t.w)),O=e=>t=>u(e(t.x),e(t.y),e(t.z),e(t.w)),k=e=>t=>d(e(t.x),e(t.y),e(t.z),e(t.w)),I=e=>t=>h(e(t.x),e(t.y),e(t.z),e(t.w)),L=e=>(t,a)=>y(e(t.x,a.x),e(t.y,a.y)),j=e=>(t,a)=>l(e(t.x,a.x),e(t.y,a.y)),q=e=>(t,a)=>m(e(t.x,a.x),e(t.y,a.y)),X=e=>(t,a)=>T(e(t.x,a.x),e(t.y,a.y)),Z=e=>(t,a)=>v(e(t.x,a.x),e(t.y,a.y),e(t.z,a.z)),H=e=>(t,a)=>x(e(t.x,a.x),e(t.y,a.y),e(t.z,a.z)),Q=e=>(t,a)=>i(e(t.x,a.x),e(t.y,a.y),e(t.z,a.z)),Y=e=>(t,a)=>w(e(t.x,a.x),e(t.y,a.y),e(t.z,a.z)),ee=e=>(t,a)=>o(e(t.x,a.x),e(t.y,a.y),e(t.z,a.z),e(t.w,a.w)),te=e=>(t,a)=>u(e(t.x,a.x),e(t.y,a.y),e(t.z,a.z),e(t.w,a.w)),ae=e=>(t,a)=>d(e(t.x,a.x),e(t.y,a.y),e(t.z,a.z),e(t.w,a.w)),se=e=>(t,a)=>h(e(t.x,a.x),e(t.y,a.y),e(t.z,a.z),e(t.w,a.w)),c={abs:{vec2f:g(Math.abs),vec2h:p(Math.abs),vec2i:z(Math.abs),vec2u:M(Math.abs),vec3f:B(Math.abs),vec3h:b(Math.abs),vec3i:$(Math.abs),vec3u:A(Math.abs),vec4f:V(Math.abs),vec4h:O(Math.abs),vec4i:k(Math.abs),vec4u:I(Math.abs)},atan2:{vec2f:L(Math.atan2),vec2h:j(Math.atan2),vec2i:q(Math.atan2),vec2u:X(Math.atan2),vec3f:Z(Math.atan2),vec3h:H(Math.atan2),vec3i:Q(Math.atan2),vec3u:Y(Math.atan2),vec4f:ee(Math.atan2),vec4h:te(Math.atan2),vec4i:ae(Math.atan2),vec4u:se(Math.atan2)},acos:{vec2f:g(Math.acos),vec2h:p(Math.acos),vec2i:z(Math.acos),vec2u:M(Math.acos),vec3f:B(Math.acos),vec3h:b(Math.acos),vec3i:$(Math.acos),vec3u:A(Math.acos),vec4f:V(Math.acos),vec4h:O(Math.acos),vec4i:k(Math.acos),vec4u:I(Math.acos)},asin:{vec2f:g(Math.asin),vec2h:p(Math.asin),vec2i:z(Math.asin),vec2u:M(Math.asin),vec3f:B(Math.asin),vec3h:b(Math.asin),vec3i:$(Math.asin),vec3u:A(Math.asin),vec4f:V(Math.asin),vec4h:O(Math.asin),vec4i:k(Math.asin),vec4u:I(Math.asin)},ceil:{vec2f:g(Math.ceil),vec2h:p(Math.ceil),vec2i:z(Math.ceil),vec2u:M(Math.ceil),vec3f:B(Math.ceil),vec3h:b(Math.ceil),vec3i:$(Math.ceil),vec3u:A(Math.ceil),vec4f:V(Math.ceil),vec4h:O(Math.ceil),vec4i:k(Math.ceil),vec4u:I(Math.ceil)},clamp:{vec2f:(e,t,a)=>y(r(e.x,t.x,a.x),r(e.y,t.y,a.y)),vec2h:(e,t,a)=>l(r(e.x,t.x,a.x),r(e.y,t.y,a.y)),vec2i:(e,t,a)=>m(r(e.x,t.x,a.x),r(e.y,t.y,a.y)),vec2u:(e,t,a)=>T(r(e.x,t.x,a.x),r(e.y,t.y,a.y)),vec3f:(e,t,a)=>v(r(e.x,t.x,a.x),r(e.y,t.y,a.y),r(e.z,t.z,a.z)),vec3h:(e,t,a)=>x(r(e.x,t.x,a.x),r(e.y,t.y,a.y),r(e.z,t.z,a.z)),vec3i:(e,t,a)=>i(r(e.x,t.x,a.x),r(e.y,t.y,a.y),r(e.z,t.z,a.z)),vec3u:(e,t,a)=>w(r(e.x,t.x,a.x),r(e.y,t.y,a.y),r(e.z,t.z,a.z)),vec4f:(e,t,a)=>o(r(e.x,t.x,a.x),r(e.y,t.y,a.y),r(e.z,t.z,a.z),r(e.w,t.w,a.w)),vec4h:(e,t,a)=>u(r(e.x,t.x,a.x),r(e.y,t.y,a.y),r(e.z,t.z,a.z),r(e.w,t.w,a.w)),vec4i:(e,t,a)=>d(r(e.x,t.x,a.x),r(e.y,t.y,a.y),r(e.z,t.z,a.z),r(e.w,t.w,a.w)),vec4u:(e,t,a)=>h(r(e.x,t.x,a.x),r(e.y,t.y,a.y),r(e.z,t.z,a.z),r(e.w,t.w,a.w))},length:{vec2f:K,vec2h:K,vec2i:K,vec2u:K,vec3f:R,vec3h:R,vec3i:R,vec3u:R,vec4f:U,vec4h:U,vec4i:U,vec4u:U},add:{vec2f:(e,t)=>y(e.x+t.x,e.y+t.y),vec2h:(e,t)=>l(e.x+t.x,e.y+t.y),vec2i:(e,t)=>m(e.x+t.x,e.y+t.y),vec2u:(e,t)=>T(e.x+t.x,e.y+t.y),vec3f:(e,t)=>v(e.x+t.x,e.y+t.y,e.z+t.z),vec3h:(e,t)=>x(e.x+t.x,e.y+t.y,e.z+t.z),vec3i:(e,t)=>i(e.x+t.x,e.y+t.y,e.z+t.z),vec3u:(e,t)=>w(e.x+t.x,e.y+t.y,e.z+t.z),vec4f:(e,t)=>o(e.x+t.x,e.y+t.y,e.z+t.z,e.w+t.w),vec4h:(e,t)=>u(e.x+t.x,e.y+t.y,e.z+t.z,e.w+t.w),vec4i:(e,t)=>d(e.x+t.x,e.y+t.y,e.z+t.z,e.w+t.w),vec4u:(e,t)=>h(e.x+t.x,e.y+t.y,e.z+t.z,e.w+t.w)},sub:{vec2f:(e,t)=>y(e.x-t.x,e.y-t.y),vec2h:(e,t)=>l(e.x-t.x,e.y-t.y),vec2i:(e,t)=>m(e.x-t.x,e.y-t.y),vec2u:(e,t)=>T(e.x-t.x,e.y-t.y),vec3f:(e,t)=>v(e.x-t.x,e.y-t.y,e.z-t.z),vec3h:(e,t)=>x(e.x-t.x,e.y-t.y,e.z-t.z),vec3i:(e,t)=>i(e.x-t.x,e.y-t.y,e.z-t.z),vec3u:(e,t)=>w(e.x-t.x,e.y-t.y,e.z-t.z),vec4f:(e,t)=>o(e.x-t.x,e.y-t.y,e.z-t.z,e.w-t.w),vec4h:(e,t)=>u(e.x-t.x,e.y-t.y,e.z-t.z,e.w-t.w),vec4i:(e,t)=>d(e.x-t.x,e.y-t.y,e.z-t.z,e.w-t.w),vec4u:(e,t)=>h(e.x-t.x,e.y-t.y,e.z-t.z,e.w-t.w)},mulSxV:{vec2f:(e,t)=>y(e*t.x,e*t.y),vec2h:(e,t)=>l(e*t.x,e*t.y),vec2i:(e,t)=>m(e*t.x,e*t.y),vec2u:(e,t)=>T(e*t.x,e*t.y),vec3f:(e,t)=>v(e*t.x,e*t.y,e*t.z),vec3h:(e,t)=>x(e*t.x,e*t.y,e*t.z),vec3i:(e,t)=>i(e*t.x,e*t.y,e*t.z),vec3u:(e,t)=>w(e*t.x,e*t.y,e*t.z),vec4f:(e,t)=>o(e*t.x,e*t.y,e*t.z,e*t.w),vec4h:(e,t)=>u(e*t.x,e*t.y,e*t.z,e*t.w),vec4i:(e,t)=>d(e*t.x,e*t.y,e*t.z,e*t.w),vec4u:(e,t)=>h(e*t.x,e*t.y,e*t.z,e*t.w),mat2x2f:(e,t)=>{let a=t.columns;return F(e*a[0].x,e*a[0].y,e*a[1].x,e*a[1].y)},mat3x3f:(e,t)=>{let a=t.columns;return N(e*a[0].x,e*a[0].y,e*a[0].z,e*a[1].x,e*a[1].y,e*a[1].z,e*a[2].x,e*a[2].y,e*a[2].z)},mat4x4f:(e,t)=>{let a=t.columns;return J(e*a[0].x,e*a[0].y,e*a[0].z,e*a[0].w,e*a[1].x,e*a[1].y,e*a[1].z,e*a[1].w,e*a[2].x,e*a[2].y,e*a[2].z,e*a[2].w,e*a[3].x,e*a[3].y,e*a[3].z,e*a[3].w)}},mulVxV:{vec2f:(e,t)=>y(e.x*t.x,e.y*t.y),vec2h:(e,t)=>l(e.x*t.x,e.y*t.y),vec2i:(e,t)=>m(e.x*t.x,e.y*t.y),vec2u:(e,t)=>T(e.x*t.x,e.y*t.y),vec3f:(e,t)=>v(e.x*t.x,e.y*t.y,e.z*t.z),vec3h:(e,t)=>x(e.x*t.x,e.y*t.y,e.z*t.z),vec3i:(e,t)=>i(e.x*t.x,e.y*t.y,e.z*t.z),vec3u:(e,t)=>w(e.x*t.x,e.y*t.y,e.z*t.z),vec4f:(e,t)=>o(e.x*t.x,e.y*t.y,e.z*t.z,e.w*t.w),vec4h:(e,t)=>u(e.x*t.x,e.y*t.y,e.z*t.z,e.w*t.w),vec4i:(e,t)=>d(e.x*t.x,e.y*t.y,e.z*t.z,e.w*t.w),vec4u:(e,t)=>h(e.x*t.x,e.y*t.y,e.z*t.z,e.w*t.w),mat2x2f:(e,t)=>{let a=e.columns,s=t.columns;return F(a[0].x*s[0].x+a[1].x*s[0].y,a[0].y*s[0].x+a[1].y*s[0].y,a[0].x*s[1].x+a[1].x*s[1].y,a[0].y*s[1].x+a[1].y*s[1].y)},mat3x3f:(e,t)=>{let a=e.columns,s=t.columns;return N(a[0].x*s[0].x+a[1].x*s[0].y+a[2].x*s[0].z,a[0].y*s[0].x+a[1].y*s[0].y+a[2].y*s[0].z,a[0].z*s[0].x+a[1].z*s[0].y+a[2].z*s[0].z,a[0].x*s[1].x+a[1].x*s[1].y+a[2].x*s[1].z,a[0].y*s[1].x+a[1].y*s[1].y+a[2].y*s[1].z,a[0].z*s[1].x+a[1].z*s[1].y+a[2].z*s[1].z,a[0].x*s[2].x+a[1].x*s[2].y+a[2].x*s[2].z,a[0].y*s[2].x+a[1].y*s[2].y+a[2].y*s[2].z,a[0].z*s[2].x+a[1].z*s[2].y+a[2].z*s[2].z)},mat4x4f:(e,t)=>{let a=e.columns,s=t.columns;return J(a[0].x*s[0].x+a[1].x*s[0].y+a[2].x*s[0].z+a[3].x*s[0].w,a[0].y*s[0].x+a[1].y*s[0].y+a[2].y*s[0].z+a[3].y*s[0].w,a[0].z*s[0].x+a[1].z*s[0].y+a[2].z*s[0].z+a[3].z*s[0].w,a[0].w*s[0].x+a[1].w*s[0].y+a[2].w*s[0].z+a[3].w*s[0].w,a[0].x*s[1].x+a[1].x*s[1].y+a[2].x*s[1].z+a[3].x*s[1].w,a[0].y*s[1].x+a[1].y*s[1].y+a[2].y*s[1].z+a[3].y*s[1].w,a[0].z*s[1].x+a[1].z*s[1].y+a[2].z*s[1].z+a[3].z*s[1].w,a[0].w*s[1].x+a[1].w*s[1].y+a[2].w*s[1].z+a[3].w*s[1].w,a[0].x*s[2].x+a[1].x*s[2].y+a[2].x*s[2].z+a[3].x*s[2].w,a[0].y*s[2].x+a[1].y*s[2].y+a[2].y*s[2].z+a[3].y*s[2].w,a[0].z*s[2].x+a[1].z*s[2].y+a[2].z*s[2].z+a[3].z*s[2].w,a[0].w*s[2].x+a[1].w*s[2].y+a[2].w*s[2].z+a[3].w*s[2].w,a[0].x*s[3].x+a[1].x*s[3].y+a[2].x*s[3].z+a[3].x*s[3].w,a[0].y*s[3].x+a[1].y*s[3].y+a[2].y*s[3].z+a[3].y*s[3].w,a[0].z*s[3].x+a[1].z*s[3].y+a[2].z*s[3].z+a[3].z*s[3].w,a[0].w*s[3].x+a[1].w*s[3].y+a[2].w*s[3].z+a[3].w*s[3].w)}},mulMxV:{mat2x2f:(e,t)=>{let a=e.columns;return y(a[0].x*t.x+a[1].x*t.y,a[0].y*t.x+a[1].y*t.y)},mat3x3f:(e,t)=>{let a=e.columns;return v(a[0].x*t.x+a[1].x*t.y+a[2].x*t.z,a[0].y*t.x+a[1].y*t.y+a[2].y*t.z,a[0].z*t.x+a[1].z*t.y+a[2].z*t.z)},mat4x4f:(e,t)=>{let a=e.columns;return o(a[0].x*t.x+a[1].x*t.y+a[2].x*t.z+a[3].x*t.w,a[0].y*t.x+a[1].y*t.y+a[2].y*t.z+a[3].y*t.w,a[0].z*t.x+a[1].z*t.y+a[2].z*t.z+a[3].z*t.w,a[0].w*t.x+a[1].w*t.y+a[2].w*t.z+a[3].w*t.w)}},mulVxM:{mat2x2f:(e,t)=>{let a=t.columns;return y(e.x*a[0].x+e.y*a[0].y,e.x*a[1].x+e.y*a[1].y)},mat3x3f:(e,t)=>{let a=t.columns;return v(e.x*a[0].x+e.y*a[0].y+e.z*a[0].z,e.x*a[1].x+e.y*a[1].y+e.z*a[1].z,e.x*a[2].x+e.y*a[2].y+e.z*a[2].z)},mat4x4f:(e,t)=>{let a=t.columns;return o(e.x*a[0].x+e.y*a[0].y+e.z*a[0].z+e.w*a[0].w,e.x*a[1].x+e.y*a[1].y+e.z*a[1].z+e.w*a[1].w,e.x*a[2].x+e.y*a[2].y+e.z*a[2].z+e.w*a[2].w,e.x*a[3].x+e.y*a[3].y+e.z*a[3].z+e.w*a[3].w)}},dot:{vec2f:P,vec2h:P,vec2i:P,vec2u:P,vec3f:_,vec3h:_,vec3i:_,vec3u:_,vec4f:G,vec4h:G,vec4i:G,vec4u:G},normalize:{vec2f:e=>{let t=K(e);return y(e.x/t,e.y/t)},vec2h:e=>{let t=K(e);return l(e.x/t,e.y/t)},vec2i:e=>{let t=K(e);return m(e.x/t,e.y/t)},vec2u:e=>{let t=K(e);return T(e.x/t,e.y/t)},vec3f:e=>{let t=R(e);return v(e.x/t,e.y/t,e.z/t)},vec3h:e=>{let t=R(e);return x(e.x/t,e.y/t,e.z/t)},vec3i:e=>{let t=R(e);return i(e.x/t,e.y/t,e.z/t)},vec3u:e=>{let t=R(e);return w(e.x/t,e.y/t,e.z/t)},vec4f:e=>{let t=U(e);return o(e.x/t,e.y/t,e.z/t,e.w/t)},vec4h:e=>{let t=U(e);return u(e.x/t,e.y/t,e.z/t,e.w/t)},vec4i:e=>{let t=U(e);return d(e.x/t,e.y/t,e.z/t,e.w/t)},vec4u:e=>{let t=U(e);return h(e.x/t,e.y/t,e.z/t,e.w/t)}},cross:{vec3f:(e,t)=>v(e.y*t.z-e.z*t.y,e.z*t.x-e.x*t.z,e.x*t.y-e.y*t.x),vec3h:(e,t)=>x(e.y*t.z-e.z*t.y,e.z*t.x-e.x*t.z,e.x*t.y-e.y*t.x),vec3i:(e,t)=>i(e.y*t.z-e.z*t.y,e.z*t.x-e.x*t.z,e.x*t.y-e.y*t.x),vec3u:(e,t)=>w(e.y*t.z-e.z*t.y,e.z*t.x-e.x*t.z,e.x*t.y-e.y*t.x)},floor:{vec2f:g(Math.floor),vec2h:p(Math.floor),vec2i:z(Math.floor),vec2u:M(Math.floor),vec3f:B(Math.floor),vec3h:b(Math.floor),vec3i:$(Math.floor),vec3u:A(Math.floor),vec4f:V(Math.floor),vec4h:O(Math.floor),vec4i:k(Math.floor),vec4u:I(Math.floor)},max:{vec2f:L(Math.max),vec2h:j(Math.max),vec2i:q(Math.max),vec2u:X(Math.max),vec3f:Z(Math.max),vec3h:H(Math.max),vec3i:Q(Math.max),vec3u:Y(Math.max),vec4f:ee(Math.max),vec4h:te(Math.max),vec4i:ae(Math.max),vec4u:se(Math.max)},min:{vec2f:L(Math.min),vec2h:j(Math.min),vec2i:q(Math.min),vec2u:X(Math.min),vec3f:Z(Math.min),vec3h:H(Math.min),vec3i:Q(Math.min),vec3u:Y(Math.min),vec4f:ee(Math.min),vec4h:te(Math.min),vec4i:ae(Math.min),vec4u:se(Math.min)},pow:{vec2f:(e,t)=>y(e.x**t.x,e.y**t.y),vec2h:(e,t)=>l(e.x**t.x,e.y**t.y),vec3f:(e,t)=>v(e.x**t.x,e.y**t.y,e.z**t.z),vec3h:(e,t)=>x(e.x**t.x,e.y**t.y,e.z**t.z),vec4f:(e,t)=>o(e.x**t.x,e.y**t.y,e.z**t.z,e.w**t.w),vec4h:(e,t)=>u(e.x**t.x,e.y**t.y,e.z**t.z,e.w**t.w)},mix:{vec2f:(e,t,a)=>typeof a=="number"?y(e.x*(1-a)+t.x*a,e.y*(1-a)+t.y*a):y(e.x*(1-a.x)+t.x*a.x,e.y*(1-a.y)+t.y*a.y),vec2h:(e,t,a)=>typeof a=="number"?l(e.x*(1-a)+t.x*a,e.y*(1-a)+t.y*a):l(e.x*(1-a.x)+t.x*a.x,e.y*(1-a.y)+t.y*a.y),vec3f:(e,t,a)=>typeof a=="number"?v(e.x*(1-a)+t.x*a,e.y*(1-a)+t.y*a,e.z*(1-a)+t.z*a):v(e.x*(1-a.x)+t.x*a.x,e.y*(1-a.y)+t.y*a.y,e.z*(1-a.z)+t.z*a.z),vec3h:(e,t,a)=>typeof a=="number"?x(e.x*(1-a)+t.x*a,e.y*(1-a)+t.y*a,e.z*(1-a)+t.z*a):x(e.x*(1-a.x)+t.x*a.x,e.y*(1-a.y)+t.y*a.y,e.z*(1-a.z)+t.z*a.z),vec4f:(e,t,a)=>typeof a=="number"?o(e.x*(1-a)+t.x*a,e.y*(1-a)+t.y*a,e.z*(1-a)+t.z*a,e.w*(1-a)+t.w*a):o(e.x*(1-a.x)+t.x*a.x,e.y*(1-a.y)+t.y*a.y,e.z*(1-a.z)+t.z*a.z,e.w*(1-a.w)+t.w*a.w),vec4h:(e,t,a)=>typeof a=="number"?u(e.x*(1-a)+t.x*a,e.y*(1-a)+t.y*a,e.z*(1-a)+t.z*a,e.w*(1-a)+t.w*a):u(e.x*(1-a.x)+t.x*a.x,e.y*(1-a.y)+t.y*a.y,e.z*(1-a.z)+t.z*a.z,e.w*(1-a.w)+t.w*a.w)},sin:{vec2f:g(Math.sin),vec2h:p(Math.sin),vec2i:z(Math.sin),vec2u:M(Math.sin),vec3f:B(Math.sin),vec3h:b(Math.sin),vec3i:$(Math.sin),vec3u:A(Math.sin),vec4f:V(Math.sin),vec4h:O(Math.sin),vec4i:k(Math.sin),vec4u:I(Math.sin)},cos:{vec2f:g(Math.cos),vec2h:p(Math.cos),vec2i:z(Math.cos),vec2u:M(Math.cos),vec3f:B(Math.cos),vec3h:b(Math.cos),vec3i:$(Math.cos),vec3u:A(Math.cos),vec4f:V(Math.cos),vec4h:O(Math.cos),vec4i:k(Math.cos),vec4u:I(Math.cos)},exp:{vec2f:g(Math.exp),vec2h:p(Math.exp),vec2i:z(Math.exp),vec2u:M(Math.exp),vec3f:B(Math.exp),vec3h:b(Math.exp),vec3i:$(Math.exp),vec3u:A(Math.exp),vec4f:V(Math.exp),vec4h:O(Math.exp),vec4i:k(Math.exp),vec4u:I(Math.exp)},fract:{vec2f:g(e=>e-Math.floor(e)),vec2h:p(e=>e-Math.floor(e)),vec2i:z(e=>e-Math.floor(e)),vec2u:M(e=>e-Math.floor(e)),vec3f:B(e=>e-Math.floor(e)),vec3h:b(e=>e-Math.floor(e)),vec3i:$(e=>e-Math.floor(e)),vec3u:A(e=>e-Math.floor(e)),vec4f:V(e=>e-Math.floor(e)),vec4h:O(e=>e-Math.floor(e)),vec4i:k(e=>e-Math.floor(e)),vec4u:I(e=>e-Math.floor(e))},isCloseToZero:{vec2f:(e,t)=>Math.abs(e.x)<=t&&Math.abs(e.y)<=t,vec2h:(e,t)=>Math.abs(e.x)<=t&&Math.abs(e.y)<=t,vec3f:(e,t)=>Math.abs(e.x)<=t&&Math.abs(e.y)<=t&&Math.abs(e.z)<=t,vec3h:(e,t)=>Math.abs(e.x)<=t&&Math.abs(e.y)<=t&&Math.abs(e.z)<=t,vec4f:(e,t)=>Math.abs(e.x)<=t&&Math.abs(e.y)<=t&&Math.abs(e.z)<=t&&Math.abs(e.w)<=t,vec4h:(e,t)=>Math.abs(e.x)<=t&&Math.abs(e.y)<=t&&Math.abs(e.z)<=t&&Math.abs(e.w)<=t}};function S(e){let t=e.dataType.type;return t==="abstractInt"||t==="abstractFloat"||t==="f32"||t==="f16"||t==="i32"||t==="u32"}var oe=n((e,t)=>c.add[e.kind](e,t),(e,t)=>({value:`(${e.value} + ${t.value})`,dataType:e.dataType})),D=n((e,t)=>c.sub[e.kind](e,t),(e,t)=>({value:`(${e.value} - ${t.value})`,dataType:e.dataType})),re=n((e,t)=>{if(typeof e=="number")return c.mulSxV[t.kind](e,t);if(typeof e=="object"&&typeof t=="object"&&"kind"in e&&"kind"in t){let a=!e.kind.startsWith("mat"),s=!t.kind.startsWith("mat");if(!a&&s)return c.mulMxV[e.kind](e,t);if(a&&!s)return c.mulVxM[t.kind](e,t)}return c.mulVxV[t.kind](e,t)},(e,t)=>{let a=S(e)?t.dataType:e.dataType.type.startsWith("mat")?t.dataType.type.startsWith("mat")?e.dataType:t.dataType:e.dataType;return{value:`(${e.value} * ${t.value})`,dataType:a}}),xe=n(e=>typeof e=="number"?Math.abs(e):c.abs[e.kind](e),e=>({value:`abs(${e.value})`,dataType:e.dataType})),le=n((e,t)=>typeof e=="number"&&typeof t=="number"?Math.atan2(e,t):c.atan2[e.kind](e,t),(e,t)=>({value:`atan2(${e.value}, ${t.value})`,dataType:e.dataType})),ue=n(e=>typeof e=="number"?Math.acos(e):c.acos[e.kind](e),e=>({value:`acos(${e.value})`,dataType:e.dataType})),ie=n(e=>typeof e=="number"?Math.asin(e):c.asin[e.kind](e),e=>({value:`asin(${e.value})`,dataType:e.dataType})),we=n(e=>typeof e=="number"?Math.ceil(e):c.ceil[e.kind](e),e=>({value:`ceil(${e.value})`,dataType:e.dataType})),fe=n((e,t,a)=>typeof e=="number"?Math.min(Math.max(t,e),a):c.clamp[e.kind](e,t,a),(e,t,a)=>({value:`clamp(${e.value}, ${t.value}, ${a.value})`,dataType:e.dataType})),me=n(e=>typeof e=="number"?Math.cos(e):c.cos[e.kind](e),e=>({value:`cos(${e.value})`,dataType:e.dataType})),Te=n((e,t)=>c.cross[e.kind](e,t),(e,t)=>({value:`cross(${e.value}, ${t.value})`,dataType:e.dataType})),ce=n((e,t)=>c.dot[e.kind](e,t),(e,t)=>({value:`dot(${e.value}, ${t.value})`,dataType:E})),de=n(e=>c.normalize[e.kind](e),e=>({value:`normalize(${e.value})`,dataType:e.dataType})),he=n(e=>typeof e=="number"?Math.floor(e):c.floor[e.kind](e),e=>({value:`floor(${e.value})`,dataType:e.dataType})),ge=n(e=>typeof e=="number"?e-Math.floor(e):c.fract[e.kind](e),e=>({value:`fract(${e.value})`,dataType:e.dataType})),ve=n(e=>typeof e=="number"?Math.abs(e):c.length[e.kind](e),e=>({value:`length(${e.value})`,dataType:E})),pe=n((e,t)=>typeof e=="number"?Math.max(e,t):c.max[e.kind](e,t),(e,t)=>({value:`max(${e.value}, ${t.value})`,dataType:e.dataType})),ze=n((e,t)=>typeof e=="number"?Math.min(e,t):c.min[e.kind](e,t),(e,t)=>({value:`min(${e.value}, ${t.value})`,dataType:e.dataType})),Me=n(e=>typeof e=="number"?Math.sin(e):c.sin[e.kind](e),e=>({value:`sin(${e.value})`,dataType:e.dataType})),Be=n(e=>typeof e=="number"?Math.exp(e):c.exp[e.kind](e),e=>({value:`exp(${e.value})`,dataType:e.dataType})),be=n((e,t)=>{if(typeof e=="number"&&typeof t=="number")return e**t;if(typeof e=="object"&&typeof t=="object"&&"kind"in e&&"kind"in t)return c.pow[e.kind](e,t);throw new Error("Invalid arguments to pow()")},(e,t)=>({value:`pow(${e.value}, ${t.value})`,dataType:e.dataType})),$e=n((e,t,a)=>{if(typeof e=="number"){if(typeof a!="number"||typeof t!="number")throw new Error("When e1 and e2 are numbers, the blend factor must be a number.");return e*(1-a)+t*a}if(typeof e=="number"||typeof t=="number")throw new Error("e1 and e2 need to both be vectors of the same kind.");return c.mix[e.kind](e,t,a)},(e,t,a)=>({value:`mix(${e.value}, ${t.value}, ${a.value})`,dataType:e.dataType})),Ae=n((e,t)=>D(e,re(2*ce(t,e),t)),(e,t)=>({value:`reflect(${e.value}, ${t.value})`,dataType:e.dataType})),Ve=n((e,t)=>typeof e=="number"&&typeof t=="number"?Math.abs(e-t):ve(D(e,t)),(e,t)=>({value:`distance(${e.value}, ${t.value})`,dataType:E})),Oe=n((e,t,a=.01)=>typeof e=="number"&&typeof t=="number"?Math.abs(e-t)<a:typeof e!="number"&&typeof t!="number"?c.isCloseToZero[e.kind](D(e,t),a):!1,(e,t,a={value:.01,dataType:E})=>S(e)&&S(t)?{value:`abs(f32(${e.value})-f32(${t.value})) <= ${a.value}`,dataType:C}:!S(e)&&!S(t)?{value:`all(abs(${e.value}-${t.value}) <= (${e.value} - ${e.value})+${a.value})`,dataType:C}:{value:"false",dataType:C});var ke=n(()=>console.warn("workgroupBarrier is a no-op outside of GPU mode."),()=>({value:"workgroupBarrier()",dataType:W})),Ie=n(()=>console.warn("storageBarrier is a no-op outside of GPU mode."),()=>({value:"storageBarrier()",dataType:W})),Ke=n(()=>console.warn("textureBarrier is a no-op outside of GPU mode."),()=>({value:"textureBarrier()",dataType:W})),Re=n(e=>{throw new Error("Atomic operations are not supported outside of GPU mode.")},e=>{if(f(e.dataType)&&e.dataType.type==="atomic")return{value:`atomicLoad(&${e.value})`,dataType:e.dataType.inner};throw new Error(`Invalid atomic type: ${JSON.stringify(e.dataType,null,2)}`)}),Ue=n((e,t)=>{throw new Error("Atomic operations are not supported outside of GPU mode.")},(e,t)=>{if(!f(e.dataType)||e.dataType.type!=="atomic")throw new Error(`Invalid atomic type: ${JSON.stringify(e.dataType,null,2)}`);return{value:`atomicStore(&${e.value}, ${t.value})`,dataType:W}}),We=n((e,t)=>{throw new Error("Atomic operations are not supported outside of GPU mode.")},(e,t)=>{if(f(e.dataType)&&e.dataType.type==="atomic")return{value:`atomicAdd(&${e.value}, ${t.value})`,dataType:e.dataType.inner};throw new Error(`Invalid atomic type: ${JSON.stringify(e.dataType,null,2)}`)}),Ee=n((e,t)=>{throw new Error("Atomic operations are not supported outside of GPU mode.")},(e,t)=>{if(f(e.dataType)&&e.dataType.type==="atomic")return{value:`atomicSub(&${e.value}, ${t.value})`,dataType:e.dataType.inner};throw new Error(`Invalid atomic type: ${JSON.stringify(e.dataType,null,2)}`)}),Se=n((e,t)=>{throw new Error("Atomic operations are not supported outside of GPU mode.")},(e,t)=>{if(f(e.dataType)&&e.dataType.type==="atomic")return{value:`atomicMax(&${e.value}, ${t.value})`,dataType:e.dataType.inner};throw new Error(`Invalid atomic type: ${JSON.stringify(e.dataType,null,2)}`)}),Ce=n((e,t)=>{throw new Error("Atomic operations are not supported outside of GPU mode.")},(e,t)=>{if(f(e.dataType)&&e.dataType.type==="atomic")return{value:`atomicMin(&${e.value}, ${t.value})`,dataType:e.dataType.inner};throw new Error(`Invalid atomic type: ${JSON.stringify(e.dataType,null,2)}`)}),Pe=n((e,t)=>{throw new Error("Atomic operations are not supported outside of GPU mode.")},(e,t)=>{if(f(e.dataType)&&e.dataType.type==="atomic")return{value:`atomicAnd(&${e.value}, ${t.value})`,dataType:e.dataType.inner};throw new Error(`Invalid atomic type: ${JSON.stringify(e.dataType,null,2)}`)}),_e=n((e,t)=>{throw new Error("Atomic operations are not supported outside of GPU mode.")},(e,t)=>{if(f(e.dataType)&&e.dataType.type==="atomic")return{value:`atomicOr(&${e.value}, ${t.value})`,dataType:e.dataType.inner};throw new Error(`Invalid atomic type: ${JSON.stringify(e.dataType,null,2)}`)}),Ge=n((e,t)=>{throw new Error("Atomic operations are not supported outside of GPU mode.")},(e,t)=>{if(f(e.dataType)&&e.dataType.type==="atomic")return{value:`atomicXor(&${e.value}, ${t.value})`,dataType:e.dataType.inner};throw new Error(`Invalid atomic type: ${JSON.stringify(e.dataType,null,2)}`)});var De=n(e=>e.length,e=>({value:`arrayLength(&${e.value})`,dataType:ne}));export{xe as abs,ue as acos,oe as add,De as arrayLength,ie as asin,le as atan2,We as atomicAdd,Pe as atomicAnd,Re as atomicLoad,Se as atomicMax,Ce as atomicMin,_e as atomicOr,Ue as atomicStore,Ee as atomicSub,Ge as atomicXor,we as ceil,fe as clamp,me as cos,Te as cross,ye as discard,Ve as distance,ce as dot,Be as exp,he as floor,ge as fract,Oe as isCloseTo,ve as length,pe as max,ze as min,$e as mix,re as mul,de as normalize,be as pow,Ae as reflect,Me as sin,Ie as storageBarrier,D as sub,Ke as textureBarrier,ke as workgroupBarrier};
|
2
2
|
//# sourceMappingURL=index.js.map
|