glre 0.33.0 → 0.34.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/dist/index.d.ts CHANGED
@@ -51,7 +51,7 @@ declare const OPERATORS: {
51
51
  readonly shiftRight: ">>";
52
52
  };
53
53
  declare const OPERATOR_KEYS: (keyof typeof OPERATORS)[];
54
- declare const FUNCTIONS: readonly ["dot", "distance", "length", "lengthSq", "determinant", "luminance", "all", "any", "abs", "sign", "floor", "ceil", "round", "fract", "trunc", "sin", "cos", "tan", "asin", "acos", "atan", "exp", "exp2", "log", "log2", "sqrt", "inverseSqrt", "normalize", "oneMinus", "saturate", "negate", "reciprocal", "dFdx", "dFdy", "fwidth", "cross", "reflect", "refract", "min", "max", "mix", "clamp", "step", "smoothstep", "texture", "textureLod", "textureSize", "cubeTexture", "atan2", "degrees", "faceforward", "bitcast", "cbrt", "difference", "equals", "pow", "pow2", "pow3", "pow4", "radians", "transformDirection"];
54
+ declare const FUNCTIONS: readonly ["dot", "distance", "length", "lengthSq", "determinant", "luminance", "all", "any", "abs", "sign", "floor", "ceil", "round", "fract", "trunc", "sin", "cos", "tan", "asin", "acos", "atan", "sinh", "cosh", "tanh", "asinh", "acosh", "atanh", "exp", "exp2", "log", "log2", "sqrt", "inverseSqrt", "normalize", "oneMinus", "saturate", "negate", "reciprocal", "dFdx", "dFdy", "fwidth", "degrees", "radians", "cross", "reflect", "refract", "min", "max", "mix", "clamp", "step", "smoothstep", "pow", "atan2", "texture", "textureLod", "textureSize", "cubeTexture", "faceforward", "bitcast", "cbrt", "difference", "equals", "pow2", "pow3", "pow4", "transformDirection"];
55
55
 
56
56
  type Constants = (typeof CONSTANTS)[number] | 'void';
57
57
  type Conversions = (typeof CONVERSIONS)[number];
@@ -69,16 +69,16 @@ interface FnLayout {
69
69
  * Node
70
70
  */
71
71
  type NodeTypes = 'attribute' | 'uniform' | 'constant' | 'variable' | 'varying' | 'ternary' | 'builtin' | 'conversion' | 'operator' | 'function' | 'struct' | 'member' | 'scope' | 'assign' | 'loop' | 'define' | 'if' | 'switch' | 'declare' | 'return';
72
- interface NodeProps {
72
+ interface NodeProps<T extends Record<string, NodeProxy> = {}> {
73
73
  id?: string;
74
- args?: X[];
74
+ args?: any[];
75
75
  type?: string;
76
- children?: X[];
77
- inferFrom?: X[];
76
+ children?: any[];
77
+ inferFrom?: any[];
78
78
  layout?: FnLayout;
79
79
  parent?: NodeProxy;
80
- fields?: Record<string, NodeProxy>;
81
- initialValues?: Record<string, NodeProxy>;
80
+ fields?: T;
81
+ initialValues?: T;
82
82
  }
83
83
  interface NodeContext {
84
84
  gl?: Partial<GL>;
@@ -97,259 +97,1819 @@ interface NodeContext {
97
97
  };
98
98
  }
99
99
  /**
100
- * NodeProxy
100
+ * infer
101
+ */
102
+ type InferOperator<L extends Constants, R extends Constants> = L extends R ? L : L extends 'float' | 'int' ? R : R extends 'float' | 'int' ? L : L extends 'mat4' ? R extends 'vec4' ? R : L : L extends 'mat3' ? R extends 'vec3' ? R : L : L extends 'mat2' ? R extends 'vec2' ? R : L : L extends 'vec4' ? R extends 'mat4' ? L : L : L extends 'vec3' ? R extends 'mat3' ? L : L : L extends 'vec2' ? R extends 'mat2' ? L : L : L;
103
+ type _StringLength<S extends string> = S extends `${infer _}${infer Rest}` ? Rest extends '' ? 1 : Rest extends `${infer _}${infer Rest2}` ? Rest2 extends '' ? 2 : Rest2 extends `${infer _}${infer Rest3}` ? Rest3 extends '' ? 3 : 4 : never : never : 0;
104
+ type InferSwizzleType<S extends string> = _StringLength<S> extends 4 ? 'vec4' : _StringLength<S> extends 3 ? 'vec3' : _StringLength<S> extends 2 ? 'vec2' : 'float';
105
+ /**
106
+ * Swizzles
101
107
  */
102
108
  type _Swizzles<T extends string> = T | `${T}${T}` | `${T}${T}${T}` | `${T}${T}${T}${T}`;
103
109
  type Swizzles = _Swizzles<'x' | 'y' | 'z' | 'w'> | _Swizzles<'r' | 'g' | 'b' | 'a'> | _Swizzles<'p' | 'q'> | _Swizzles<'s' | 't'>;
104
110
  type NodeProxyMethods = Functions | Operators | Conversions | Swizzles | 'type' | 'props' | 'isProxy' | 'assign' | 'toVar' | 'toString';
105
- type ReadNodeProxy = {
106
- [K in string as K extends NodeProxyMethods ? never : K]: X;
107
- };
108
- interface BaseNodeProxy extends Record<Swizzles, NodeProxy> {
109
- assign(n: X): NodeProxy;
110
- toVar(name?: string): NodeProxy;
111
+ interface BaseNodeProxy<T extends Constants> {
112
+ assign(x: any): NodeProxy<T>;
113
+ toVar(name?: string): NodeProxy<T>;
111
114
  toString(c?: NodeContext): string;
112
115
  type: NodeTypes;
113
116
  props: NodeProps;
114
117
  isProxy: true;
115
118
  listeners: Set<(value: any) => void>;
116
- add(n: X): NodeProxy;
117
- sub(n: X): NodeProxy;
118
- mul(n: X): NodeProxy;
119
- div(n: X): NodeProxy;
120
- mod(n: X): NodeProxy;
121
- equal(n: X): NodeProxy;
122
- notEqual(n: X): NodeProxy;
123
- lessThan(n: X): NodeProxy;
124
- lessThanEqual(n: X): NodeProxy;
125
- greaterThan(n: X): NodeProxy;
126
- greaterThanEqual(n: X): NodeProxy;
127
- and(n: X): NodeProxy;
128
- or(n: X): NodeProxy;
129
- not(): NodeProxy;
130
- toBool(): NodeProxy;
131
- toUint(): NodeProxy;
132
- toInt(): NodeProxy;
133
- toFloat(): NodeProxy;
134
- toBvec2(): NodeProxy;
135
- toIvec2(): NodeProxy;
136
- toUvec2(): NodeProxy;
137
- toVec2(): NodeProxy;
138
- toBvec3(): NodeProxy;
139
- toIvec3(): NodeProxy;
140
- toUvec3(): NodeProxy;
141
- toVec3(): NodeProxy;
142
- toBvec4(): NodeProxy;
143
- toIvec4(): NodeProxy;
144
- toUvec4(): NodeProxy;
145
- toVec4(): NodeProxy;
146
- toColor(): NodeProxy;
147
- toMat2(): NodeProxy;
148
- toMat3(): NodeProxy;
149
- toMat4(): NodeProxy;
150
- abs(): NodeProxy;
151
- sin(): NodeProxy;
152
- cos(): NodeProxy;
153
- tan(): NodeProxy;
154
- asin(): NodeProxy;
155
- acos(): NodeProxy;
156
- atan(): NodeProxy;
157
- atan2(x: X): NodeProxy;
158
- pow(y: X): NodeProxy;
159
- pow2(): NodeProxy;
160
- pow3(): NodeProxy;
161
- pow4(): NodeProxy;
162
- sqrt(): NodeProxy;
163
- inverseSqrt(): NodeProxy;
164
- exp(): NodeProxy;
165
- exp2(): NodeProxy;
166
- log(): NodeProxy;
167
- log2(): NodeProxy;
168
- floor(): NodeProxy;
169
- ceil(): NodeProxy;
170
- round(): NodeProxy;
171
- fract(): NodeProxy;
172
- trunc(): NodeProxy;
173
- min(y: X): NodeProxy;
174
- max(y: X): NodeProxy;
175
- clamp(min: X, max: X): NodeProxy;
176
- saturate(): NodeProxy;
177
- mix(y: X, a: X): NodeProxy;
178
- step(edge: X): NodeProxy;
179
- smoothstep(edge0: X, edge1: X): NodeProxy;
180
- length(): NodeProxy;
181
- distance(y: X): NodeProxy;
182
- dot(y: X): NodeProxy;
183
- cross(y: X): NodeProxy;
184
- normalize(): NodeProxy;
185
- reflect(N: X): NodeProxy;
186
- refract(N: X, eta: X): NodeProxy;
187
- sign(): NodeProxy;
188
- oneMinus(): NodeProxy;
189
- reciprocal(): NodeProxy;
190
- negate(): NodeProxy;
191
- dFdx(): NodeProxy;
192
- dFdy(): NodeProxy;
193
- fwidth(): NodeProxy;
119
+ add<U extends Constants>(x: X<U>): NodeProxy<InferOperator<T, U>>;
120
+ sub<U extends Constants>(x: X<U>): NodeProxy<InferOperator<T, U>>;
121
+ mul<U extends Constants>(x: X<U>): NodeProxy<InferOperator<T, U>>;
122
+ div<U extends Constants>(x: X<U>): NodeProxy<InferOperator<T, U>>;
123
+ mod<U extends Constants>(x: X<U>): NodeProxy<InferOperator<T, U>>;
124
+ equal<U extends Constants>(x: X<U>): Bool;
125
+ notEqual<U extends Constants>(x: X<U>): Bool;
126
+ lessThan<U extends Constants>(x: X<U>): Bool;
127
+ lessThanEqual<U extends Constants>(x: X<U>): Bool;
128
+ greaterThan<U extends Constants>(x: X<U>): Bool;
129
+ greaterThanEqual<U extends Constants>(x: X<U>): Bool;
130
+ and(x: X<'bool'>): Bool;
131
+ or(x: X<'bool'>): Bool;
132
+ not(): Bool;
133
+ bitAnd(x: X<T>): NodeProxy<T>;
134
+ bitOr(x: X<T>): NodeProxy<T>;
135
+ bitXor(x: X<T>): NodeProxy<T>;
136
+ bitNot(): NodeProxy<T>;
137
+ shiftLeft<U extends Constants>(x: X<U>): NodeProxy<InferOperator<T, U>>;
138
+ shiftRight<U extends Constants>(x: X<U>): NodeProxy<InferOperator<T, U>>;
139
+ toBool(): Bool;
140
+ toUint(): UInt;
141
+ toInt(): Int;
142
+ toFloat(): Float;
143
+ toBvec2(): BVec2;
144
+ toIvec2(): IVec2;
145
+ toUvec2(): UVec2;
146
+ toVec2(): Vec2;
147
+ toBvec3(): BVec3;
148
+ toIvec3(): IVec3;
149
+ toUvec3(): UVec3;
150
+ toVec3(): Vec3;
151
+ toBvec4(): BVec4;
152
+ toIvec4(): IVec4;
153
+ toUvec4(): UVec4;
154
+ toVec4(): Vec4;
155
+ toColor(): Color;
156
+ toMat2(): Mat2;
157
+ toMat3(): Mat3;
158
+ toMat4(): Mat4;
159
+ abs(): NodeProxy<T>;
160
+ sign(): NodeProxy<T>;
161
+ floor(): NodeProxy<T>;
162
+ ceil(): NodeProxy<T>;
163
+ round(): NodeProxy<T>;
164
+ fract(): NodeProxy<T>;
165
+ trunc(): NodeProxy<T>;
166
+ sin(): NodeProxy<T>;
167
+ cos(): NodeProxy<T>;
168
+ tan(): NodeProxy<T>;
169
+ asin(): NodeProxy<T>;
170
+ acos(): NodeProxy<T>;
171
+ atan(): NodeProxy<T>;
172
+ exp(): NodeProxy<T>;
173
+ exp2(): NodeProxy<T>;
174
+ log(): NodeProxy<T>;
175
+ log2(): NodeProxy<T>;
176
+ sqrt(): NodeProxy<T>;
177
+ inverseSqrt(): NodeProxy<T>;
178
+ normalize(): NodeProxy<T>;
179
+ oneMinus(): NodeProxy<T>;
180
+ saturate(): NodeProxy<T>;
181
+ negate(): NodeProxy<T>;
182
+ reciprocal(): NodeProxy<T>;
183
+ dFdx(): NodeProxy<T>;
184
+ dFdy(): NodeProxy<T>;
185
+ fwidth(): NodeProxy<T>;
186
+ length(): Float;
187
+ lengthSq(): Float;
188
+ determinant(): Float;
189
+ luminance(): Float;
190
+ all(): Bool;
191
+ any(): Bool;
192
+ cross<U extends Constants>(y: X<U>): Vec3;
193
+ atan2<U extends Constants>(x: X<U>): NodeProxy<T>;
194
+ pow<U extends Constants>(y: X<U>): NodeProxy<T>;
195
+ distance<U extends Constants>(y: X<U>): Float;
196
+ dot<U extends Constants>(y: X<U>): Float;
197
+ reflect<U extends Constants>(N: X<U>): NodeProxy<T>;
198
+ refract<U extends Constants>(N: X<U>, eta: any): NodeProxy<T>;
199
+ min<U extends Constants>(y: X<U>): NodeProxy<InferOperator<T, U>>;
200
+ max<U extends Constants>(y: X<U>): NodeProxy<InferOperator<T, U>>;
201
+ mix<U extends Constants, V>(y: X<U>, a: V): NodeProxy<InferOperator<T, U>>;
202
+ clamp<U extends Constants, V>(mix: X<U>, max: V): NodeProxy<InferOperator<T, U>>;
203
+ step<U extends Constants>(edge: X<U>): NodeProxy<InferOperator<T, U>>;
204
+ smoothstep<U extends Constants, V>(edge0: X<U>, edge1: V): NodeProxy<InferOperator<T, U>>;
205
+ pow2(): NodeProxy<T>;
206
+ pow3(): NodeProxy<T>;
207
+ pow4(): NodeProxy<T>;
194
208
  }
195
- type NodeProxy = BaseNodeProxy & ReadNodeProxy;
196
- type X = X[] | (NodeProxy | number | string | boolean | undefined);
209
+ type ReadNodeProxy = {
210
+ [K in string as K extends NodeProxyMethods ? never : K]: any;
211
+ } & {
212
+ [K in Swizzles]: NodeProxy<InferSwizzleType<K>>;
213
+ };
214
+ type NodeProxyImpl<T extends Constants = string> = BaseNodeProxy<T> & ReadNodeProxy;
215
+ type Bool = NodeProxyImpl<'bool'>;
216
+ type UInt = NodeProxyImpl<'uint'>;
217
+ type Int = NodeProxyImpl<'int'>;
218
+ type Float = NodeProxyImpl<'float'>;
219
+ type BVec2 = NodeProxyImpl<'bvec2'>;
220
+ type IVec2 = NodeProxyImpl<'ivec2'>;
221
+ type UVec2 = NodeProxyImpl<'uvec2'>;
222
+ type Vec2 = NodeProxyImpl<'vec2'>;
223
+ type BVec3 = NodeProxyImpl<'bvec3'>;
224
+ type IVec3 = NodeProxyImpl<'ivec3'>;
225
+ type UVec3 = NodeProxyImpl<'uvec3'>;
226
+ type Vec3 = NodeProxyImpl<'vec3'>;
227
+ type BVec4 = NodeProxyImpl<'bvec4'>;
228
+ type IVec4 = NodeProxyImpl<'ivec4'>;
229
+ type UVec4 = NodeProxyImpl<'uvec4'>;
230
+ type Vec4 = NodeProxyImpl<'vec4'>;
231
+ type Color = NodeProxyImpl<'color'>;
232
+ type Mat2 = NodeProxyImpl<'mat2'>;
233
+ type Mat3 = NodeProxyImpl<'mat3'>;
234
+ type Mat4 = NodeProxyImpl<'mat4'>;
235
+ type Texture = NodeProxyImpl<'texture'>;
236
+ type Sampler2D = NodeProxyImpl<'sampler2D'>;
237
+ type Struct = NodeProxyImpl<'struct'>;
238
+ interface ConstantsToType {
239
+ bool: Bool;
240
+ uint: UInt;
241
+ int: Int;
242
+ float: Float;
243
+ bvec2: BVec2;
244
+ ivec2: IVec2;
245
+ uvec2: UVec2;
246
+ vec2: Vec2;
247
+ bvec3: BVec3;
248
+ ivec3: IVec3;
249
+ uvec3: UVec3;
250
+ vec3: Vec3;
251
+ bvec4: BVec4;
252
+ ivec4: IVec4;
253
+ uvec4: UVec4;
254
+ vec4: Vec4;
255
+ color: Color;
256
+ mat2: Mat2;
257
+ mat3: Mat3;
258
+ mat4: Mat4;
259
+ texture: Texture;
260
+ sampler2D: Sampler2D;
261
+ struct: Struct;
262
+ }
263
+ type NodeProxy<T extends Constants = string> = T extends keyof ConstantsToType ? ConstantsToType[T] : NodeProxyImpl<T>;
264
+ type X<T extends Constants = string> = number | string | boolean | undefined | NodeProxy<T> | X[];
197
265
 
198
- declare const code: (target: X, c?: NodeContext | null) => string;
266
+ declare const code: <T extends Constants>(target: X<T>, c?: NodeContext | null) => string;
199
267
 
200
- declare const node: (type: NodeTypes, props?: NodeProps | null, ...args: X[]) => NodeProxy;
201
- declare const attribute: (x: X, id?: string) => NodeProxy;
202
- declare const constant: (x: X, id?: string) => NodeProxy;
203
- declare const uniform: (x: X, id?: string) => NodeProxy;
204
- declare const variable: (id?: string) => NodeProxy;
205
- declare const builtin: (id?: string) => NodeProxy;
206
- declare const vertexStage: (x: X, id?: string) => NodeProxy;
207
- declare const operator: (key: Operators, ...x: X[]) => NodeProxy;
208
- declare const function_: (key: Functions, ...x: X[]) => NodeProxy;
209
- declare const conversion: (key: string, ...x: X[]) => NodeProxy;
210
- declare const member: (key: string, x: X) => NodeProxy;
211
- declare const select: (x: X, y: X, z: X) => NodeProxy;
268
+ declare const node: <T extends Constants>(type: NodeTypes, props?: NodeProps | null, ...args: X[]) => NodeProxy<T>;
269
+ declare const attribute: <T extends Constants>(x: X, id?: string) => NodeProxy<T>;
270
+ declare const constant: <T extends Constants>(x: X<T>, id?: string) => NodeProxy<T>;
271
+ declare const uniform: <T extends Constants>(x: X<T>, id?: string) => NodeProxy<T>;
272
+ declare const variable: <T extends Constants>(id?: string) => NodeProxy<T>;
273
+ declare const builtin: <T extends Constants>(id?: string) => NodeProxy<T>;
274
+ declare const vertexStage: <T extends Constants>(x: X<T>, id?: string) => NodeProxy<T>;
275
+ declare const member: <T extends Constants>(key: string, x: X) => NodeProxy<T>;
276
+ declare const select: <T extends Constants>(x: X<T>, y: X<T>, z: X) => NodeProxy<T>;
277
+ declare const operator: <T extends Constants>(key: Operators, ...x: X[]) => NodeProxy<T>;
278
+ declare const function_: <T extends Constants>(key: Functions, ...x: X[]) => NodeProxy<T>;
279
+ declare const conversion: <T extends Constants>(key: T, ...x: X[]) => NodeProxy<T>;
212
280
 
213
- declare const toVar: (x: X, id?: string) => NodeProxy;
214
- declare const assign: (x: X, y: X) => X;
215
- declare const Return: (x: X) => NodeProxy;
216
- declare const struct: (fields: Record<string, NodeProxy>, id?: string) => (initialValues?: Record<string, NodeProxy>, instanceId?: string) => NodeProxy;
217
- declare const If: (x: X, fun: () => void) => {
281
+ declare const toVar: <T extends Constants>(x: X<T>, id?: string) => NodeProxy<T>;
282
+ declare const assign: <T extends Constants>(x: X<T>, y: X<T>) => X<T>;
283
+ declare const Return: <T extends Constants>(x: X<T>) => NodeProxy<T>;
284
+ declare const struct: <T extends Record<string, NodeProxy>>(fields: T, id?: string) => (initialValues?: T, instanceId?: string) => BaseNodeProxy<string> & {
285
+ [x: string]: any;
286
+ } & {
287
+ x: Float;
288
+ y: Float;
289
+ z: Float;
290
+ w: Float;
291
+ xx: Vec2;
292
+ xy: Vec2;
293
+ xz: Vec2;
294
+ xw: Vec2;
295
+ yx: Vec2;
296
+ yy: Vec2;
297
+ yz: Vec2;
298
+ yw: Vec2;
299
+ zx: Vec2;
300
+ zy: Vec2;
301
+ zz: Vec2;
302
+ zw: Vec2;
303
+ wx: Vec2;
304
+ wy: Vec2;
305
+ wz: Vec2;
306
+ ww: Vec2;
307
+ xxx: Vec3;
308
+ xxy: Vec3;
309
+ xxz: Vec3;
310
+ xxw: Vec3;
311
+ xyx: Vec3;
312
+ xyy: Vec3;
313
+ xyz: Vec3;
314
+ xyw: Vec3;
315
+ xzx: Vec3;
316
+ xzy: Vec3;
317
+ xzz: Vec3;
318
+ xzw: Vec3;
319
+ xwx: Vec3;
320
+ xwy: Vec3;
321
+ xwz: Vec3;
322
+ xww: Vec3;
323
+ yxx: Vec3;
324
+ yxy: Vec3;
325
+ yxz: Vec3;
326
+ yxw: Vec3;
327
+ yyx: Vec3;
328
+ yyy: Vec3;
329
+ yyz: Vec3;
330
+ yyw: Vec3;
331
+ yzx: Vec3;
332
+ yzy: Vec3;
333
+ yzz: Vec3;
334
+ yzw: Vec3;
335
+ ywx: Vec3;
336
+ ywy: Vec3;
337
+ ywz: Vec3;
338
+ yww: Vec3;
339
+ zxx: Vec3;
340
+ zxy: Vec3;
341
+ zxz: Vec3;
342
+ zxw: Vec3;
343
+ zyx: Vec3;
344
+ zyy: Vec3;
345
+ zyz: Vec3;
346
+ zyw: Vec3;
347
+ zzx: Vec3;
348
+ zzy: Vec3;
349
+ zzz: Vec3;
350
+ zzw: Vec3;
351
+ zwx: Vec3;
352
+ zwy: Vec3;
353
+ zwz: Vec3;
354
+ zww: Vec3;
355
+ wxx: Vec3;
356
+ wxy: Vec3;
357
+ wxz: Vec3;
358
+ wxw: Vec3;
359
+ wyx: Vec3;
360
+ wyy: Vec3;
361
+ wyz: Vec3;
362
+ wyw: Vec3;
363
+ wzx: Vec3;
364
+ wzy: Vec3;
365
+ wzz: Vec3;
366
+ wzw: Vec3;
367
+ wwx: Vec3;
368
+ wwy: Vec3;
369
+ wwz: Vec3;
370
+ www: Vec3;
371
+ xxxx: Vec4;
372
+ xxxy: Vec4;
373
+ xxxz: Vec4;
374
+ xxxw: Vec4;
375
+ xxyx: Vec4;
376
+ xxyy: Vec4;
377
+ xxyz: Vec4;
378
+ xxyw: Vec4;
379
+ xxzx: Vec4;
380
+ xxzy: Vec4;
381
+ xxzz: Vec4;
382
+ xxzw: Vec4;
383
+ xxwx: Vec4;
384
+ xxwy: Vec4;
385
+ xxwz: Vec4;
386
+ xxww: Vec4;
387
+ xyxx: Vec4;
388
+ xyxy: Vec4;
389
+ xyxz: Vec4;
390
+ xyxw: Vec4;
391
+ xyyx: Vec4;
392
+ xyyy: Vec4;
393
+ xyyz: Vec4;
394
+ xyyw: Vec4;
395
+ xyzx: Vec4;
396
+ xyzy: Vec4;
397
+ xyzz: Vec4;
398
+ xyzw: Vec4;
399
+ xywx: Vec4;
400
+ xywy: Vec4;
401
+ xywz: Vec4;
402
+ xyww: Vec4;
403
+ xzxx: Vec4;
404
+ xzxy: Vec4;
405
+ xzxz: Vec4;
406
+ xzxw: Vec4;
407
+ xzyx: Vec4;
408
+ xzyy: Vec4;
409
+ xzyz: Vec4;
410
+ xzyw: Vec4;
411
+ xzzx: Vec4;
412
+ xzzy: Vec4;
413
+ xzzz: Vec4;
414
+ xzzw: Vec4;
415
+ xzwx: Vec4;
416
+ xzwy: Vec4;
417
+ xzwz: Vec4;
418
+ xzww: Vec4;
419
+ xwxx: Vec4;
420
+ xwxy: Vec4;
421
+ xwxz: Vec4;
422
+ xwxw: Vec4;
423
+ xwyx: Vec4;
424
+ xwyy: Vec4;
425
+ xwyz: Vec4;
426
+ xwyw: Vec4;
427
+ xwzx: Vec4;
428
+ xwzy: Vec4;
429
+ xwzz: Vec4;
430
+ xwzw: Vec4;
431
+ xwwx: Vec4;
432
+ xwwy: Vec4;
433
+ xwwz: Vec4;
434
+ xwww: Vec4;
435
+ yxxx: Vec4;
436
+ yxxy: Vec4;
437
+ yxxz: Vec4;
438
+ yxxw: Vec4;
439
+ yxyx: Vec4;
440
+ yxyy: Vec4;
441
+ yxyz: Vec4;
442
+ yxyw: Vec4;
443
+ yxzx: Vec4;
444
+ yxzy: Vec4;
445
+ yxzz: Vec4;
446
+ yxzw: Vec4;
447
+ yxwx: Vec4;
448
+ yxwy: Vec4;
449
+ yxwz: Vec4;
450
+ yxww: Vec4;
451
+ yyxx: Vec4;
452
+ yyxy: Vec4;
453
+ yyxz: Vec4;
454
+ yyxw: Vec4;
455
+ yyyx: Vec4;
456
+ yyyy: Vec4;
457
+ yyyz: Vec4;
458
+ yyyw: Vec4;
459
+ yyzx: Vec4;
460
+ yyzy: Vec4;
461
+ yyzz: Vec4;
462
+ yyzw: Vec4;
463
+ yywx: Vec4;
464
+ yywy: Vec4;
465
+ yywz: Vec4;
466
+ yyww: Vec4;
467
+ yzxx: Vec4;
468
+ yzxy: Vec4;
469
+ yzxz: Vec4;
470
+ yzxw: Vec4;
471
+ yzyx: Vec4;
472
+ yzyy: Vec4;
473
+ yzyz: Vec4;
474
+ yzyw: Vec4;
475
+ yzzx: Vec4;
476
+ yzzy: Vec4;
477
+ yzzz: Vec4;
478
+ yzzw: Vec4;
479
+ yzwx: Vec4;
480
+ yzwy: Vec4;
481
+ yzwz: Vec4;
482
+ yzww: Vec4;
483
+ ywxx: Vec4;
484
+ ywxy: Vec4;
485
+ ywxz: Vec4;
486
+ ywxw: Vec4;
487
+ ywyx: Vec4;
488
+ ywyy: Vec4;
489
+ ywyz: Vec4;
490
+ ywyw: Vec4;
491
+ ywzx: Vec4;
492
+ ywzy: Vec4;
493
+ ywzz: Vec4;
494
+ ywzw: Vec4;
495
+ ywwx: Vec4;
496
+ ywwy: Vec4;
497
+ ywwz: Vec4;
498
+ ywww: Vec4;
499
+ zxxx: Vec4;
500
+ zxxy: Vec4;
501
+ zxxz: Vec4;
502
+ zxxw: Vec4;
503
+ zxyx: Vec4;
504
+ zxyy: Vec4;
505
+ zxyz: Vec4;
506
+ zxyw: Vec4;
507
+ zxzx: Vec4;
508
+ zxzy: Vec4;
509
+ zxzz: Vec4;
510
+ zxzw: Vec4;
511
+ zxwx: Vec4;
512
+ zxwy: Vec4;
513
+ zxwz: Vec4;
514
+ zxww: Vec4;
515
+ zyxx: Vec4;
516
+ zyxy: Vec4;
517
+ zyxz: Vec4;
518
+ zyxw: Vec4;
519
+ zyyx: Vec4;
520
+ zyyy: Vec4;
521
+ zyyz: Vec4;
522
+ zyyw: Vec4;
523
+ zyzx: Vec4;
524
+ zyzy: Vec4;
525
+ zyzz: Vec4;
526
+ zyzw: Vec4;
527
+ zywx: Vec4;
528
+ zywy: Vec4;
529
+ zywz: Vec4;
530
+ zyww: Vec4;
531
+ zzxx: Vec4;
532
+ zzxy: Vec4;
533
+ zzxz: Vec4;
534
+ zzxw: Vec4;
535
+ zzyx: Vec4;
536
+ zzyy: Vec4;
537
+ zzyz: Vec4;
538
+ zzyw: Vec4;
539
+ zzzx: Vec4;
540
+ zzzy: Vec4;
541
+ zzzz: Vec4;
542
+ zzzw: Vec4;
543
+ zzwx: Vec4;
544
+ zzwy: Vec4;
545
+ zzwz: Vec4;
546
+ zzww: Vec4;
547
+ zwxx: Vec4;
548
+ zwxy: Vec4;
549
+ zwxz: Vec4;
550
+ zwxw: Vec4;
551
+ zwyx: Vec4;
552
+ zwyy: Vec4;
553
+ zwyz: Vec4;
554
+ zwyw: Vec4;
555
+ zwzx: Vec4;
556
+ zwzy: Vec4;
557
+ zwzz: Vec4;
558
+ zwzw: Vec4;
559
+ zwwx: Vec4;
560
+ zwwy: Vec4;
561
+ zwwz: Vec4;
562
+ zwww: Vec4;
563
+ wxxx: Vec4;
564
+ wxxy: Vec4;
565
+ wxxz: Vec4;
566
+ wxxw: Vec4;
567
+ wxyx: Vec4;
568
+ wxyy: Vec4;
569
+ wxyz: Vec4;
570
+ wxyw: Vec4;
571
+ wxzx: Vec4;
572
+ wxzy: Vec4;
573
+ wxzz: Vec4;
574
+ wxzw: Vec4;
575
+ wxwx: Vec4;
576
+ wxwy: Vec4;
577
+ wxwz: Vec4;
578
+ wxww: Vec4;
579
+ wyxx: Vec4;
580
+ wyxy: Vec4;
581
+ wyxz: Vec4;
582
+ wyxw: Vec4;
583
+ wyyx: Vec4;
584
+ wyyy: Vec4;
585
+ wyyz: Vec4;
586
+ wyyw: Vec4;
587
+ wyzx: Vec4;
588
+ wyzy: Vec4;
589
+ wyzz: Vec4;
590
+ wyzw: Vec4;
591
+ wywx: Vec4;
592
+ wywy: Vec4;
593
+ wywz: Vec4;
594
+ wyww: Vec4;
595
+ wzxx: Vec4;
596
+ wzxy: Vec4;
597
+ wzxz: Vec4;
598
+ wzxw: Vec4;
599
+ wzyx: Vec4;
600
+ wzyy: Vec4;
601
+ wzyz: Vec4;
602
+ wzyw: Vec4;
603
+ wzzx: Vec4;
604
+ wzzy: Vec4;
605
+ wzzz: Vec4;
606
+ wzzw: Vec4;
607
+ wzwx: Vec4;
608
+ wzwy: Vec4;
609
+ wzwz: Vec4;
610
+ wzww: Vec4;
611
+ wwxx: Vec4;
612
+ wwxy: Vec4;
613
+ wwxz: Vec4;
614
+ wwxw: Vec4;
615
+ wwyx: Vec4;
616
+ wwyy: Vec4;
617
+ wwyz: Vec4;
618
+ wwyw: Vec4;
619
+ wwzx: Vec4;
620
+ wwzy: Vec4;
621
+ wwzz: Vec4;
622
+ wwzw: Vec4;
623
+ wwwx: Vec4;
624
+ wwwy: Vec4;
625
+ wwwz: Vec4;
626
+ wwww: Vec4;
627
+ r: Float;
628
+ g: Float;
629
+ b: Float;
630
+ a: Float;
631
+ rr: Vec2;
632
+ rg: Vec2;
633
+ rb: Vec2;
634
+ ra: Vec2;
635
+ gr: Vec2;
636
+ gg: Vec2;
637
+ gb: Vec2;
638
+ ga: Vec2;
639
+ br: Vec2;
640
+ bg: Vec2;
641
+ bb: Vec2;
642
+ ba: Vec2;
643
+ ar: Vec2;
644
+ ag: Vec2;
645
+ ab: Vec2;
646
+ aa: Vec2;
647
+ rrr: Vec3;
648
+ rrg: Vec3;
649
+ rrb: Vec3;
650
+ rra: Vec3;
651
+ rgr: Vec3;
652
+ rgg: Vec3;
653
+ rgb: Vec3;
654
+ rga: Vec3;
655
+ rbr: Vec3;
656
+ rbg: Vec3;
657
+ rbb: Vec3;
658
+ rba: Vec3;
659
+ rar: Vec3;
660
+ rag: Vec3;
661
+ rab: Vec3;
662
+ raa: Vec3;
663
+ grr: Vec3;
664
+ grg: Vec3;
665
+ grb: Vec3;
666
+ gra: Vec3;
667
+ ggr: Vec3;
668
+ ggg: Vec3;
669
+ ggb: Vec3;
670
+ gga: Vec3;
671
+ gbr: Vec3;
672
+ gbg: Vec3;
673
+ gbb: Vec3;
674
+ gba: Vec3;
675
+ gar: Vec3;
676
+ gag: Vec3;
677
+ gab: Vec3;
678
+ gaa: Vec3;
679
+ brr: Vec3;
680
+ brg: Vec3;
681
+ brb: Vec3;
682
+ bra: Vec3;
683
+ bgr: Vec3;
684
+ bgg: Vec3;
685
+ bgb: Vec3;
686
+ bga: Vec3;
687
+ bbr: Vec3;
688
+ bbg: Vec3;
689
+ bbb: Vec3;
690
+ bba: Vec3;
691
+ bar: Vec3;
692
+ bag: Vec3;
693
+ bab: Vec3;
694
+ baa: Vec3;
695
+ arr: Vec3;
696
+ arg: Vec3;
697
+ arb: Vec3;
698
+ ara: Vec3;
699
+ agr: Vec3;
700
+ agg: Vec3;
701
+ agb: Vec3;
702
+ aga: Vec3;
703
+ abr: Vec3;
704
+ abg: Vec3;
705
+ abb: Vec3;
706
+ aba: Vec3;
707
+ aar: Vec3;
708
+ aag: Vec3;
709
+ aab: Vec3;
710
+ aaa: Vec3;
711
+ rrrr: Vec4;
712
+ rrrg: Vec4;
713
+ rrrb: Vec4;
714
+ rrra: Vec4;
715
+ rrgr: Vec4;
716
+ rrgg: Vec4;
717
+ rrgb: Vec4;
718
+ rrga: Vec4;
719
+ rrbr: Vec4;
720
+ rrbg: Vec4;
721
+ rrbb: Vec4;
722
+ rrba: Vec4;
723
+ rrar: Vec4;
724
+ rrag: Vec4;
725
+ rrab: Vec4;
726
+ rraa: Vec4;
727
+ rgrr: Vec4;
728
+ rgrg: Vec4;
729
+ rgrb: Vec4;
730
+ rgra: Vec4;
731
+ rggr: Vec4;
732
+ rggg: Vec4;
733
+ rggb: Vec4;
734
+ rgga: Vec4;
735
+ rgbr: Vec4;
736
+ rgbg: Vec4;
737
+ rgbb: Vec4;
738
+ rgba: Vec4;
739
+ rgar: Vec4;
740
+ rgag: Vec4;
741
+ rgab: Vec4;
742
+ rgaa: Vec4;
743
+ rbrr: Vec4;
744
+ rbrg: Vec4;
745
+ rbrb: Vec4;
746
+ rbra: Vec4;
747
+ rbgr: Vec4;
748
+ rbgg: Vec4;
749
+ rbgb: Vec4;
750
+ rbga: Vec4;
751
+ rbbr: Vec4;
752
+ rbbg: Vec4;
753
+ rbbb: Vec4;
754
+ rbba: Vec4;
755
+ rbar: Vec4;
756
+ rbag: Vec4;
757
+ rbab: Vec4;
758
+ rbaa: Vec4;
759
+ rarr: Vec4;
760
+ rarg: Vec4;
761
+ rarb: Vec4;
762
+ rara: Vec4;
763
+ ragr: Vec4;
764
+ ragg: Vec4;
765
+ ragb: Vec4;
766
+ raga: Vec4;
767
+ rabr: Vec4;
768
+ rabg: Vec4;
769
+ rabb: Vec4;
770
+ raba: Vec4;
771
+ raar: Vec4;
772
+ raag: Vec4;
773
+ raab: Vec4;
774
+ raaa: Vec4;
775
+ grrr: Vec4;
776
+ grrg: Vec4;
777
+ grrb: Vec4;
778
+ grra: Vec4;
779
+ grgr: Vec4;
780
+ grgg: Vec4;
781
+ grgb: Vec4;
782
+ grga: Vec4;
783
+ grbr: Vec4;
784
+ grbg: Vec4;
785
+ grbb: Vec4;
786
+ grba: Vec4;
787
+ grar: Vec4;
788
+ grag: Vec4;
789
+ grab: Vec4;
790
+ graa: Vec4;
791
+ ggrr: Vec4;
792
+ ggrg: Vec4;
793
+ ggrb: Vec4;
794
+ ggra: Vec4;
795
+ gggr: Vec4;
796
+ gggg: Vec4;
797
+ gggb: Vec4;
798
+ ggga: Vec4;
799
+ ggbr: Vec4;
800
+ ggbg: Vec4;
801
+ ggbb: Vec4;
802
+ ggba: Vec4;
803
+ ggar: Vec4;
804
+ ggag: Vec4;
805
+ ggab: Vec4;
806
+ ggaa: Vec4;
807
+ gbrr: Vec4;
808
+ gbrg: Vec4;
809
+ gbrb: Vec4;
810
+ gbra: Vec4;
811
+ gbgr: Vec4;
812
+ gbgg: Vec4;
813
+ gbgb: Vec4;
814
+ gbga: Vec4;
815
+ gbbr: Vec4;
816
+ gbbg: Vec4;
817
+ gbbb: Vec4;
818
+ gbba: Vec4;
819
+ gbar: Vec4;
820
+ gbag: Vec4;
821
+ gbab: Vec4;
822
+ gbaa: Vec4;
823
+ garr: Vec4;
824
+ garg: Vec4;
825
+ garb: Vec4;
826
+ gara: Vec4;
827
+ gagr: Vec4;
828
+ gagg: Vec4;
829
+ gagb: Vec4;
830
+ gaga: Vec4;
831
+ gabr: Vec4;
832
+ gabg: Vec4;
833
+ gabb: Vec4;
834
+ gaba: Vec4;
835
+ gaar: Vec4;
836
+ gaag: Vec4;
837
+ gaab: Vec4;
838
+ gaaa: Vec4;
839
+ brrr: Vec4;
840
+ brrg: Vec4;
841
+ brrb: Vec4;
842
+ brra: Vec4;
843
+ brgr: Vec4;
844
+ brgg: Vec4;
845
+ brgb: Vec4;
846
+ brga: Vec4;
847
+ brbr: Vec4;
848
+ brbg: Vec4;
849
+ brbb: Vec4;
850
+ brba: Vec4;
851
+ brar: Vec4;
852
+ brag: Vec4;
853
+ brab: Vec4;
854
+ braa: Vec4;
855
+ bgrr: Vec4;
856
+ bgrg: Vec4;
857
+ bgrb: Vec4;
858
+ bgra: Vec4;
859
+ bggr: Vec4;
860
+ bggg: Vec4;
861
+ bggb: Vec4;
862
+ bgga: Vec4;
863
+ bgbr: Vec4;
864
+ bgbg: Vec4;
865
+ bgbb: Vec4;
866
+ bgba: Vec4;
867
+ bgar: Vec4;
868
+ bgag: Vec4;
869
+ bgab: Vec4;
870
+ bgaa: Vec4;
871
+ bbrr: Vec4;
872
+ bbrg: Vec4;
873
+ bbrb: Vec4;
874
+ bbra: Vec4;
875
+ bbgr: Vec4;
876
+ bbgg: Vec4;
877
+ bbgb: Vec4;
878
+ bbga: Vec4;
879
+ bbbr: Vec4;
880
+ bbbg: Vec4;
881
+ bbbb: Vec4;
882
+ bbba: Vec4;
883
+ bbar: Vec4;
884
+ bbag: Vec4;
885
+ bbab: Vec4;
886
+ bbaa: Vec4;
887
+ barr: Vec4;
888
+ barg: Vec4;
889
+ barb: Vec4;
890
+ bara: Vec4;
891
+ bagr: Vec4;
892
+ bagg: Vec4;
893
+ bagb: Vec4;
894
+ baga: Vec4;
895
+ babr: Vec4;
896
+ babg: Vec4;
897
+ babb: Vec4;
898
+ baba: Vec4;
899
+ baar: Vec4;
900
+ baag: Vec4;
901
+ baab: Vec4;
902
+ baaa: Vec4;
903
+ arrr: Vec4;
904
+ arrg: Vec4;
905
+ arrb: Vec4;
906
+ arra: Vec4;
907
+ argr: Vec4;
908
+ argg: Vec4;
909
+ argb: Vec4;
910
+ arga: Vec4;
911
+ arbr: Vec4;
912
+ arbg: Vec4;
913
+ arbb: Vec4;
914
+ arba: Vec4;
915
+ arar: Vec4;
916
+ arag: Vec4;
917
+ arab: Vec4;
918
+ araa: Vec4;
919
+ agrr: Vec4;
920
+ agrg: Vec4;
921
+ agrb: Vec4;
922
+ agra: Vec4;
923
+ aggr: Vec4;
924
+ aggg: Vec4;
925
+ aggb: Vec4;
926
+ agga: Vec4;
927
+ agbr: Vec4;
928
+ agbg: Vec4;
929
+ agbb: Vec4;
930
+ agba: Vec4;
931
+ agar: Vec4;
932
+ agag: Vec4;
933
+ agab: Vec4;
934
+ agaa: Vec4;
935
+ abrr: Vec4;
936
+ abrg: Vec4;
937
+ abrb: Vec4;
938
+ abra: Vec4;
939
+ abgr: Vec4;
940
+ abgg: Vec4;
941
+ abgb: Vec4;
942
+ abga: Vec4;
943
+ abbr: Vec4;
944
+ abbg: Vec4;
945
+ abbb: Vec4;
946
+ abba: Vec4;
947
+ abar: Vec4;
948
+ abag: Vec4;
949
+ abab: Vec4;
950
+ abaa: Vec4;
951
+ aarr: Vec4;
952
+ aarg: Vec4;
953
+ aarb: Vec4;
954
+ aara: Vec4;
955
+ aagr: Vec4;
956
+ aagg: Vec4;
957
+ aagb: Vec4;
958
+ aaga: Vec4;
959
+ aabr: Vec4;
960
+ aabg: Vec4;
961
+ aabb: Vec4;
962
+ aaba: Vec4;
963
+ aaar: Vec4;
964
+ aaag: Vec4;
965
+ aaab: Vec4;
966
+ aaaa: Vec4;
967
+ p: Float;
968
+ q: Float;
969
+ pp: Vec2;
970
+ pq: Vec2;
971
+ qp: Vec2;
972
+ qq: Vec2;
973
+ ppp: Vec3;
974
+ ppq: Vec3;
975
+ pqp: Vec3;
976
+ pqq: Vec3;
977
+ qpp: Vec3;
978
+ qpq: Vec3;
979
+ qqp: Vec3;
980
+ qqq: Vec3;
981
+ pppp: Vec4;
982
+ pppq: Vec4;
983
+ ppqp: Vec4;
984
+ ppqq: Vec4;
985
+ pqpp: Vec4;
986
+ pqpq: Vec4;
987
+ pqqp: Vec4;
988
+ pqqq: Vec4;
989
+ qppp: Vec4;
990
+ qppq: Vec4;
991
+ qpqp: Vec4;
992
+ qpqq: Vec4;
993
+ qqpp: Vec4;
994
+ qqpq: Vec4;
995
+ qqqp: Vec4;
996
+ qqqq: Vec4;
997
+ s: Float;
998
+ t: Float;
999
+ ss: Vec2;
1000
+ st: Vec2;
1001
+ ts: Vec2;
1002
+ tt: Vec2;
1003
+ sss: Vec3;
1004
+ sst: Vec3;
1005
+ sts: Vec3;
1006
+ stt: Vec3;
1007
+ tss: Vec3;
1008
+ tst: Vec3;
1009
+ tts: Vec3;
1010
+ ttt: Vec3;
1011
+ ssss: Vec4;
1012
+ ssst: Vec4;
1013
+ ssts: Vec4;
1014
+ sstt: Vec4;
1015
+ stss: Vec4;
1016
+ stst: Vec4;
1017
+ stts: Vec4;
1018
+ sttt: Vec4;
1019
+ tsss: Vec4;
1020
+ tsst: Vec4;
1021
+ tsts: Vec4;
1022
+ tstt: Vec4;
1023
+ ttss: Vec4;
1024
+ ttst: Vec4;
1025
+ ttts: Vec4;
1026
+ tttt: Vec4;
1027
+ };
1028
+ declare const If: (x: NodeProxy, fun: () => void) => {
218
1029
  ElseIf: (_x: X, _fun: () => void) => /*elided*/ any;
219
1030
  Else: (_fun: () => void) => void;
220
1031
  };
221
- declare const Loop: (x: X, fun: (params: {
222
- i: NodeProxy;
223
- }) => void) => NodeProxy;
224
- declare const Switch: (x: X) => {
1032
+ declare const Loop: (x: NodeProxy, fun: (params: {
1033
+ i: Int;
1034
+ }) => void) => BaseNodeProxy<string> & {
1035
+ [x: string]: any;
1036
+ } & {
1037
+ x: Float;
1038
+ y: Float;
1039
+ z: Float;
1040
+ w: Float;
1041
+ xx: Vec2;
1042
+ xy: Vec2;
1043
+ xz: Vec2;
1044
+ xw: Vec2;
1045
+ yx: Vec2;
1046
+ yy: Vec2;
1047
+ yz: Vec2;
1048
+ yw: Vec2;
1049
+ zx: Vec2;
1050
+ zy: Vec2;
1051
+ zz: Vec2;
1052
+ zw: Vec2;
1053
+ wx: Vec2;
1054
+ wy: Vec2;
1055
+ wz: Vec2;
1056
+ ww: Vec2;
1057
+ xxx: Vec3;
1058
+ xxy: Vec3;
1059
+ xxz: Vec3;
1060
+ xxw: Vec3;
1061
+ xyx: Vec3;
1062
+ xyy: Vec3;
1063
+ xyz: Vec3;
1064
+ xyw: Vec3;
1065
+ xzx: Vec3;
1066
+ xzy: Vec3;
1067
+ xzz: Vec3;
1068
+ xzw: Vec3;
1069
+ xwx: Vec3;
1070
+ xwy: Vec3;
1071
+ xwz: Vec3;
1072
+ xww: Vec3;
1073
+ yxx: Vec3;
1074
+ yxy: Vec3;
1075
+ yxz: Vec3;
1076
+ yxw: Vec3;
1077
+ yyx: Vec3;
1078
+ yyy: Vec3;
1079
+ yyz: Vec3;
1080
+ yyw: Vec3;
1081
+ yzx: Vec3;
1082
+ yzy: Vec3;
1083
+ yzz: Vec3;
1084
+ yzw: Vec3;
1085
+ ywx: Vec3;
1086
+ ywy: Vec3;
1087
+ ywz: Vec3;
1088
+ yww: Vec3;
1089
+ zxx: Vec3;
1090
+ zxy: Vec3;
1091
+ zxz: Vec3;
1092
+ zxw: Vec3;
1093
+ zyx: Vec3;
1094
+ zyy: Vec3;
1095
+ zyz: Vec3;
1096
+ zyw: Vec3;
1097
+ zzx: Vec3;
1098
+ zzy: Vec3;
1099
+ zzz: Vec3;
1100
+ zzw: Vec3;
1101
+ zwx: Vec3;
1102
+ zwy: Vec3;
1103
+ zwz: Vec3;
1104
+ zww: Vec3;
1105
+ wxx: Vec3;
1106
+ wxy: Vec3;
1107
+ wxz: Vec3;
1108
+ wxw: Vec3;
1109
+ wyx: Vec3;
1110
+ wyy: Vec3;
1111
+ wyz: Vec3;
1112
+ wyw: Vec3;
1113
+ wzx: Vec3;
1114
+ wzy: Vec3;
1115
+ wzz: Vec3;
1116
+ wzw: Vec3;
1117
+ wwx: Vec3;
1118
+ wwy: Vec3;
1119
+ wwz: Vec3;
1120
+ www: Vec3;
1121
+ xxxx: Vec4;
1122
+ xxxy: Vec4;
1123
+ xxxz: Vec4;
1124
+ xxxw: Vec4;
1125
+ xxyx: Vec4;
1126
+ xxyy: Vec4;
1127
+ xxyz: Vec4;
1128
+ xxyw: Vec4;
1129
+ xxzx: Vec4;
1130
+ xxzy: Vec4;
1131
+ xxzz: Vec4;
1132
+ xxzw: Vec4;
1133
+ xxwx: Vec4;
1134
+ xxwy: Vec4;
1135
+ xxwz: Vec4;
1136
+ xxww: Vec4;
1137
+ xyxx: Vec4;
1138
+ xyxy: Vec4;
1139
+ xyxz: Vec4;
1140
+ xyxw: Vec4;
1141
+ xyyx: Vec4;
1142
+ xyyy: Vec4;
1143
+ xyyz: Vec4;
1144
+ xyyw: Vec4;
1145
+ xyzx: Vec4;
1146
+ xyzy: Vec4;
1147
+ xyzz: Vec4;
1148
+ xyzw: Vec4;
1149
+ xywx: Vec4;
1150
+ xywy: Vec4;
1151
+ xywz: Vec4;
1152
+ xyww: Vec4;
1153
+ xzxx: Vec4;
1154
+ xzxy: Vec4;
1155
+ xzxz: Vec4;
1156
+ xzxw: Vec4;
1157
+ xzyx: Vec4;
1158
+ xzyy: Vec4;
1159
+ xzyz: Vec4;
1160
+ xzyw: Vec4;
1161
+ xzzx: Vec4;
1162
+ xzzy: Vec4;
1163
+ xzzz: Vec4;
1164
+ xzzw: Vec4;
1165
+ xzwx: Vec4;
1166
+ xzwy: Vec4;
1167
+ xzwz: Vec4;
1168
+ xzww: Vec4;
1169
+ xwxx: Vec4;
1170
+ xwxy: Vec4;
1171
+ xwxz: Vec4;
1172
+ xwxw: Vec4;
1173
+ xwyx: Vec4;
1174
+ xwyy: Vec4;
1175
+ xwyz: Vec4;
1176
+ xwyw: Vec4;
1177
+ xwzx: Vec4;
1178
+ xwzy: Vec4;
1179
+ xwzz: Vec4;
1180
+ xwzw: Vec4;
1181
+ xwwx: Vec4;
1182
+ xwwy: Vec4;
1183
+ xwwz: Vec4;
1184
+ xwww: Vec4;
1185
+ yxxx: Vec4;
1186
+ yxxy: Vec4;
1187
+ yxxz: Vec4;
1188
+ yxxw: Vec4;
1189
+ yxyx: Vec4;
1190
+ yxyy: Vec4;
1191
+ yxyz: Vec4;
1192
+ yxyw: Vec4;
1193
+ yxzx: Vec4;
1194
+ yxzy: Vec4;
1195
+ yxzz: Vec4;
1196
+ yxzw: Vec4;
1197
+ yxwx: Vec4;
1198
+ yxwy: Vec4;
1199
+ yxwz: Vec4;
1200
+ yxww: Vec4;
1201
+ yyxx: Vec4;
1202
+ yyxy: Vec4;
1203
+ yyxz: Vec4;
1204
+ yyxw: Vec4;
1205
+ yyyx: Vec4;
1206
+ yyyy: Vec4;
1207
+ yyyz: Vec4;
1208
+ yyyw: Vec4;
1209
+ yyzx: Vec4;
1210
+ yyzy: Vec4;
1211
+ yyzz: Vec4;
1212
+ yyzw: Vec4;
1213
+ yywx: Vec4;
1214
+ yywy: Vec4;
1215
+ yywz: Vec4;
1216
+ yyww: Vec4;
1217
+ yzxx: Vec4;
1218
+ yzxy: Vec4;
1219
+ yzxz: Vec4;
1220
+ yzxw: Vec4;
1221
+ yzyx: Vec4;
1222
+ yzyy: Vec4;
1223
+ yzyz: Vec4;
1224
+ yzyw: Vec4;
1225
+ yzzx: Vec4;
1226
+ yzzy: Vec4;
1227
+ yzzz: Vec4;
1228
+ yzzw: Vec4;
1229
+ yzwx: Vec4;
1230
+ yzwy: Vec4;
1231
+ yzwz: Vec4;
1232
+ yzww: Vec4;
1233
+ ywxx: Vec4;
1234
+ ywxy: Vec4;
1235
+ ywxz: Vec4;
1236
+ ywxw: Vec4;
1237
+ ywyx: Vec4;
1238
+ ywyy: Vec4;
1239
+ ywyz: Vec4;
1240
+ ywyw: Vec4;
1241
+ ywzx: Vec4;
1242
+ ywzy: Vec4;
1243
+ ywzz: Vec4;
1244
+ ywzw: Vec4;
1245
+ ywwx: Vec4;
1246
+ ywwy: Vec4;
1247
+ ywwz: Vec4;
1248
+ ywww: Vec4;
1249
+ zxxx: Vec4;
1250
+ zxxy: Vec4;
1251
+ zxxz: Vec4;
1252
+ zxxw: Vec4;
1253
+ zxyx: Vec4;
1254
+ zxyy: Vec4;
1255
+ zxyz: Vec4;
1256
+ zxyw: Vec4;
1257
+ zxzx: Vec4;
1258
+ zxzy: Vec4;
1259
+ zxzz: Vec4;
1260
+ zxzw: Vec4;
1261
+ zxwx: Vec4;
1262
+ zxwy: Vec4;
1263
+ zxwz: Vec4;
1264
+ zxww: Vec4;
1265
+ zyxx: Vec4;
1266
+ zyxy: Vec4;
1267
+ zyxz: Vec4;
1268
+ zyxw: Vec4;
1269
+ zyyx: Vec4;
1270
+ zyyy: Vec4;
1271
+ zyyz: Vec4;
1272
+ zyyw: Vec4;
1273
+ zyzx: Vec4;
1274
+ zyzy: Vec4;
1275
+ zyzz: Vec4;
1276
+ zyzw: Vec4;
1277
+ zywx: Vec4;
1278
+ zywy: Vec4;
1279
+ zywz: Vec4;
1280
+ zyww: Vec4;
1281
+ zzxx: Vec4;
1282
+ zzxy: Vec4;
1283
+ zzxz: Vec4;
1284
+ zzxw: Vec4;
1285
+ zzyx: Vec4;
1286
+ zzyy: Vec4;
1287
+ zzyz: Vec4;
1288
+ zzyw: Vec4;
1289
+ zzzx: Vec4;
1290
+ zzzy: Vec4;
1291
+ zzzz: Vec4;
1292
+ zzzw: Vec4;
1293
+ zzwx: Vec4;
1294
+ zzwy: Vec4;
1295
+ zzwz: Vec4;
1296
+ zzww: Vec4;
1297
+ zwxx: Vec4;
1298
+ zwxy: Vec4;
1299
+ zwxz: Vec4;
1300
+ zwxw: Vec4;
1301
+ zwyx: Vec4;
1302
+ zwyy: Vec4;
1303
+ zwyz: Vec4;
1304
+ zwyw: Vec4;
1305
+ zwzx: Vec4;
1306
+ zwzy: Vec4;
1307
+ zwzz: Vec4;
1308
+ zwzw: Vec4;
1309
+ zwwx: Vec4;
1310
+ zwwy: Vec4;
1311
+ zwwz: Vec4;
1312
+ zwww: Vec4;
1313
+ wxxx: Vec4;
1314
+ wxxy: Vec4;
1315
+ wxxz: Vec4;
1316
+ wxxw: Vec4;
1317
+ wxyx: Vec4;
1318
+ wxyy: Vec4;
1319
+ wxyz: Vec4;
1320
+ wxyw: Vec4;
1321
+ wxzx: Vec4;
1322
+ wxzy: Vec4;
1323
+ wxzz: Vec4;
1324
+ wxzw: Vec4;
1325
+ wxwx: Vec4;
1326
+ wxwy: Vec4;
1327
+ wxwz: Vec4;
1328
+ wxww: Vec4;
1329
+ wyxx: Vec4;
1330
+ wyxy: Vec4;
1331
+ wyxz: Vec4;
1332
+ wyxw: Vec4;
1333
+ wyyx: Vec4;
1334
+ wyyy: Vec4;
1335
+ wyyz: Vec4;
1336
+ wyyw: Vec4;
1337
+ wyzx: Vec4;
1338
+ wyzy: Vec4;
1339
+ wyzz: Vec4;
1340
+ wyzw: Vec4;
1341
+ wywx: Vec4;
1342
+ wywy: Vec4;
1343
+ wywz: Vec4;
1344
+ wyww: Vec4;
1345
+ wzxx: Vec4;
1346
+ wzxy: Vec4;
1347
+ wzxz: Vec4;
1348
+ wzxw: Vec4;
1349
+ wzyx: Vec4;
1350
+ wzyy: Vec4;
1351
+ wzyz: Vec4;
1352
+ wzyw: Vec4;
1353
+ wzzx: Vec4;
1354
+ wzzy: Vec4;
1355
+ wzzz: Vec4;
1356
+ wzzw: Vec4;
1357
+ wzwx: Vec4;
1358
+ wzwy: Vec4;
1359
+ wzwz: Vec4;
1360
+ wzww: Vec4;
1361
+ wwxx: Vec4;
1362
+ wwxy: Vec4;
1363
+ wwxz: Vec4;
1364
+ wwxw: Vec4;
1365
+ wwyx: Vec4;
1366
+ wwyy: Vec4;
1367
+ wwyz: Vec4;
1368
+ wwyw: Vec4;
1369
+ wwzx: Vec4;
1370
+ wwzy: Vec4;
1371
+ wwzz: Vec4;
1372
+ wwzw: Vec4;
1373
+ wwwx: Vec4;
1374
+ wwwy: Vec4;
1375
+ wwwz: Vec4;
1376
+ wwww: Vec4;
1377
+ r: Float;
1378
+ g: Float;
1379
+ b: Float;
1380
+ a: Float;
1381
+ rr: Vec2;
1382
+ rg: Vec2;
1383
+ rb: Vec2;
1384
+ ra: Vec2;
1385
+ gr: Vec2;
1386
+ gg: Vec2;
1387
+ gb: Vec2;
1388
+ ga: Vec2;
1389
+ br: Vec2;
1390
+ bg: Vec2;
1391
+ bb: Vec2;
1392
+ ba: Vec2;
1393
+ ar: Vec2;
1394
+ ag: Vec2;
1395
+ ab: Vec2;
1396
+ aa: Vec2;
1397
+ rrr: Vec3;
1398
+ rrg: Vec3;
1399
+ rrb: Vec3;
1400
+ rra: Vec3;
1401
+ rgr: Vec3;
1402
+ rgg: Vec3;
1403
+ rgb: Vec3;
1404
+ rga: Vec3;
1405
+ rbr: Vec3;
1406
+ rbg: Vec3;
1407
+ rbb: Vec3;
1408
+ rba: Vec3;
1409
+ rar: Vec3;
1410
+ rag: Vec3;
1411
+ rab: Vec3;
1412
+ raa: Vec3;
1413
+ grr: Vec3;
1414
+ grg: Vec3;
1415
+ grb: Vec3;
1416
+ gra: Vec3;
1417
+ ggr: Vec3;
1418
+ ggg: Vec3;
1419
+ ggb: Vec3;
1420
+ gga: Vec3;
1421
+ gbr: Vec3;
1422
+ gbg: Vec3;
1423
+ gbb: Vec3;
1424
+ gba: Vec3;
1425
+ gar: Vec3;
1426
+ gag: Vec3;
1427
+ gab: Vec3;
1428
+ gaa: Vec3;
1429
+ brr: Vec3;
1430
+ brg: Vec3;
1431
+ brb: Vec3;
1432
+ bra: Vec3;
1433
+ bgr: Vec3;
1434
+ bgg: Vec3;
1435
+ bgb: Vec3;
1436
+ bga: Vec3;
1437
+ bbr: Vec3;
1438
+ bbg: Vec3;
1439
+ bbb: Vec3;
1440
+ bba: Vec3;
1441
+ bar: Vec3;
1442
+ bag: Vec3;
1443
+ bab: Vec3;
1444
+ baa: Vec3;
1445
+ arr: Vec3;
1446
+ arg: Vec3;
1447
+ arb: Vec3;
1448
+ ara: Vec3;
1449
+ agr: Vec3;
1450
+ agg: Vec3;
1451
+ agb: Vec3;
1452
+ aga: Vec3;
1453
+ abr: Vec3;
1454
+ abg: Vec3;
1455
+ abb: Vec3;
1456
+ aba: Vec3;
1457
+ aar: Vec3;
1458
+ aag: Vec3;
1459
+ aab: Vec3;
1460
+ aaa: Vec3;
1461
+ rrrr: Vec4;
1462
+ rrrg: Vec4;
1463
+ rrrb: Vec4;
1464
+ rrra: Vec4;
1465
+ rrgr: Vec4;
1466
+ rrgg: Vec4;
1467
+ rrgb: Vec4;
1468
+ rrga: Vec4;
1469
+ rrbr: Vec4;
1470
+ rrbg: Vec4;
1471
+ rrbb: Vec4;
1472
+ rrba: Vec4;
1473
+ rrar: Vec4;
1474
+ rrag: Vec4;
1475
+ rrab: Vec4;
1476
+ rraa: Vec4;
1477
+ rgrr: Vec4;
1478
+ rgrg: Vec4;
1479
+ rgrb: Vec4;
1480
+ rgra: Vec4;
1481
+ rggr: Vec4;
1482
+ rggg: Vec4;
1483
+ rggb: Vec4;
1484
+ rgga: Vec4;
1485
+ rgbr: Vec4;
1486
+ rgbg: Vec4;
1487
+ rgbb: Vec4;
1488
+ rgba: Vec4;
1489
+ rgar: Vec4;
1490
+ rgag: Vec4;
1491
+ rgab: Vec4;
1492
+ rgaa: Vec4;
1493
+ rbrr: Vec4;
1494
+ rbrg: Vec4;
1495
+ rbrb: Vec4;
1496
+ rbra: Vec4;
1497
+ rbgr: Vec4;
1498
+ rbgg: Vec4;
1499
+ rbgb: Vec4;
1500
+ rbga: Vec4;
1501
+ rbbr: Vec4;
1502
+ rbbg: Vec4;
1503
+ rbbb: Vec4;
1504
+ rbba: Vec4;
1505
+ rbar: Vec4;
1506
+ rbag: Vec4;
1507
+ rbab: Vec4;
1508
+ rbaa: Vec4;
1509
+ rarr: Vec4;
1510
+ rarg: Vec4;
1511
+ rarb: Vec4;
1512
+ rara: Vec4;
1513
+ ragr: Vec4;
1514
+ ragg: Vec4;
1515
+ ragb: Vec4;
1516
+ raga: Vec4;
1517
+ rabr: Vec4;
1518
+ rabg: Vec4;
1519
+ rabb: Vec4;
1520
+ raba: Vec4;
1521
+ raar: Vec4;
1522
+ raag: Vec4;
1523
+ raab: Vec4;
1524
+ raaa: Vec4;
1525
+ grrr: Vec4;
1526
+ grrg: Vec4;
1527
+ grrb: Vec4;
1528
+ grra: Vec4;
1529
+ grgr: Vec4;
1530
+ grgg: Vec4;
1531
+ grgb: Vec4;
1532
+ grga: Vec4;
1533
+ grbr: Vec4;
1534
+ grbg: Vec4;
1535
+ grbb: Vec4;
1536
+ grba: Vec4;
1537
+ grar: Vec4;
1538
+ grag: Vec4;
1539
+ grab: Vec4;
1540
+ graa: Vec4;
1541
+ ggrr: Vec4;
1542
+ ggrg: Vec4;
1543
+ ggrb: Vec4;
1544
+ ggra: Vec4;
1545
+ gggr: Vec4;
1546
+ gggg: Vec4;
1547
+ gggb: Vec4;
1548
+ ggga: Vec4;
1549
+ ggbr: Vec4;
1550
+ ggbg: Vec4;
1551
+ ggbb: Vec4;
1552
+ ggba: Vec4;
1553
+ ggar: Vec4;
1554
+ ggag: Vec4;
1555
+ ggab: Vec4;
1556
+ ggaa: Vec4;
1557
+ gbrr: Vec4;
1558
+ gbrg: Vec4;
1559
+ gbrb: Vec4;
1560
+ gbra: Vec4;
1561
+ gbgr: Vec4;
1562
+ gbgg: Vec4;
1563
+ gbgb: Vec4;
1564
+ gbga: Vec4;
1565
+ gbbr: Vec4;
1566
+ gbbg: Vec4;
1567
+ gbbb: Vec4;
1568
+ gbba: Vec4;
1569
+ gbar: Vec4;
1570
+ gbag: Vec4;
1571
+ gbab: Vec4;
1572
+ gbaa: Vec4;
1573
+ garr: Vec4;
1574
+ garg: Vec4;
1575
+ garb: Vec4;
1576
+ gara: Vec4;
1577
+ gagr: Vec4;
1578
+ gagg: Vec4;
1579
+ gagb: Vec4;
1580
+ gaga: Vec4;
1581
+ gabr: Vec4;
1582
+ gabg: Vec4;
1583
+ gabb: Vec4;
1584
+ gaba: Vec4;
1585
+ gaar: Vec4;
1586
+ gaag: Vec4;
1587
+ gaab: Vec4;
1588
+ gaaa: Vec4;
1589
+ brrr: Vec4;
1590
+ brrg: Vec4;
1591
+ brrb: Vec4;
1592
+ brra: Vec4;
1593
+ brgr: Vec4;
1594
+ brgg: Vec4;
1595
+ brgb: Vec4;
1596
+ brga: Vec4;
1597
+ brbr: Vec4;
1598
+ brbg: Vec4;
1599
+ brbb: Vec4;
1600
+ brba: Vec4;
1601
+ brar: Vec4;
1602
+ brag: Vec4;
1603
+ brab: Vec4;
1604
+ braa: Vec4;
1605
+ bgrr: Vec4;
1606
+ bgrg: Vec4;
1607
+ bgrb: Vec4;
1608
+ bgra: Vec4;
1609
+ bggr: Vec4;
1610
+ bggg: Vec4;
1611
+ bggb: Vec4;
1612
+ bgga: Vec4;
1613
+ bgbr: Vec4;
1614
+ bgbg: Vec4;
1615
+ bgbb: Vec4;
1616
+ bgba: Vec4;
1617
+ bgar: Vec4;
1618
+ bgag: Vec4;
1619
+ bgab: Vec4;
1620
+ bgaa: Vec4;
1621
+ bbrr: Vec4;
1622
+ bbrg: Vec4;
1623
+ bbrb: Vec4;
1624
+ bbra: Vec4;
1625
+ bbgr: Vec4;
1626
+ bbgg: Vec4;
1627
+ bbgb: Vec4;
1628
+ bbga: Vec4;
1629
+ bbbr: Vec4;
1630
+ bbbg: Vec4;
1631
+ bbbb: Vec4;
1632
+ bbba: Vec4;
1633
+ bbar: Vec4;
1634
+ bbag: Vec4;
1635
+ bbab: Vec4;
1636
+ bbaa: Vec4;
1637
+ barr: Vec4;
1638
+ barg: Vec4;
1639
+ barb: Vec4;
1640
+ bara: Vec4;
1641
+ bagr: Vec4;
1642
+ bagg: Vec4;
1643
+ bagb: Vec4;
1644
+ baga: Vec4;
1645
+ babr: Vec4;
1646
+ babg: Vec4;
1647
+ babb: Vec4;
1648
+ baba: Vec4;
1649
+ baar: Vec4;
1650
+ baag: Vec4;
1651
+ baab: Vec4;
1652
+ baaa: Vec4;
1653
+ arrr: Vec4;
1654
+ arrg: Vec4;
1655
+ arrb: Vec4;
1656
+ arra: Vec4;
1657
+ argr: Vec4;
1658
+ argg: Vec4;
1659
+ argb: Vec4;
1660
+ arga: Vec4;
1661
+ arbr: Vec4;
1662
+ arbg: Vec4;
1663
+ arbb: Vec4;
1664
+ arba: Vec4;
1665
+ arar: Vec4;
1666
+ arag: Vec4;
1667
+ arab: Vec4;
1668
+ araa: Vec4;
1669
+ agrr: Vec4;
1670
+ agrg: Vec4;
1671
+ agrb: Vec4;
1672
+ agra: Vec4;
1673
+ aggr: Vec4;
1674
+ aggg: Vec4;
1675
+ aggb: Vec4;
1676
+ agga: Vec4;
1677
+ agbr: Vec4;
1678
+ agbg: Vec4;
1679
+ agbb: Vec4;
1680
+ agba: Vec4;
1681
+ agar: Vec4;
1682
+ agag: Vec4;
1683
+ agab: Vec4;
1684
+ agaa: Vec4;
1685
+ abrr: Vec4;
1686
+ abrg: Vec4;
1687
+ abrb: Vec4;
1688
+ abra: Vec4;
1689
+ abgr: Vec4;
1690
+ abgg: Vec4;
1691
+ abgb: Vec4;
1692
+ abga: Vec4;
1693
+ abbr: Vec4;
1694
+ abbg: Vec4;
1695
+ abbb: Vec4;
1696
+ abba: Vec4;
1697
+ abar: Vec4;
1698
+ abag: Vec4;
1699
+ abab: Vec4;
1700
+ abaa: Vec4;
1701
+ aarr: Vec4;
1702
+ aarg: Vec4;
1703
+ aarb: Vec4;
1704
+ aara: Vec4;
1705
+ aagr: Vec4;
1706
+ aagg: Vec4;
1707
+ aagb: Vec4;
1708
+ aaga: Vec4;
1709
+ aabr: Vec4;
1710
+ aabg: Vec4;
1711
+ aabb: Vec4;
1712
+ aaba: Vec4;
1713
+ aaar: Vec4;
1714
+ aaag: Vec4;
1715
+ aaab: Vec4;
1716
+ aaaa: Vec4;
1717
+ p: Float;
1718
+ q: Float;
1719
+ pp: Vec2;
1720
+ pq: Vec2;
1721
+ qp: Vec2;
1722
+ qq: Vec2;
1723
+ ppp: Vec3;
1724
+ ppq: Vec3;
1725
+ pqp: Vec3;
1726
+ pqq: Vec3;
1727
+ qpp: Vec3;
1728
+ qpq: Vec3;
1729
+ qqp: Vec3;
1730
+ qqq: Vec3;
1731
+ pppp: Vec4;
1732
+ pppq: Vec4;
1733
+ ppqp: Vec4;
1734
+ ppqq: Vec4;
1735
+ pqpp: Vec4;
1736
+ pqpq: Vec4;
1737
+ pqqp: Vec4;
1738
+ pqqq: Vec4;
1739
+ qppp: Vec4;
1740
+ qppq: Vec4;
1741
+ qpqp: Vec4;
1742
+ qpqq: Vec4;
1743
+ qqpp: Vec4;
1744
+ qqpq: Vec4;
1745
+ qqqp: Vec4;
1746
+ qqqq: Vec4;
1747
+ s: Float;
1748
+ t: Float;
1749
+ ss: Vec2;
1750
+ st: Vec2;
1751
+ ts: Vec2;
1752
+ tt: Vec2;
1753
+ sss: Vec3;
1754
+ sst: Vec3;
1755
+ sts: Vec3;
1756
+ stt: Vec3;
1757
+ tss: Vec3;
1758
+ tst: Vec3;
1759
+ tts: Vec3;
1760
+ ttt: Vec3;
1761
+ ssss: Vec4;
1762
+ ssst: Vec4;
1763
+ ssts: Vec4;
1764
+ sstt: Vec4;
1765
+ stss: Vec4;
1766
+ stst: Vec4;
1767
+ stts: Vec4;
1768
+ sttt: Vec4;
1769
+ tsss: Vec4;
1770
+ tsst: Vec4;
1771
+ tsts: Vec4;
1772
+ tstt: Vec4;
1773
+ ttss: Vec4;
1774
+ ttst: Vec4;
1775
+ ttts: Vec4;
1776
+ tttt: Vec4;
1777
+ };
1778
+ declare const Switch: (x: NodeProxy) => {
225
1779
  Case: (...values: X[]) => (fun: () => void) => /*elided*/ any;
226
1780
  Default: (fun: () => void) => void;
227
1781
  };
228
- declare const Fn: (fun: (paramVars: NodeProxy[]) => NodeProxy) => {
229
- (...args: X[]): NodeProxy;
230
- setLayout(_layout: FnLayout): undefined;
1782
+ declare const Fn: <ReturnType extends Constants, Args extends Constants[]>(fun: (paramVars: NodeProxy[]) => NodeProxy<ReturnType> | void, defaultId?: string) => {
1783
+ (...args: X<Args[number]>[]): NodeProxy<ReturnType>;
1784
+ setLayout(_layout: FnLayout): /*elided*/ any;
231
1785
  };
232
1786
 
233
1787
  declare const isSwizzle: (key: unknown) => key is Swizzles;
234
1788
  declare const isOperator: (key: unknown) => key is Operators;
235
1789
  declare const isFunction: (key: unknown) => key is Functions;
236
1790
  declare const isConversion: (key: unknown) => key is Conversions;
237
- declare const isNodeProxy: (x: unknown) => x is NodeProxy;
1791
+ declare const isNodeProxy: <T extends Constants>(x: unknown) => x is NodeProxy<T>;
238
1792
  declare const isConstants: (type?: unknown) => type is Constants;
239
1793
  declare const hex2rgb: (hex: number) => number[];
240
1794
  declare const getId: () => string;
241
- declare const formatConversions: (x: X, c?: NodeContext) => string;
242
- declare const getOperator: (op: X) => "+" | "-" | "*" | "/" | "%" | "==" | "!=" | "<" | "<=" | ">" | ">=" | "&&" | "||" | "&" | "|" | "^" | "<<" | ">>";
1795
+ declare const formatConversions: <T extends Constants>(x: X<T>, c?: NodeContext) => string;
1796
+ declare const getOperator: (op: X<string>) => "+" | "-" | "*" | "/" | "%" | "==" | "!=" | "<" | "<=" | ">" | ">=" | "&&" | "||" | "&" | "|" | "^" | "<<" | ">>";
243
1797
  declare const getBluiltin: (id: string) => "gl_FragCoord" | "gl_VertexID" | "gl_InstanceID" | "gl_FrontFacing" | "gl_FragDepth" | "gl_SampleID" | "gl_SampleMask" | "gl_PointCoord" | "gl_FragCoord.xy";
244
1798
  declare const conversionToConstant: (conversionKey: string) => Constants;
245
1799
  declare const getEventFun: (c: NodeContext, id: string, isAttribute?: boolean, isTexture?: boolean) => (value: any) => GL | undefined;
246
- declare const safeEventCall: (x: X, fun: (value: unknown) => void) => void;
1800
+ declare const safeEventCall: <T extends Constants>(x: X<T>, fun: (value: unknown) => void) => void;
247
1801
  declare const initNodeContext: (c: NodeContext) => NodeContext;
248
1802
  declare const addDependency: (c: NodeContext, id: string | undefined, type: string) => void;
249
1803
  declare const sortHeadersByDependencies: (headers: Map<string, string>, dependencies: Map<string, Set<string>>) => [string, string][];
250
1804
 
251
1805
  declare const vertex: (x: X, c: NodeContext) => string;
252
1806
  declare const fragment: (x: X, c: NodeContext) => string;
253
- declare const position: NodeProxy;
254
- declare const vertexIndex: NodeProxy;
255
- declare const instanceIndex: NodeProxy;
256
- declare const frontFacing: NodeProxy;
257
- declare const fragDepth: NodeProxy;
258
- declare const sampleIndex: NodeProxy;
259
- declare const sampleMask: NodeProxy;
260
- declare const pointCoord: NodeProxy;
261
- declare const normalLocal: NodeProxy;
262
- declare const normalWorld: NodeProxy;
263
- declare const normalView: NodeProxy;
264
- declare const positionLocal: NodeProxy;
265
- declare const positionWorld: NodeProxy;
266
- declare const positionView: NodeProxy;
267
- declare const screenCoordinate: NodeProxy;
268
- declare const screenUV: NodeProxy;
269
- declare const float: (x?: X) => NodeProxy;
270
- declare const int: (x?: X) => NodeProxy;
271
- declare const uint: (x?: X) => NodeProxy;
272
- declare const bool: (x?: X) => NodeProxy;
273
- declare const vec2: (x?: X, y?: X) => NodeProxy;
274
- declare const vec3: (x?: X, y?: X, z?: X) => NodeProxy;
275
- declare const vec4: (x?: X, y?: X, z?: X, w?: X) => NodeProxy;
276
- declare const mat2: (...args: X[]) => NodeProxy;
277
- declare const mat3: (...args: X[]) => NodeProxy;
278
- declare const mat4: (...args: X[]) => NodeProxy;
279
- declare const ivec2: (x?: X, y?: X) => NodeProxy;
280
- declare const ivec3: (x?: X, y?: X, z?: X) => NodeProxy;
281
- declare const ivec4: (x?: X, y?: X, z?: X, w?: X) => NodeProxy;
282
- declare const uvec2: (x?: X, y?: X) => NodeProxy;
283
- declare const uvec3: (x?: X, y?: X, z?: X) => NodeProxy;
284
- declare const uvec4: (x?: X, y?: X, z?: X, w?: X) => NodeProxy;
285
- declare const bvec2: (x?: X, y?: X) => NodeProxy;
286
- declare const bvec3: (x?: X, y?: X, z?: X) => NodeProxy;
287
- declare const bvec4: (x?: X, y?: X, z?: X, w?: X) => NodeProxy;
288
- declare const texture2D: (x?: X) => NodeProxy;
289
- declare const sampler2D: () => NodeProxy;
290
- declare const color: (r?: X, g?: X, b?: X) => NodeProxy;
291
- declare const iResolution: NodeProxy;
292
- declare const iMouse: NodeProxy;
293
- declare const iTime: NodeProxy;
294
- declare const uv: () => NodeProxy;
295
- declare const texture: (x: X, y: X, z?: X) => NodeProxy;
296
- declare const cubeTexture: (x: X, y: X, z?: X) => NodeProxy;
297
- declare const textureSize: (x: X, y?: X) => NodeProxy;
298
- declare const abs: (x: X) => NodeProxy;
299
- declare const acos: (x: X) => NodeProxy;
300
- declare const all: (x: X) => NodeProxy;
301
- declare const any: (x: X) => NodeProxy;
302
- declare const asin: (x: X) => NodeProxy;
303
- declare const atan: (y: X, x?: X) => NodeProxy;
304
- declare const atan2: (y: X, x: X) => NodeProxy;
305
- declare const bitcast: (x: X, y: X) => NodeProxy;
306
- declare const cbrt: (x: X) => NodeProxy;
307
- declare const ceil: (x: X) => NodeProxy;
308
- declare const clamp: (x: X, min: X, max: X) => NodeProxy;
309
- declare const cos: (x: X) => NodeProxy;
310
- declare const cross: (x: X, y: X) => NodeProxy;
311
- declare const dFdx: (p: X) => NodeProxy;
312
- declare const dFdy: (p: X) => NodeProxy;
313
- declare const degrees: (radians: X) => NodeProxy;
314
- declare const difference: (x: X, y: X) => NodeProxy;
315
- declare const distance: (x: X, y: X) => NodeProxy;
316
- declare const dot: (x: X, y: X) => NodeProxy;
317
- declare const equals: (x: X, y: X) => NodeProxy;
318
- declare const exp: (x: X) => NodeProxy;
319
- declare const exp2: (x: X) => NodeProxy;
320
- declare const faceforward: (N: X, I: X, Nref: X) => NodeProxy;
321
- declare const floor: (x: X) => NodeProxy;
322
- declare const fract: (x: X) => NodeProxy;
323
- declare const fwidth: (x: X) => NodeProxy;
324
- declare const inverseSqrt: (x: X) => NodeProxy;
325
- declare const length: (x: X) => NodeProxy;
326
- declare const lengthSq: (x: X) => NodeProxy;
327
- declare const log: (x: X) => NodeProxy;
328
- declare const log2: (x: X) => NodeProxy;
329
- declare const max: (x: X, y: X) => NodeProxy;
330
- declare const min: (x: X, y: X) => NodeProxy;
331
- declare const mix: (x: X, y: X, a: X) => NodeProxy;
332
- declare const negate: (x: X) => NodeProxy;
333
- declare const normalize: (x: X) => NodeProxy;
334
- declare const oneMinus: (x: X) => NodeProxy;
335
- declare const pow: (x: X, y: X) => NodeProxy;
336
- declare const pow2: (x: X) => NodeProxy;
337
- declare const pow3: (x: X) => NodeProxy;
338
- declare const pow4: (x: X) => NodeProxy;
339
- declare const radians: (degrees: X) => NodeProxy;
340
- declare const reciprocal: (x: X) => NodeProxy;
341
- declare const reflect: (I: X, N: X) => NodeProxy;
342
- declare const refract: (I: X, N: X, eta: X) => NodeProxy;
343
- declare const round: (x: X) => NodeProxy;
344
- declare const saturate: (x: X) => NodeProxy;
345
- declare const sign: (x: X) => NodeProxy;
346
- declare const sin: (x: X) => NodeProxy;
347
- declare const smoothstep: (e0: X, e1: X, x: X) => NodeProxy;
348
- declare const sqrt: (x: X) => NodeProxy;
349
- declare const step: (edge: X, x: X) => NodeProxy;
350
- declare const tan: (x: X) => NodeProxy;
351
- declare const transformDirection: (dir: X, matrix: X) => NodeProxy;
352
- declare const trunc: (x: X) => NodeProxy;
1807
+ declare const position: Vec4;
1808
+ declare const vertexIndex: UInt;
1809
+ declare const instanceIndex: UInt;
1810
+ declare const frontFacing: Bool;
1811
+ declare const fragDepth: Float;
1812
+ declare const sampleIndex: UInt;
1813
+ declare const sampleMask: UInt;
1814
+ declare const pointCoord: Vec2;
1815
+ declare const positionLocal: Vec3;
1816
+ declare const positionWorld: Vec3;
1817
+ declare const positionView: Vec3;
1818
+ declare const normalLocal: Vec3;
1819
+ declare const normalWorld: Vec3;
1820
+ declare const normalView: Vec3;
1821
+ declare const screenCoordinate: Vec2;
1822
+ declare const screenUV: Vec2;
1823
+ declare const float: (x?: X) => Float;
1824
+ declare const int: (x?: X) => Int;
1825
+ declare const uint: (x?: X) => UInt;
1826
+ declare const bool: (x?: X) => Bool;
1827
+ declare const vec2: (x?: X, y?: X) => Vec2;
1828
+ declare const vec3: (x?: X, y?: X, z?: X) => Vec3;
1829
+ declare const vec4: (x?: X, y?: X, z?: X, w?: X) => Vec4;
1830
+ declare const mat2: (...args: X[]) => Mat2;
1831
+ declare const mat3: (...args: X[]) => Mat3;
1832
+ declare const mat4: (...args: X[]) => Mat4;
1833
+ declare const ivec2: (x?: X, y?: X) => IVec2;
1834
+ declare const ivec3: (x?: X, y?: X, z?: X) => IVec3;
1835
+ declare const ivec4: (x?: X, y?: X, z?: X, w?: X) => IVec4;
1836
+ declare const uvec2: (x?: X, y?: X) => UVec2;
1837
+ declare const uvec3: (x?: X, y?: X, z?: X) => UVec3;
1838
+ declare const uvec4: (x?: X, y?: X, z?: X, w?: X) => UVec4;
1839
+ declare const bvec2: (x?: X, y?: X) => BVec2;
1840
+ declare const bvec3: (x?: X, y?: X, z?: X) => BVec3;
1841
+ declare const bvec4: (x?: X, y?: X, z?: X, w?: X) => BVec4;
1842
+ declare const texture2D: (x?: X) => Texture;
1843
+ declare const sampler2D: () => Sampler2D;
1844
+ declare const color: (r?: X, g?: X, b?: X) => Vec3;
1845
+ declare const iResolution: Vec2;
1846
+ declare const iMouse: Vec2;
1847
+ declare const iTime: Float;
1848
+ declare const uv: Vec2;
1849
+ declare const texture: (x: X, y: X, z?: X) => Vec4;
1850
+ declare const cubeTexture: (x: X, y: X, z?: X) => Vec4;
1851
+ declare const textureSize: (x: X, y?: X) => Vec4;
1852
+ declare const length: (x: X) => Float;
1853
+ declare const lengthSq: (x: X) => Float;
1854
+ declare const distance: (x: X, y: X) => Float;
1855
+ declare const dot: (x: X, y: X) => Float;
1856
+ declare const all: <T extends Constants>(x: X<T>) => Bool;
1857
+ declare const any: <T extends Constants>(x: X<T>) => Bool;
1858
+ declare const cross: (x: X<"vec3">, y: X<"vec3">) => Vec3;
1859
+ declare const abs: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1860
+ declare const sign: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1861
+ declare const floor: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1862
+ declare const ceil: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1863
+ declare const round: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1864
+ declare const fract: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1865
+ declare const trunc: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1866
+ declare const sin: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1867
+ declare const cos: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1868
+ declare const tan: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1869
+ declare const asin: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1870
+ declare const acos: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1871
+ declare const atan: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1872
+ declare const sinh: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1873
+ declare const cosh: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1874
+ declare const tanh: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1875
+ declare const asinh: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1876
+ declare const acosh: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1877
+ declare const atanh: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1878
+ declare const exp: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1879
+ declare const exp2: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1880
+ declare const log: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1881
+ declare const log2: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1882
+ declare const sqrt: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1883
+ declare const inverseSqrt: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1884
+ declare const normalize: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1885
+ declare const oneMinus: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1886
+ declare const saturate: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1887
+ declare const negate: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1888
+ declare const reciprocal: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1889
+ declare const dFdx: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1890
+ declare const dFdy: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1891
+ declare const fwidth: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1892
+ declare const degrees: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1893
+ declare const radians: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1894
+ declare const reflect: <T extends Constants>(I: X<T>, N: X) => NodeProxy<T>;
1895
+ declare const refract: <T extends Constants>(I: X<T>, N: X, eta: X) => NodeProxy<T>;
1896
+ declare const min: <T extends Constants>(x: X<T>, y: X) => NodeProxy<T>;
1897
+ declare const max: <T extends Constants>(x: X<T>, y: X) => NodeProxy<T>;
1898
+ declare const mix: <T extends Constants>(x: X<T>, y: X, a: X) => NodeProxy<T>;
1899
+ declare const clamp: <T extends Constants>(x: X<T>, minVal: X, maxVal: X) => NodeProxy<T>;
1900
+ declare const step: <T extends Constants>(edge: X, x: X<T>) => NodeProxy<T>;
1901
+ declare const smoothstep: <T extends Constants>(e0: X, e1: X, x: X<T>) => NodeProxy<T>;
1902
+ declare const atan2: <T extends Constants>(y: X<T>, x: X) => NodeProxy<T>;
1903
+ declare const pow: <T extends Constants>(x: X<T>, y: X) => NodeProxy<T>;
1904
+ declare const pow2: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1905
+ declare const pow3: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1906
+ declare const pow4: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1907
+ declare const bitcast: <T extends Constants>(x: X<T>, y: X) => NodeProxy<T>;
1908
+ declare const cbrt: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1909
+ declare const difference: <T extends Constants>(x: X<T>, y: X) => NodeProxy<T>;
1910
+ declare const equals: (x: X, y: X) => Bool;
1911
+ declare const faceforward: <T extends Constants>(N: X<T>, I: X, Nref: X) => NodeProxy<T>;
1912
+ declare const transformDirection: <T extends Constants>(dir: X<T>, matrix: X) => NodeProxy<T>;
353
1913
 
354
1914
  type PrecisionMode = 'highp' | 'mediump' | 'lowp';
355
1915
  type GLClearMode = 'COLOR_BUFFER_BIT' | 'DEPTH_BUFFER_BIT' | 'STENCIL_BUFFER_BIT';
@@ -402,12 +1962,12 @@ type GL = EventState<{
402
1962
  mouse: [number, number];
403
1963
  count: number;
404
1964
  el: HTMLCanvasElement;
405
- vs: string | NodeProxy;
406
- fs: string | NodeProxy;
407
- vert: string | NodeProxy;
408
- frag: string | NodeProxy;
409
- vertex: string | NodeProxy;
410
- fragment: string | NodeProxy;
1965
+ vs: string | Vec4;
1966
+ fs: string | Vec4;
1967
+ vert: string | Vec4;
1968
+ frag: string | Vec4;
1969
+ vertex: string | Vec4;
1970
+ fragment: string | Vec4;
411
1971
  /**
412
1972
  * core state
413
1973
  */
@@ -569,12 +2129,12 @@ declare const createGL: (props?: Partial<GL>) => EventState<{
569
2129
  mouse: [number, number];
570
2130
  count: number;
571
2131
  el: HTMLCanvasElement;
572
- vs: string | NodeProxy;
573
- fs: string | NodeProxy;
574
- vert: string | NodeProxy;
575
- frag: string | NodeProxy;
576
- vertex: string | NodeProxy;
577
- fragment: string | NodeProxy;
2132
+ vs: string | Vec4;
2133
+ fs: string | Vec4;
2134
+ vert: string | Vec4;
2135
+ frag: string | Vec4;
2136
+ vertex: string | Vec4;
2137
+ fragment: string | Vec4;
578
2138
  webgpu: WebGPUState;
579
2139
  webgl: WebGLState;
580
2140
  queue: refr.Queue;
@@ -605,4 +2165,4 @@ declare const createGL: (props?: Partial<GL>) => EventState<{
605
2165
  }): GL;
606
2166
  }, any[] | unknown[]>;
607
2167
 
608
- export { AttribData, Attribute, Attributes, BaseNodeProxy, Constants, Conversions, Fn, FnLayout, Functions, GL, GLClearMode, GLDrawMode, GLDrawType, If, Loop, NodeContext, NodeProps, NodeProxy, NodeTypes, Operators, PrecisionMode, ReadNodeProxy, Return, Switch, Swizzles, TextureData, Uniform, UniformData, Uniforms, WebGLState, WebGPUState, X, abs, acos, addDependency, all, any, asin, assign, atan, atan2, attribute, bitcast, bool, builtin, bvec2, bvec3, bvec4, cbrt, ceil, clamp, code, color, constant, conversion, conversionToConstant, cos, createAttrib, createAttribBuffer, createBindGroup, createBindings, createDepthTexture, createDescriptor, createDevice, createGL, createIbo, createPipeline, createProgram, createTexture, createTextureSampler, createUniformBuffer, createVbo, createVertexBuffers, cross, cubeTexture, dFdx, dFdy, createGL as default, degrees, difference, dig, distance, dot, each, equals, exp, exp2, ext, faceforward, fig, float, floor, flush, formatConversions, fract, fragDepth, fragment, frontFacing, function_, fwidth, getBluiltin, getEventFun, getId, getOperator, getStride, hex2rgb, iMouse, iResolution, iTime, initNodeContext, instanceIndex, int, inverseSqrt, is, isConstants, isConversion, isFunction, isGL, isNodeProxy, isOperator, isServer, isSwizzle, isWebGPUSupported, ivec2, ivec3, ivec4, length, lengthSq, log, log2, mat2, mat3, mat4, max, member, min, mix, negate, node, normalLocal, normalView, normalWorld, normalize, oneMinus, operator, pointCoord, position, positionLocal, positionView, positionWorld, pow, pow2, pow3, pow4, radians, reciprocal, reflect, refract, replace, round, safeEventCall, sampleIndex, sampleMask, sampler2D, saturate, screenCoordinate, screenUV, select, sig, sign, sin, smoothstep, sortHeadersByDependencies, sqrt, step, struct, tan, texture, texture2D, textureSize, toVar, transformDirection, trunc, uint, uniform, uv, uvec2, uvec3, uvec4, variable, vec2, vec3, vec4, vertex, vertexIndex, vertexStage, webgl, webgpu };
2168
+ export { AttribData, Attribute, Attributes, BVec2, BVec3, BVec4, BaseNodeProxy, Bool, Color, Constants, ConstantsToType, Conversions, Float, Fn, FnLayout, Functions, GL, GLClearMode, GLDrawMode, GLDrawType, IVec2, IVec3, IVec4, If, Int, Loop, Mat2, Mat3, Mat4, NodeContext, NodeProps, NodeProxy, NodeTypes, Operators, PrecisionMode, Return, Sampler2D, Struct, Switch, Swizzles, Texture, TextureData, UInt, UVec2, UVec3, UVec4, Uniform, UniformData, Uniforms, Vec2, Vec3, Vec4, WebGLState, WebGPUState, X, abs, acos, acosh, addDependency, all, any, asin, asinh, assign, atan, atan2, atanh, attribute, bitcast, bool, builtin, bvec2, bvec3, bvec4, cbrt, ceil, clamp, code, color, constant, conversion, conversionToConstant, cos, cosh, createAttrib, createAttribBuffer, createBindGroup, createBindings, createDepthTexture, createDescriptor, createDevice, createGL, createIbo, createPipeline, createProgram, createTexture, createTextureSampler, createUniformBuffer, createVbo, createVertexBuffers, cross, cubeTexture, dFdx, dFdy, createGL as default, degrees, difference, dig, distance, dot, each, equals, exp, exp2, ext, faceforward, fig, float, floor, flush, formatConversions, fract, fragDepth, fragment, frontFacing, function_, fwidth, getBluiltin, getEventFun, getId, getOperator, getStride, hex2rgb, iMouse, iResolution, iTime, initNodeContext, instanceIndex, int, inverseSqrt, is, isConstants, isConversion, isFunction, isGL, isNodeProxy, isOperator, isServer, isSwizzle, isWebGPUSupported, ivec2, ivec3, ivec4, length, lengthSq, log, log2, mat2, mat3, mat4, max, member, min, mix, negate, node, normalLocal, normalView, normalWorld, normalize, oneMinus, operator, pointCoord, position, positionLocal, positionView, positionWorld, pow, pow2, pow3, pow4, radians, reciprocal, reflect, refract, replace, round, safeEventCall, sampleIndex, sampleMask, sampler2D, saturate, screenCoordinate, screenUV, select, sig, sign, sin, sinh, smoothstep, sortHeadersByDependencies, sqrt, step, struct, tan, tanh, texture, texture2D, textureSize, toVar, transformDirection, trunc, uint, uniform, uv, uvec2, uvec3, uvec4, variable, vec2, vec3, vec4, vertex, vertexIndex, vertexStage, webgl, webgpu };