@types/three 0.183.1 → 0.184.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.
- three/README.md +2 -2
- three/examples/jsm/Addons.d.ts +11 -0
- three/examples/jsm/controls/FirstPersonControls.d.ts +5 -10
- three/examples/jsm/controls/TransformControls.d.ts +24 -0
- three/examples/jsm/geometries/TextGeometry.d.ts +43 -71
- three/examples/jsm/helpers/LightProbeGridHelper.d.ts +12 -0
- three/examples/jsm/inspector/Extension.d.ts +9 -0
- three/examples/jsm/inspector/Inspector.d.ts +21 -2
- three/examples/jsm/inspector/RendererInspector.d.ts +7 -2
- three/examples/jsm/inspector/extensions/tsl-graph/TSLGraphEditor.d.ts +20 -0
- three/examples/jsm/inspector/extensions/tsl-graph/TSLGraphLoader.d.ts +11 -0
- three/examples/jsm/inspector/tabs/Parameters.d.ts +22 -1
- three/examples/jsm/inspector/ui/Tab.d.ts +5 -1
- three/examples/jsm/inspector/ui/Values.d.ts +23 -3
- three/examples/jsm/interaction/InteractionManager.d.ts +18 -0
- three/examples/jsm/lighting/DynamicLighting.d.ts +16 -0
- three/examples/jsm/lighting/LightProbeGrid.d.ts +34 -0
- three/examples/jsm/loaders/ColladaLoader.d.ts +1 -0
- three/examples/jsm/loaders/EXRLoader.d.ts +2 -0
- three/examples/jsm/loaders/LDrawLoader.d.ts +1 -1
- three/examples/jsm/loaders/VTKLoader.d.ts +6 -0
- three/examples/jsm/objects/Reflector.d.ts +1 -2
- three/examples/jsm/objects/SkyMesh.d.ts +1 -0
- three/examples/jsm/tsl/WebGLNodesHandler.d.ts +14 -0
- three/examples/jsm/tsl/display/FSR1Node.d.ts +17 -0
- three/examples/jsm/tsl/display/SharpenNode.d.ts +22 -0
- three/examples/jsm/tsl/display/TAAUNode.d.ts +31 -0
- three/examples/jsm/tsl/lighting/DynamicLightsNode.d.ts +21 -0
- three/examples/jsm/tsl/lighting/TiledLightsNode.d.ts +1 -1
- three/examples/jsm/tsl/lighting/data/AmbientLightDataNode.d.ts +9 -0
- three/examples/jsm/tsl/lighting/data/DirectionalLightDataNode.d.ts +9 -0
- three/examples/jsm/tsl/lighting/data/HemisphereLightDataNode.d.ts +9 -0
- three/examples/jsm/tsl/lighting/data/PointLightDataNode.d.ts +9 -0
- three/examples/jsm/tsl/lighting/data/SpotLightDataNode.d.ts +9 -0
- three/examples/jsm/utils/ColorUtils.d.ts +5 -0
- three/examples/jsm/utils/SceneOptimizer.d.ts +18 -0
- three/examples/jsm/webxr/XRHandMeshModel.d.ts +1 -0
- three/package.json +4 -5
- three/src/Three.Core.d.ts +13 -1
- three/src/Three.TSL.d.ts +7 -1
- three/src/Three.WebGPU.Nodes.d.ts +8 -4
- three/src/Three.WebGPU.d.ts +11 -4
- three/src/Three.d.ts +0 -11
- three/src/animation/AnimationMixer.d.ts +3 -1
- three/src/audio/AudioContext.d.ts +2 -2
- three/src/core/BufferAttribute.d.ts +13 -1
- three/src/core/RenderTarget.d.ts +8 -1
- three/src/core/UniformsGroup.d.ts +7 -1
- three/src/extras/Controls.d.ts +5 -1
- three/src/geometries/ExtrudeGeometry.d.ts +39 -53
- three/src/loaders/FileLoader.d.ts +2 -2
- three/src/materials/Material.d.ts +5 -1
- three/src/materials/MeshToonMaterial.d.ts +1 -1
- three/src/materials/nodes/Line2NodeMaterial.d.ts +7 -0
- three/src/materials/nodes/VolumeNodeMaterial.d.ts +1 -1
- three/src/materials/nodes/manager/NodeMaterialObserver.d.ts +11 -1
- three/src/math/ColorManagement.d.ts +1 -1
- three/src/math/Matrix2.d.ts +1 -1
- three/src/math/Matrix3.d.ts +1 -1
- three/src/math/Matrix4.d.ts +1 -1
- three/src/math/Plane.d.ts +1 -1
- three/src/math/Vector2.d.ts +2 -1
- three/src/math/Vector3.d.ts +2 -1
- three/src/math/Vector4.d.ts +2 -1
- three/src/nodes/Nodes.d.ts +0 -1
- three/src/nodes/TSL.d.ts +1 -1
- three/src/nodes/accessors/BufferAttributeNode.d.ts +1 -1
- three/src/nodes/core/Node.d.ts +37 -9
- three/src/nodes/core/StackNode.d.ts +1 -1
- three/src/nodes/core/StructTypeNode.d.ts +0 -4
- three/src/nodes/core/UniformGroupNode.d.ts +4 -3
- three/src/nodes/core/UniformNode.d.ts +3 -0
- three/src/nodes/core/VarNode.d.ts +16 -10
- three/src/nodes/display/ViewportDepthTextureNode.d.ts +1 -3
- three/src/nodes/display/ViewportTextureNode.d.ts +5 -5
- three/src/nodes/functions/ShadowMaskModel.d.ts +2 -2
- three/src/nodes/gpgpu/BarrierNode.d.ts +2 -0
- three/src/nodes/gpgpu/ComputeBuiltinNode.d.ts +16 -7
- three/src/nodes/gpgpu/ComputeNode.d.ts +6 -2
- three/src/nodes/materialx/lib/mx_noise.d.ts +4 -5
- three/src/nodes/math/MathNode.d.ts +64 -6
- three/src/nodes/tsl/TSLBase.d.ts +1 -1
- three/src/nodes/tsl/TSLCore.d.ts +568 -160
- three/src/nodes/utils/ConvertNode.d.ts +9 -2
- three/src/nodes/utils/EventNode.d.ts +6 -0
- three/src/nodes/utils/JoinNode.d.ts +9 -5
- three/src/nodes/utils/LoopNode.d.ts +1 -2
- three/src/nodes/utils/{RemapNode.d.ts → Remap.d.ts} +6 -22
- three/src/objects/BatchedMesh.d.ts +2 -0
- three/src/objects/InstancedMesh.d.ts +6 -6
- three/src/objects/SkinnedMesh.d.ts +3 -0
- three/src/renderers/WebGLRenderer.d.ts +10 -1
- three/src/renderers/common/Animation.d.ts +2 -2
- three/src/renderers/common/Attributes.d.ts +9 -1
- three/src/renderers/common/Backend.d.ts +4 -0
- three/src/renderers/common/Background.d.ts +2 -2
- three/src/renderers/common/BindGroup.d.ts +0 -6
- three/src/renderers/common/Bindings.d.ts +2 -2
- three/src/renderers/common/CanvasTarget.d.ts +3 -1
- three/src/renderers/common/ComputePipeline.d.ts +1 -1
- three/src/renderers/common/Info.d.ts +132 -1
- three/src/renderers/common/InspectorBase.d.ts +7 -1
- three/src/renderers/common/Pipelines.d.ts +19 -3
- three/src/renderers/common/ReadbackBuffer.d.ts +63 -0
- three/src/renderers/common/RenderBundle.d.ts +4 -1
- three/src/renderers/common/RenderBundles.d.ts +3 -1
- three/src/renderers/common/RenderObject.d.ts +2 -2
- three/src/renderers/common/RenderObjects.d.ts +3 -3
- three/src/renderers/common/Renderer.d.ts +29 -16
- three/src/renderers/common/XRManager.d.ts +1 -7
- three/src/renderers/common/nodes/NodeManager.d.ts +51 -11
- three/src/renderers/shaders/ShaderChunk.d.ts +1 -0
- three/src/renderers/shaders/UniformsLib.d.ts +5 -1
- three/src/renderers/webgl/WebGLBufferRenderer.d.ts +0 -6
- three/src/renderers/webgl/WebGLIndexedBufferRenderer.d.ts +0 -6
- three/src/renderers/webgl/WebGLPrograms.d.ts +5 -0
- three/src/renderers/webgl-fallback/WebGLBackend.d.ts +2 -0
- three/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.d.ts +19 -0
- three/src/renderers/webgl-fallback/utils/WebGLCapabilities.d.ts +51 -0
- three/src/renderers/webgpu/WebGPUBackend.d.ts +9 -4
- three/src/renderers/webgpu/utils/WebGPUConstants.d.ts +6 -0
- three/src/renderers/webxr/WebXRController.d.ts +5 -1
- three/src/renderers/webxr/WebXRManager.d.ts +3 -1
- three/src/scenes/Scene.d.ts +2 -2
- three/src/textures/ExternalTexture.d.ts +3 -2
- three/src/textures/HTMLTexture.d.ts +27 -0
- three/src/textures/Texture.d.ts +16 -1
three/src/nodes/tsl/TSLCore.d.ts
CHANGED
|
@@ -6,9 +6,12 @@ import { Vector2 } from "../../math/Vector2.js";
|
|
|
6
6
|
import { Vector3 } from "../../math/Vector3.js";
|
|
7
7
|
import { Vector4 } from "../../math/Vector4.js";
|
|
8
8
|
import ConstNode from "../core/ConstNode.js";
|
|
9
|
-
import Node, { NumOrBoolType } from "../core/Node.js";
|
|
9
|
+
import Node, { MatType, NumOrBoolType } from "../core/Node.js";
|
|
10
10
|
import NodeBuilder from "../core/NodeBuilder.js";
|
|
11
11
|
import StackNode from "../core/StackNode.js";
|
|
12
|
+
import VarNode from "../core/VarNode.js";
|
|
13
|
+
import ConvertNode from "../utils/ConvertNode.js";
|
|
14
|
+
import JoinNode from "../utils/JoinNode.js";
|
|
12
15
|
|
|
13
16
|
export function addMethodChaining(name: string, nodeElement: unknown): void;
|
|
14
17
|
|
|
@@ -1371,9 +1374,6 @@ interface SetSwizzle3<TNumOrBool extends NumOrBoolType> {
|
|
|
1371
1374
|
setXY(value: Node<NumOrBoolToVec2<TNumOrBool>> | NumOrBool<TNumOrBool>): Node<NumOrBoolToVec3<TNumOrBool>>;
|
|
1372
1375
|
setRG(value: Node<NumOrBoolToVec2<TNumOrBool>> | NumOrBool<TNumOrBool>): Node<NumOrBoolToVec3<TNumOrBool>>;
|
|
1373
1376
|
setST(value: Node<NumOrBoolToVec2<TNumOrBool>> | NumOrBool<TNumOrBool>): Node<NumOrBoolToVec3<TNumOrBool>>;
|
|
1374
|
-
setXZ(value: Node<NumOrBoolToVec2<TNumOrBool>> | NumOrBool<TNumOrBool>): Node<NumOrBoolToVec3<TNumOrBool>>;
|
|
1375
|
-
setRB(value: Node<NumOrBoolToVec2<TNumOrBool>> | NumOrBool<TNumOrBool>): Node<NumOrBoolToVec3<TNumOrBool>>;
|
|
1376
|
-
setSP(value: Node<NumOrBoolToVec2<TNumOrBool>> | NumOrBool<TNumOrBool>): Node<NumOrBoolToVec3<TNumOrBool>>;
|
|
1377
1377
|
setYZ(value: Node<NumOrBoolToVec2<TNumOrBool>> | NumOrBool<TNumOrBool>): Node<NumOrBoolToVec3<TNumOrBool>>;
|
|
1378
1378
|
setGB(value: Node<NumOrBoolToVec2<TNumOrBool>> | NumOrBool<TNumOrBool>): Node<NumOrBoolToVec3<TNumOrBool>>;
|
|
1379
1379
|
setTP(value: Node<NumOrBoolToVec2<TNumOrBool>> | NumOrBool<TNumOrBool>): Node<NumOrBoolToVec3<TNumOrBool>>;
|
|
@@ -1398,30 +1398,15 @@ interface SetSwizzle4<TNumOrBool extends NumOrBoolType> {
|
|
|
1398
1398
|
setXY(value: Node<NumOrBoolToVec2<TNumOrBool>> | NumOrBool<TNumOrBool>): Node<NumOrBoolToVec4<TNumOrBool>>;
|
|
1399
1399
|
setRG(value: Node<NumOrBoolToVec2<TNumOrBool>> | NumOrBool<TNumOrBool>): Node<NumOrBoolToVec4<TNumOrBool>>;
|
|
1400
1400
|
setST(value: Node<NumOrBoolToVec2<TNumOrBool>> | NumOrBool<TNumOrBool>): Node<NumOrBoolToVec4<TNumOrBool>>;
|
|
1401
|
-
setXZ(value: Node<NumOrBoolToVec2<TNumOrBool>> | NumOrBool<TNumOrBool>): Node<NumOrBoolToVec4<TNumOrBool>>;
|
|
1402
|
-
setRB(value: Node<NumOrBoolToVec2<TNumOrBool>> | NumOrBool<TNumOrBool>): Node<NumOrBoolToVec4<TNumOrBool>>;
|
|
1403
|
-
setSP(value: Node<NumOrBoolToVec2<TNumOrBool>> | NumOrBool<TNumOrBool>): Node<NumOrBoolToVec4<TNumOrBool>>;
|
|
1404
1401
|
setYZ(value: Node<NumOrBoolToVec2<TNumOrBool>> | NumOrBool<TNumOrBool>): Node<NumOrBoolToVec4<TNumOrBool>>;
|
|
1405
1402
|
setGB(value: Node<NumOrBoolToVec2<TNumOrBool>> | NumOrBool<TNumOrBool>): Node<NumOrBoolToVec4<TNumOrBool>>;
|
|
1406
1403
|
setTP(value: Node<NumOrBoolToVec2<TNumOrBool>> | NumOrBool<TNumOrBool>): Node<NumOrBoolToVec4<TNumOrBool>>;
|
|
1407
|
-
setXW(value: Node<NumOrBoolToVec2<TNumOrBool>> | NumOrBool<TNumOrBool>): Node<NumOrBoolToVec4<TNumOrBool>>;
|
|
1408
|
-
setRA(value: Node<NumOrBoolToVec2<TNumOrBool>> | NumOrBool<TNumOrBool>): Node<NumOrBoolToVec4<TNumOrBool>>;
|
|
1409
|
-
setSQ(value: Node<NumOrBoolToVec2<TNumOrBool>> | NumOrBool<TNumOrBool>): Node<NumOrBoolToVec4<TNumOrBool>>;
|
|
1410
|
-
setYW(value: Node<NumOrBoolToVec2<TNumOrBool>> | NumOrBool<TNumOrBool>): Node<NumOrBoolToVec4<TNumOrBool>>;
|
|
1411
|
-
setGA(value: Node<NumOrBoolToVec2<TNumOrBool>> | NumOrBool<TNumOrBool>): Node<NumOrBoolToVec4<TNumOrBool>>;
|
|
1412
|
-
setTQ(value: Node<NumOrBoolToVec2<TNumOrBool>> | NumOrBool<TNumOrBool>): Node<NumOrBoolToVec4<TNumOrBool>>;
|
|
1413
1404
|
setZW(value: Node<NumOrBoolToVec2<TNumOrBool>> | NumOrBool<TNumOrBool>): Node<NumOrBoolToVec4<TNumOrBool>>;
|
|
1414
1405
|
setBA(value: Node<NumOrBoolToVec2<TNumOrBool>> | NumOrBool<TNumOrBool>): Node<NumOrBoolToVec4<TNumOrBool>>;
|
|
1415
1406
|
setPQ(value: Node<NumOrBoolToVec2<TNumOrBool>> | NumOrBool<TNumOrBool>): Node<NumOrBoolToVec4<TNumOrBool>>;
|
|
1416
1407
|
setXYZ(value: Node<NumOrBoolToVec3<TNumOrBool>> | NumOrBool<TNumOrBool>): Node<NumOrBoolToVec4<TNumOrBool>>;
|
|
1417
1408
|
setRGB(value: Node<NumOrBoolToVec3<TNumOrBool>> | NumOrBool<TNumOrBool>): Node<NumOrBoolToVec4<TNumOrBool>>;
|
|
1418
1409
|
setSTP(value: Node<NumOrBoolToVec3<TNumOrBool>> | NumOrBool<TNumOrBool>): Node<NumOrBoolToVec4<TNumOrBool>>;
|
|
1419
|
-
setXYW(value: Node<NumOrBoolToVec3<TNumOrBool>> | NumOrBool<TNumOrBool>): Node<NumOrBoolToVec4<TNumOrBool>>;
|
|
1420
|
-
setRGA(value: Node<NumOrBoolToVec3<TNumOrBool>> | NumOrBool<TNumOrBool>): Node<NumOrBoolToVec4<TNumOrBool>>;
|
|
1421
|
-
setSTQ(value: Node<NumOrBoolToVec3<TNumOrBool>> | NumOrBool<TNumOrBool>): Node<NumOrBoolToVec4<TNumOrBool>>;
|
|
1422
|
-
setXZW(value: Node<NumOrBoolToVec3<TNumOrBool>> | NumOrBool<TNumOrBool>): Node<NumOrBoolToVec4<TNumOrBool>>;
|
|
1423
|
-
setRBA(value: Node<NumOrBoolToVec3<TNumOrBool>> | NumOrBool<TNumOrBool>): Node<NumOrBoolToVec4<TNumOrBool>>;
|
|
1424
|
-
setSPQ(value: Node<NumOrBoolToVec3<TNumOrBool>> | NumOrBool<TNumOrBool>): Node<NumOrBoolToVec4<TNumOrBool>>;
|
|
1425
1410
|
setYZW(value: Node<NumOrBoolToVec3<TNumOrBool>> | NumOrBool<TNumOrBool>): Node<NumOrBoolToVec4<TNumOrBool>>;
|
|
1426
1411
|
setGBA(value: Node<NumOrBoolToVec3<TNumOrBool>> | NumOrBool<TNumOrBool>): Node<NumOrBoolToVec4<TNumOrBool>>;
|
|
1427
1412
|
setTPQ(value: Node<NumOrBoolToVec3<TNumOrBool>> | NumOrBool<TNumOrBool>): Node<NumOrBoolToVec4<TNumOrBool>>;
|
|
@@ -1564,21 +1549,51 @@ declare module "../core/Node.js" {
|
|
|
1564
1549
|
}
|
|
1565
1550
|
}
|
|
1566
1551
|
|
|
1567
|
-
/** anything that can be passed to {@link nodeObject} */
|
|
1568
|
-
export type NodeObjectOption = Node | number | string;
|
|
1569
|
-
|
|
1570
|
-
// same logic as in ShaderNodeObject: number,boolean,node->node, otherwise do nothing
|
|
1571
1552
|
export type NodeObject<T> = T extends Node ? T
|
|
1572
1553
|
: T extends number ? Node<"float">
|
|
1573
1554
|
: T extends boolean ? Node<"bool">
|
|
1555
|
+
: T extends (...args: never) => unknown ? unknown // FIXME This should return an FnNode
|
|
1556
|
+
: T extends Vector2 ? Node<"vec2">
|
|
1557
|
+
: T extends Vector3 ? Node<"vec3">
|
|
1558
|
+
: T extends Vector4 ? Node<"vec4">
|
|
1559
|
+
: T extends Matrix2 ? Node<"mat2">
|
|
1560
|
+
: T extends Matrix3 ? Node<"mat3">
|
|
1561
|
+
: T extends Matrix4 ? Node<"mat4">
|
|
1562
|
+
: T extends Color ? Node<"color">
|
|
1563
|
+
: T extends ArrayBuffer ? Node<"ArrayBuffer">
|
|
1564
|
+
: T;
|
|
1565
|
+
|
|
1566
|
+
type Proxied<T> = T extends Node<infer TNodeType>
|
|
1567
|
+
? Node<TNodeType> extends T ? TNodeType extends "float" ? Node<"float"> | Node<"uint"> | number // FIXME remove Node<"uint">
|
|
1568
|
+
: TNodeType extends "bool" ? Node<"bool"> | boolean
|
|
1569
|
+
: TNodeType extends "vec2" ? Node<"vec2"> | Vector2
|
|
1570
|
+
: TNodeType extends "vec3" ? Node<"vec3"> | Vector3
|
|
1571
|
+
: TNodeType extends "vec4" ? Node<"vec4"> | Vector4
|
|
1572
|
+
: TNodeType extends "mat2" ? Node<"mat2"> | Matrix2
|
|
1573
|
+
: TNodeType extends "mat3" ? Node<"mat3"> | Matrix3
|
|
1574
|
+
: TNodeType extends "mat4" ? Node<"mat4"> | Matrix4
|
|
1575
|
+
: TNodeType extends "color" ? Node<"color"> | Color
|
|
1576
|
+
: TNodeType extends "ArrayBuffer" ? Node<"ArrayBuffer"> | ArrayBuffer
|
|
1577
|
+
: T
|
|
1578
|
+
: T
|
|
1574
1579
|
: T;
|
|
1575
1580
|
|
|
1576
|
-
|
|
1577
|
-
|
|
1581
|
+
type CoercibleToNodeType<TNodeType> = TNodeType extends "float" ? Node<"float"> | Node<"int"> | Node<"uint"> | number
|
|
1582
|
+
: TNodeType extends "bool" ? Node<"bool"> | boolean
|
|
1583
|
+
: TNodeType extends "vec2" ? Node<"vec2"> | Node<"ivec2"> | Node<"uvec2"> | Vector2
|
|
1584
|
+
: TNodeType extends "vec3" ? Node<"vec3"> | Node<"ivec3"> | Node<"uvec3"> | Vector3
|
|
1585
|
+
: TNodeType extends "vec4" ? Node<"vec4"> | Node<"ivec4"> | Node<"uvec4"> | Vector4
|
|
1586
|
+
: TNodeType extends "mat2" ? Node<"mat2"> | Matrix2
|
|
1587
|
+
: TNodeType extends "vec3" ? Node<"mat3"> | Matrix3
|
|
1588
|
+
: TNodeType extends "vec4" ? Node<"mat4"> | Matrix4
|
|
1589
|
+
: TNodeType extends "color" ? Node<"color"> | Color
|
|
1590
|
+
: TNodeType extends "ArrayBuffer" ? Node<"ArrayBuffer"> | ArrayBuffer
|
|
1591
|
+
: Node<TNodeType>;
|
|
1592
|
+
|
|
1578
1593
|
// https://github.com/microsoft/TypeScript/issues/42435#issuecomment-765557874
|
|
1579
1594
|
// eslint-disable-next-line @definitelytyped/no-single-element-tuple-type
|
|
1580
|
-
export type ProxiedTuple<T extends readonly [...unknown[]]> = [...{ [
|
|
1581
|
-
export type ProxiedObject<T> = { [
|
|
1595
|
+
export type ProxiedTuple<T extends readonly [...unknown[]]> = [...{ [Index in keyof T]: Proxied<T[Index]> }];
|
|
1596
|
+
export type ProxiedObject<T> = { [Index in keyof T]: Proxied<T[Index]> };
|
|
1582
1597
|
// eslint-disable-next-line @definitelytyped/no-single-element-tuple-type
|
|
1583
1598
|
type RemoveTail<T extends readonly [...unknown[]]> = T extends [unknown, ...infer X] ? X : [];
|
|
1584
1599
|
// eslint-disable-next-line @definitelytyped/no-single-element-tuple-type
|
|
@@ -1664,8 +1679,8 @@ type GetConstructorsByScope<T, S> = ConstructorUnion<FilterConstructorsByScope<O
|
|
|
1664
1679
|
type GetConstructors<T> = ConstructorUnion<OverloadedConstructorsOf<T>>;
|
|
1665
1680
|
type GetPossibleScopes<T> = ExtractScopes<OverloadedConstructorsOf<T>>;
|
|
1666
1681
|
|
|
1667
|
-
type NodeArray<T extends
|
|
1668
|
-
type NodeObjects<T> = { [
|
|
1682
|
+
type NodeArray<T extends unknown[]> = { [Index in keyof T]: NodeObject<T[Index]> };
|
|
1683
|
+
type NodeObjects<T> = { [Key in keyof T]: NodeObject<T[Key]> };
|
|
1669
1684
|
type ConstructedNode<T> = T extends new(...args: any[]) => infer R ? (R extends Node ? R : never) : never;
|
|
1670
1685
|
|
|
1671
1686
|
export type NodeOrType = Node | string;
|
|
@@ -1686,12 +1701,12 @@ export class ShaderNode<T = {}, R extends Node = Node> {
|
|
|
1686
1701
|
) => R;
|
|
1687
1702
|
}
|
|
1688
1703
|
|
|
1689
|
-
export function nodeObject<T
|
|
1690
|
-
export function nodeObjectIntent<T
|
|
1704
|
+
export function nodeObject<T>(obj: T): NodeObject<T>;
|
|
1705
|
+
export function nodeObjectIntent<T>(obj: T): NodeObject<T>;
|
|
1691
1706
|
export function nodeObjects<T>(obj: T): NodeObjects<T>;
|
|
1692
1707
|
|
|
1693
1708
|
// eslint-disable-next-line @definitelytyped/no-single-element-tuple-type
|
|
1694
|
-
export function nodeArray<T extends
|
|
1709
|
+
export function nodeArray<T extends unknown[]>(obj: readonly [...T]): NodeArray<T>;
|
|
1695
1710
|
|
|
1696
1711
|
export function nodeProxy<T>(
|
|
1697
1712
|
nodeClass: T,
|
|
@@ -1705,7 +1720,7 @@ export function nodeProxy<T, S extends GetPossibleScopes<T>>(
|
|
|
1705
1720
|
export function nodeProxy<T, S extends GetPossibleScopes<T>>(
|
|
1706
1721
|
nodeClass: T,
|
|
1707
1722
|
scope: S,
|
|
1708
|
-
factor:
|
|
1723
|
+
factor: unknown,
|
|
1709
1724
|
): (...params: ProxiedTuple<RemoveHeadAndTail<GetConstructorsByScope<T, S>>>) => ConstructedNode<T>;
|
|
1710
1725
|
|
|
1711
1726
|
export function nodeImmutable<T>(
|
|
@@ -1725,10 +1740,10 @@ export function nodeProxyIntent<T, S extends GetPossibleScopes<T>>(
|
|
|
1725
1740
|
export function nodeProxyIntent<T, S extends GetPossibleScopes<T>>(
|
|
1726
1741
|
nodeClass: T,
|
|
1727
1742
|
scope: S,
|
|
1728
|
-
factor:
|
|
1743
|
+
factor: unknown,
|
|
1729
1744
|
): (...params: ProxiedTuple<RemoveHeadAndTail<GetConstructorsByScope<T, S>>>) => ConstructedNode<T>;
|
|
1730
1745
|
|
|
1731
|
-
interface
|
|
1746
|
+
interface FullLayout {
|
|
1732
1747
|
name: string;
|
|
1733
1748
|
type: string;
|
|
1734
1749
|
inputs: {
|
|
@@ -1738,32 +1753,38 @@ interface Layout {
|
|
|
1738
1753
|
}[];
|
|
1739
1754
|
}
|
|
1740
1755
|
|
|
1741
|
-
|
|
1756
|
+
interface AbbreviatedLayout {
|
|
1757
|
+
[inputName: string]: string;
|
|
1758
|
+
return: string;
|
|
1759
|
+
}
|
|
1760
|
+
|
|
1761
|
+
type Layout = FullLayout | AbbreviatedLayout;
|
|
1762
|
+
|
|
1763
|
+
export interface FnNode<TArgs extends readonly unknown[], TReturn> {
|
|
1742
1764
|
// eslint-disable-next-line @typescript-eslint/no-invalid-void-type
|
|
1743
|
-
(...args:
|
|
1765
|
+
(...args: TArgs): TReturn extends void ? ShaderCallNodeInternal<void> : TReturn;
|
|
1744
1766
|
|
|
1745
1767
|
shaderNode: ShaderNodeInternal<TReturn>;
|
|
1746
1768
|
id: number;
|
|
1747
1769
|
|
|
1748
|
-
|
|
1749
|
-
getCacheKey: (force?: boolean) => number;
|
|
1770
|
+
setLayout(layout: Layout): this;
|
|
1750
1771
|
|
|
1751
|
-
|
|
1772
|
+
generateNodeType(builder: NodeBuilder): string;
|
|
1752
1773
|
|
|
1753
|
-
once
|
|
1774
|
+
once(subBuilds?: string[] | null): this;
|
|
1754
1775
|
}
|
|
1755
1776
|
|
|
1756
1777
|
export function Fn<TReturn>(
|
|
1757
1778
|
jsFunc: (builder: NodeBuilder) => TReturn,
|
|
1758
|
-
layout?:
|
|
1779
|
+
layout?: Layout | string,
|
|
1759
1780
|
): FnNode<[], TReturn>;
|
|
1760
1781
|
export function Fn<TArgs extends readonly unknown[], TReturn>(
|
|
1761
1782
|
jsFunc: (args: TArgs, builder: NodeBuilder) => TReturn,
|
|
1762
|
-
layout?:
|
|
1783
|
+
layout?: Layout | string,
|
|
1763
1784
|
): FnNode<ProxiedTuple<TArgs>, TReturn>;
|
|
1764
1785
|
export function Fn<TArgs extends { readonly [key: string]: unknown }, TReturn>(
|
|
1765
1786
|
jsFunc: (args: TArgs, builder: NodeBuilder) => TReturn,
|
|
1766
|
-
layout?:
|
|
1787
|
+
layout?: Layout | string,
|
|
1767
1788
|
// eslint-disable-next-line @definitelytyped/no-single-element-tuple-type
|
|
1768
1789
|
): FnNode<[ProxiedObject<TArgs>], TReturn>;
|
|
1769
1790
|
|
|
@@ -1782,48 +1803,80 @@ declare module "../core/Node.js" {
|
|
|
1782
1803
|
}
|
|
1783
1804
|
}
|
|
1784
1805
|
|
|
1806
|
+
/**
|
|
1807
|
+
* Can be implicitly converted to a float
|
|
1808
|
+
*/
|
|
1809
|
+
type ScalarNode = Node<"float"> | Node<"int"> | Node<"uint"> | Node<"bool">;
|
|
1810
|
+
|
|
1811
|
+
/**
|
|
1812
|
+
* Can be implicitly converted to a float
|
|
1813
|
+
*/
|
|
1814
|
+
type Scalar = ScalarNode | number | boolean;
|
|
1815
|
+
|
|
1785
1816
|
interface ColorFunction {
|
|
1786
1817
|
// The first branch in `ConvertType` will forward the parameters to the `Color` constructor if there are no
|
|
1787
1818
|
// parameters or all the parameters are non-objects
|
|
1788
|
-
(color?: string | number): ConstNode<"color", Color
|
|
1789
|
-
(r: number, g: number, b: number): ConstNode<"color", Color
|
|
1819
|
+
(color?: string | number): VarNode<"color", ConstNode<"color", Color>>;
|
|
1820
|
+
(r: number, g: number, b: number): VarNode<"color", ConstNode<"color", Color>>;
|
|
1790
1821
|
|
|
1791
1822
|
// The second branch does not apply because `cacheMap` is `null`
|
|
1792
1823
|
|
|
1793
|
-
// The third branch will be triggered if there is a single parameter
|
|
1794
|
-
|
|
1795
|
-
(
|
|
1824
|
+
// The third branch will be triggered if there is a single parameter
|
|
1825
|
+
// ConstNode
|
|
1826
|
+
(color: Color | Vector3): VarNode<"color", ConstNode<"color", Color>>;
|
|
1827
|
+
// ConvertNode
|
|
1828
|
+
(node: Node<"float">): VarNode<"color", ConvertNode<"color">>;
|
|
1829
|
+
(node: Node<"color"> | Node<"vec3">): VarNode<"color", ConvertNode<"color">>;
|
|
1796
1830
|
|
|
1797
|
-
// The fall-through branch will be triggered if there is more than one parameter,
|
|
1798
|
-
//
|
|
1831
|
+
// The fall-through branch will be triggered if there is more than one parameter, and one of the parameters is an
|
|
1832
|
+
// object
|
|
1833
|
+
(
|
|
1834
|
+
x: Node<"float"> | number,
|
|
1835
|
+
y: Node<"float"> | number,
|
|
1836
|
+
z: Node<"float"> | number,
|
|
1837
|
+
): VarNode<"vec3", JoinNode<"vec3">>;
|
|
1838
|
+
(xy: Node<"vec2"> | Vector2, z: Node<"float"> | number): VarNode<"vec3", JoinNode<"vec3">>;
|
|
1839
|
+
(x: Node<"float"> | number, yz: Node<"vec2"> | Vector2): VarNode<"vec3", JoinNode<"vec3">>;
|
|
1799
1840
|
}
|
|
1800
1841
|
|
|
1801
1842
|
export const color: ColorFunction;
|
|
1802
1843
|
|
|
1803
1844
|
interface FloatFunction {
|
|
1804
|
-
|
|
1805
|
-
(
|
|
1845
|
+
// ConstNode
|
|
1846
|
+
(value?: number): VarNode<"float", ConstNode<"float", number>>;
|
|
1847
|
+
|
|
1848
|
+
// ConvertNode
|
|
1849
|
+
(node: ScalarNode): VarNode<"float", ConvertNode<"float">>;
|
|
1806
1850
|
}
|
|
1807
1851
|
|
|
1808
1852
|
export const float: FloatFunction;
|
|
1809
1853
|
|
|
1810
1854
|
interface IntFunction {
|
|
1811
|
-
|
|
1812
|
-
(
|
|
1855
|
+
// ConstNode
|
|
1856
|
+
(value?: number): VarNode<"int", ConstNode<"int", number>>;
|
|
1857
|
+
|
|
1858
|
+
// ConvertNode
|
|
1859
|
+
(node: ScalarNode): VarNode<"int", ConvertNode<"int">>;
|
|
1813
1860
|
}
|
|
1814
1861
|
|
|
1815
1862
|
export const int: IntFunction;
|
|
1816
1863
|
|
|
1817
1864
|
interface UintFunction {
|
|
1818
|
-
|
|
1819
|
-
(
|
|
1865
|
+
// ConstNode
|
|
1866
|
+
(value?: number): VarNode<"uint", ConstNode<"uint", number>>;
|
|
1867
|
+
|
|
1868
|
+
// ConvertNode
|
|
1869
|
+
(node: ScalarNode): VarNode<"uint", ConvertNode<"uint">>;
|
|
1820
1870
|
}
|
|
1821
1871
|
|
|
1822
1872
|
export const uint: UintFunction;
|
|
1823
1873
|
|
|
1824
1874
|
interface BoolFunction {
|
|
1825
|
-
|
|
1826
|
-
(
|
|
1875
|
+
// ConstNode
|
|
1876
|
+
(value?: boolean): VarNode<"bool", ConstNode<"bool", boolean>>;
|
|
1877
|
+
|
|
1878
|
+
// ConvertNode
|
|
1879
|
+
(node: ScalarNode): VarNode<"bool", ConvertNode<"bool">>;
|
|
1827
1880
|
}
|
|
1828
1881
|
|
|
1829
1882
|
export const bool: BoolFunction;
|
|
@@ -1831,162 +1884,517 @@ export const bool: BoolFunction;
|
|
|
1831
1884
|
interface Vec2Function {
|
|
1832
1885
|
// The first branch in `ConvertType` will forward the parameters to the `Vector2` constructor if there are no
|
|
1833
1886
|
// parameters or all the parameters are non-objects
|
|
1834
|
-
(x?: number, y?: number): ConstNode<"vec2", Vector2
|
|
1887
|
+
(x?: number, y?: number): VarNode<"vec2", ConstNode<"vec2", Vector2>>;
|
|
1835
1888
|
|
|
1836
1889
|
// The second branch does not apply because `cacheMap` is `null`
|
|
1837
1890
|
|
|
1838
|
-
// The third branch will be triggered if there is a single parameter
|
|
1839
|
-
|
|
1840
|
-
(
|
|
1891
|
+
// The third branch will be triggered if there is a single parameter
|
|
1892
|
+
// ConstNode
|
|
1893
|
+
(value: Vector2): VarNode<"vec2", ConstNode<"vec2", Vector2>>;
|
|
1894
|
+
// ConvertNode
|
|
1895
|
+
(node: ScalarNode): VarNode<"vec2", ConvertNode<"vec2">>;
|
|
1896
|
+
(node: Node<"vec2"> | Node<"ivec2"> | Node<"uvec2"> | Node<"bvec2">): VarNode<"vec2", ConvertNode<"vec2">>;
|
|
1841
1897
|
|
|
1842
|
-
// The fall-through branch will be triggered if there is more than one parameter,
|
|
1843
|
-
//
|
|
1844
|
-
(x:
|
|
1898
|
+
// The fall-through branch will be triggered if there is more than one parameter, and one of the parameters is an
|
|
1899
|
+
// object
|
|
1900
|
+
(x: Scalar, y: Scalar): VarNode<"vec2", JoinNode<"vec2">>;
|
|
1845
1901
|
}
|
|
1846
1902
|
|
|
1847
1903
|
export const vec2: Vec2Function;
|
|
1848
1904
|
|
|
1849
1905
|
interface Ivec2Function {
|
|
1850
|
-
|
|
1851
|
-
|
|
1906
|
+
// The first branch in `ConvertType` will forward the parameters to the `Vector2` constructor if there are no
|
|
1907
|
+
// parameters or all the parameters are non-objects
|
|
1908
|
+
(x?: number, y?: number): VarNode<"ivec2", ConstNode<"ivec2", Vector2>>;
|
|
1909
|
+
|
|
1910
|
+
// The second branch does not apply because `cacheMap` is `null`
|
|
1911
|
+
|
|
1912
|
+
// The third branch will be triggered if there is a single parameter
|
|
1913
|
+
// ConstNode
|
|
1914
|
+
(value: Vector2): VarNode<"ivec2", ConstNode<"ivec2", Vector2>>;
|
|
1915
|
+
// ConvertNode
|
|
1916
|
+
(node: Node<"int">): VarNode<"ivec2", ConvertNode<"ivec2">>;
|
|
1917
|
+
(node: Node<"vec2"> | Node<"ivec2"> | Node<"uvec2"> | Node<"bvec2">): VarNode<"ivec2", ConvertNode<"ivec2">>;
|
|
1918
|
+
|
|
1919
|
+
// The fall-through branch will be triggered if there is more than one parameter, and one of the parameters is an
|
|
1920
|
+
// object
|
|
1921
|
+
(x: Node<"int"> | number, y: Node<"int"> | number): VarNode<"ivec2", JoinNode<"ivec2">>;
|
|
1852
1922
|
}
|
|
1853
1923
|
|
|
1854
1924
|
export const ivec2: Ivec2Function;
|
|
1855
1925
|
|
|
1856
|
-
|
|
1857
|
-
|
|
1926
|
+
interface Uvec2Function {
|
|
1927
|
+
// The first branch in `ConvertType` will forward the parameters to the `Vector2` constructor if there are no
|
|
1928
|
+
// parameters or all the parameters are non-objects
|
|
1929
|
+
(x?: number, y?: number): VarNode<"uvec2", ConstNode<"uvec2", Vector2>>;
|
|
1930
|
+
|
|
1931
|
+
// The second branch does not apply because `cacheMap` is `null`
|
|
1932
|
+
|
|
1933
|
+
// The third branch will be triggered if there is a single parameter
|
|
1934
|
+
// ConstNode
|
|
1935
|
+
(value: Vector2): VarNode<"uvec2", ConstNode<"uvec2", Vector2>>;
|
|
1936
|
+
// ConvertNode
|
|
1937
|
+
(node: Node<"uint">): VarNode<"uvec2", ConvertNode<"uvec2">>;
|
|
1938
|
+
(node: Node<"vec2"> | Node<"ivec2"> | Node<"uvec2"> | Node<"bvec2">): VarNode<"uvec2", ConvertNode<"uvec2">>;
|
|
1939
|
+
|
|
1940
|
+
// The fall-through branch will be triggered if there is more than one parameter, and one of the parameters is an
|
|
1941
|
+
// object
|
|
1942
|
+
(x: Node<"uint"> | number, y: Node<"uint"> | number): VarNode<"uvec2", JoinNode<"uvec2">>;
|
|
1943
|
+
}
|
|
1944
|
+
|
|
1945
|
+
export const uvec2: Uvec2Function;
|
|
1946
|
+
|
|
1947
|
+
interface Bvec2Function {
|
|
1948
|
+
// The first branch in `ConvertType` will forward the parameters to the `Vector2` constructor if there are no
|
|
1949
|
+
// parameters or all the parameters are non-objects
|
|
1950
|
+
(x?: boolean, y?: boolean): VarNode<"bvec2", ConstNode<"bvec2", Vector2>>;
|
|
1951
|
+
|
|
1952
|
+
// The second branch does not apply because `cacheMap` is `null`
|
|
1953
|
+
|
|
1954
|
+
// The third branch will be triggered if there is a single parameter
|
|
1955
|
+
// ConstNode
|
|
1956
|
+
(value: Vector2): VarNode<"bvec2", ConstNode<"bvec2", Vector2>>;
|
|
1957
|
+
// ConvertNode
|
|
1958
|
+
(node: Node<"bool">): VarNode<"bvec2", ConvertNode<"bvec2">>;
|
|
1959
|
+
(node: Node<"vec2"> | Node<"ivec2"> | Node<"uvec2"> | Node<"bvec2">): VarNode<"bvec2", ConvertNode<"bvec2">>;
|
|
1960
|
+
|
|
1961
|
+
// The fall-through branch will be triggered if there is more than one parameter, and one of the parameters is an
|
|
1962
|
+
// object
|
|
1963
|
+
(x: Node<"bool"> | boolean, y: Node<"bool"> | boolean): VarNode<"bvec2", JoinNode<"bvec2">>;
|
|
1964
|
+
}
|
|
1965
|
+
|
|
1966
|
+
export const bvec2: Bvec2Function;
|
|
1858
1967
|
|
|
1859
1968
|
interface Vec3Function {
|
|
1860
1969
|
// The first branch in `ConvertType` will forward the parameters to the `Vector3` constructor if there are no
|
|
1861
1970
|
// parameters or all the parameters are non-objects
|
|
1862
|
-
(x?: number, y?: number, z?: number): ConstNode<"vec3", Vector3
|
|
1971
|
+
(x?: number, y?: number, z?: number): VarNode<"vec3", ConstNode<"vec3", Vector3>>;
|
|
1863
1972
|
|
|
1864
1973
|
// The second branch does not apply because `cacheMap` is `null`
|
|
1865
1974
|
|
|
1866
|
-
// The third branch will be triggered if there is a single parameter
|
|
1867
|
-
|
|
1868
|
-
(value:
|
|
1869
|
-
|
|
1870
|
-
|
|
1871
|
-
|
|
1872
|
-
|
|
1873
|
-
|
|
1975
|
+
// The third branch will be triggered if there is a single parameter
|
|
1976
|
+
// ConstNode
|
|
1977
|
+
(value: Vector3): VarNode<"vec3", ConstNode<"vec3", Vector3>>;
|
|
1978
|
+
// ConvertNode
|
|
1979
|
+
(node: ScalarNode): VarNode<"vec3", ConvertNode<"vec3">>;
|
|
1980
|
+
(node: Node<"vec3"> | Node<"ivec3"> | Node<"uvec3"> | Node<"bvec3">): VarNode<"vec3", ConvertNode<"vec3">>;
|
|
1981
|
+
|
|
1982
|
+
// The fall-through branch will be triggered if there is more than one parameter, and one of the parameters is an
|
|
1983
|
+
// object
|
|
1984
|
+
(x: Scalar, y: Scalar, z: Scalar): VarNode<"vec3", JoinNode<"vec3">>;
|
|
1985
|
+
(xy: Node<"vec2"> | Vector2, z: Scalar): VarNode<"vec3", JoinNode<"vec3">>;
|
|
1986
|
+
(x: Scalar, yz: Node<"vec2"> | Vector2): VarNode<"vec3", JoinNode<"vec3">>;
|
|
1874
1987
|
}
|
|
1875
1988
|
|
|
1876
1989
|
export const vec3: Vec3Function;
|
|
1877
|
-
|
|
1878
|
-
|
|
1879
|
-
|
|
1990
|
+
|
|
1991
|
+
interface Ivec3Function {
|
|
1992
|
+
// The first branch in `ConvertType` will forward the parameters to the `Vector3` constructor if there are no
|
|
1993
|
+
// parameters or all the parameters are non-objects
|
|
1994
|
+
(x?: number, y?: number, z?: number): VarNode<"ivec3", ConstNode<"ivec3", Vector3>>;
|
|
1995
|
+
|
|
1996
|
+
// The second branch does not apply because `cacheMap` is `null`
|
|
1997
|
+
|
|
1998
|
+
// The third branch will be triggered if there is a single parameter
|
|
1999
|
+
// ConstNode
|
|
2000
|
+
(value: Vector3): VarNode<"ivec3", ConstNode<"ivec3", Vector3>>;
|
|
2001
|
+
// ConvertNode
|
|
2002
|
+
(node: Node<"int">): VarNode<"ivec3", ConvertNode<"ivec3">>;
|
|
2003
|
+
(node: Node<"vec3"> | Node<"ivec3"> | Node<"uvec3"> | Node<"bvec3">): VarNode<"ivec3", ConvertNode<"ivec3">>;
|
|
2004
|
+
|
|
2005
|
+
// The fall-through branch will be triggered if there is more than one parameter, and one of the parameters is an
|
|
2006
|
+
// object
|
|
2007
|
+
(x: Node<"int"> | number, y: Node<"int"> | number, z: Node<"int"> | number): VarNode<"ivec3", JoinNode<"ivec3">>;
|
|
2008
|
+
(xy: Node<"ivec2"> | Vector2, z: Node<"int"> | number): VarNode<"ivec3", JoinNode<"ivec3">>;
|
|
2009
|
+
(x: Node<"int"> | number, yz: Node<"ivec2"> | Vector2): VarNode<"ivec3", JoinNode<"ivec3">>;
|
|
2010
|
+
}
|
|
2011
|
+
|
|
2012
|
+
export const ivec3: Ivec3Function;
|
|
2013
|
+
|
|
2014
|
+
interface Uvec3Function {
|
|
2015
|
+
// The first branch in `ConvertType` will forward the parameters to the `Vector3` constructor if there are no
|
|
2016
|
+
// parameters or all the parameters are non-objects
|
|
2017
|
+
(x?: number, y?: number, z?: number): VarNode<"uvec3", ConstNode<"uvec3", Vector3>>;
|
|
2018
|
+
|
|
2019
|
+
// The second branch does not apply because `cacheMap` is `null`
|
|
2020
|
+
|
|
2021
|
+
// The third branch will be triggered if there is a single parameter
|
|
2022
|
+
// ConstNode
|
|
2023
|
+
(value: Vector3): VarNode<"uvec3", ConstNode<"uvec3", Vector3>>;
|
|
2024
|
+
// ConvertNode
|
|
2025
|
+
(node: Node<"uint">): VarNode<"uvec3", ConvertNode<"uvec3">>;
|
|
2026
|
+
(node: Node<"vec3"> | Node<"ivec3"> | Node<"uvec3"> | Node<"bvec3">): VarNode<"uvec3", ConvertNode<"uvec3">>;
|
|
2027
|
+
|
|
2028
|
+
// The fall-through branch will be triggered if there is more than one parameter, and one of the parameters is an
|
|
2029
|
+
// object
|
|
2030
|
+
(x: Node<"uint"> | number, y: Node<"uint"> | number, z: Node<"uint"> | number): VarNode<"uvec3", JoinNode<"uvec3">>;
|
|
2031
|
+
(xy: Node<"uvec2"> | Vector2, z: Node<"uint"> | number): VarNode<"uvec3", JoinNode<"uvec3">>;
|
|
2032
|
+
(x: Node<"uint"> | number, yz: Node<"uvec2"> | Vector2): VarNode<"uvec3", JoinNode<"uvec3">>;
|
|
2033
|
+
}
|
|
2034
|
+
|
|
2035
|
+
export const uvec3: Uvec3Function;
|
|
2036
|
+
|
|
2037
|
+
interface Bvec3Function {
|
|
2038
|
+
// The first branch in `ConvertType` will forward the parameters to the `Vector3` constructor if there are no
|
|
2039
|
+
// parameters or all the parameters are non-objects
|
|
2040
|
+
(x?: boolean, y?: boolean, z?: boolean): VarNode<"bvec3", ConstNode<"bvec3", Vector3>>;
|
|
2041
|
+
|
|
2042
|
+
// The second branch does not apply because `cacheMap` is `null`
|
|
2043
|
+
|
|
2044
|
+
// The third branch will be triggered if there is a single parameter
|
|
2045
|
+
// ConstNode
|
|
2046
|
+
(value: Vector3): VarNode<"bvec3", ConstNode<"bvec3", Vector3>>;
|
|
2047
|
+
// ConvertNode
|
|
2048
|
+
(node: Node<"bool">): VarNode<"bvec3", ConvertNode<"bvec3">>;
|
|
2049
|
+
(node: Node<"vec3"> | Node<"ivec3"> | Node<"uvec3"> | Node<"bvec3">): VarNode<"bvec3", ConvertNode<"bvec3">>;
|
|
2050
|
+
|
|
2051
|
+
// The fall-through branch will be triggered if there is more than one parameter, and one of the parameters is an
|
|
2052
|
+
// object
|
|
2053
|
+
(
|
|
2054
|
+
x: Node<"bool"> | boolean,
|
|
2055
|
+
y: Node<"bool"> | boolean,
|
|
2056
|
+
z: Node<"bool"> | boolean,
|
|
2057
|
+
): VarNode<"bvec3", JoinNode<"bvec3">>;
|
|
2058
|
+
(xy: Node<"bvec2"> | Vector2, z: Node<"bool"> | boolean): VarNode<"bvec3", JoinNode<"bvec3">>;
|
|
2059
|
+
(x: Node<"bool"> | boolean, yz: Node<"bvec2"> | Vector2): VarNode<"bvec3", JoinNode<"bvec3">>;
|
|
2060
|
+
}
|
|
2061
|
+
|
|
2062
|
+
export const bvec3: Bvec3Function;
|
|
1880
2063
|
|
|
1881
2064
|
interface Vec4Function {
|
|
1882
2065
|
// The first branch in `ConvertType` will forward the parameters to the `Vector4` constructor if there are no
|
|
1883
2066
|
// parameters or all the parameters are non-objects
|
|
1884
|
-
(x?: number, y?: number, z?: number, w?: number): ConstNode<"vec4", Vector4
|
|
2067
|
+
(x?: number, y?: number, z?: number, w?: number): VarNode<"vec4", ConstNode<"vec4", Vector4>>;
|
|
1885
2068
|
|
|
1886
2069
|
// The second branch does not apply because `cacheMap` is `null`
|
|
1887
2070
|
|
|
1888
|
-
// The third branch will be triggered if there is a single parameter
|
|
1889
|
-
|
|
1890
|
-
(
|
|
1891
|
-
|
|
1892
|
-
|
|
1893
|
-
|
|
1894
|
-
|
|
2071
|
+
// The third branch will be triggered if there is a single parameter
|
|
2072
|
+
// ConstNode
|
|
2073
|
+
(value: Vector4): VarNode<"vec4", ConstNode<"vec4", Vector4>>;
|
|
2074
|
+
// ConvertNode
|
|
2075
|
+
(node: ScalarNode): VarNode<"vec4", ConvertNode<"vec4">>;
|
|
2076
|
+
(node: Node<"vec4"> | Node<"ivec4"> | Node<"uvec4"> | Node<"bvec4">): VarNode<"vec4", ConvertNode<"vec4">>;
|
|
2077
|
+
|
|
2078
|
+
// The fall-through branch will be triggered if there is more than one parameter, and one of the parameters is an
|
|
2079
|
+
// object
|
|
2080
|
+
(x: Scalar, y: Scalar, z: Scalar, w: Scalar): VarNode<"vec4", JoinNode<"vec4">>;
|
|
2081
|
+
(x: Scalar, yz: Node<"vec2"> | Vector2, w: Scalar): VarNode<"vec4", JoinNode<"vec4">>;
|
|
2082
|
+
(x: Scalar, y: Scalar, zw: Node<"vec2"> | Vector2): VarNode<"vec4", JoinNode<"vec4">>;
|
|
2083
|
+
(xy: Node<"vec2"> | Vector2, zw: Node<"vec2"> | Vector2): VarNode<"vec4", JoinNode<"vec4">>;
|
|
2084
|
+
(xy: Node<"vec2"> | Vector2, z: Scalar, w: Scalar): VarNode<"vec4", JoinNode<"vec4">>;
|
|
2085
|
+
(xyz: Node<"vec3"> | Node<"color"> | Vector3 | Color, w: Scalar): VarNode<"vec4", JoinNode<"vec4">>;
|
|
2086
|
+
(x: Scalar, yzw: Node<"vec3"> | Node<"color"> | Vector3 | Color): VarNode<"vec4", JoinNode<"vec4">>;
|
|
1895
2087
|
}
|
|
1896
2088
|
|
|
1897
2089
|
export const vec4: Vec4Function;
|
|
1898
|
-
|
|
1899
|
-
|
|
1900
|
-
|
|
2090
|
+
|
|
2091
|
+
interface Ivec4Function {
|
|
2092
|
+
// The first branch in `ConvertType` will forward the parameters to the `Vector4` constructor if there are no
|
|
2093
|
+
// parameters or all the parameters are non-objects
|
|
2094
|
+
(x?: number, y?: number, z?: number, w?: number): VarNode<"ivec4", ConstNode<"ivec4", Vector4>>;
|
|
2095
|
+
|
|
2096
|
+
// The second branch does not apply because `cacheMap` is `null`
|
|
2097
|
+
|
|
2098
|
+
// The third branch will be triggered if there is a single parameter
|
|
2099
|
+
// ConstNode
|
|
2100
|
+
(value: Vector4): VarNode<"ivec4", ConstNode<"ivec4", Vector4>>;
|
|
2101
|
+
// ConvertNode
|
|
2102
|
+
(node: Node<"int">): VarNode<"ivec4", ConvertNode<"ivec4">>;
|
|
2103
|
+
(node: Node<"vec4"> | Node<"ivec4"> | Node<"uvec4"> | Node<"bvec4">): VarNode<"ivec4", ConvertNode<"ivec4">>;
|
|
2104
|
+
|
|
2105
|
+
// The fall-through branch will be triggered if there is more than one parameter, and one of the parameters is an
|
|
2106
|
+
// object
|
|
2107
|
+
(
|
|
2108
|
+
x: Node<"int"> | number,
|
|
2109
|
+
y: Node<"int"> | number,
|
|
2110
|
+
z: Node<"int"> | number,
|
|
2111
|
+
w: Node<"int"> | number,
|
|
2112
|
+
): VarNode<"ivec4", JoinNode<"ivec4">>;
|
|
2113
|
+
(
|
|
2114
|
+
x: Node<"int"> | number,
|
|
2115
|
+
yz: Node<"ivec2"> | Vector2,
|
|
2116
|
+
w: Node<"int"> | number,
|
|
2117
|
+
): VarNode<"ivec4", JoinNode<"ivec4">>;
|
|
2118
|
+
(
|
|
2119
|
+
x: Node<"int"> | number,
|
|
2120
|
+
y: Node<"int"> | number,
|
|
2121
|
+
zw: Node<"ivec2"> | Vector2,
|
|
2122
|
+
): VarNode<"ivec4", JoinNode<"ivec4">>;
|
|
2123
|
+
(xy: Node<"ivec2"> | Vector2, zw: Node<"ivec2"> | Vector2): VarNode<"ivec4", JoinNode<"ivec4">>;
|
|
2124
|
+
(
|
|
2125
|
+
xy: Node<"ivec2"> | Vector2,
|
|
2126
|
+
z: Node<"int"> | number,
|
|
2127
|
+
w: Node<"int"> | number,
|
|
2128
|
+
): VarNode<"ivec4", JoinNode<"ivec4">>;
|
|
2129
|
+
(xyz: Node<"ivec3"> | Vector3, w: Node<"int"> | number): VarNode<"ivec4", JoinNode<"ivec4">>;
|
|
2130
|
+
(x: Node<"int"> | number, yzw: Node<"ivec3"> | Vector3): VarNode<"ivec4", JoinNode<"ivec4">>;
|
|
2131
|
+
}
|
|
2132
|
+
|
|
2133
|
+
export const ivec4: Ivec4Function;
|
|
2134
|
+
|
|
2135
|
+
interface Uvec4Function {
|
|
2136
|
+
// The first branch in `ConvertType` will forward the parameters to the `Vector4` constructor if there are no
|
|
2137
|
+
// parameters or all the parameters are non-objects
|
|
2138
|
+
(x?: number, y?: number, z?: number, w?: number): VarNode<"uvec4", ConstNode<"uvec4", Vector4>>;
|
|
2139
|
+
|
|
2140
|
+
// The second branch does not apply because `cacheMap` is `null`
|
|
2141
|
+
|
|
2142
|
+
// The third branch will be triggered if there is a single parameter
|
|
2143
|
+
// ConstNode
|
|
2144
|
+
(value: Vector4): VarNode<"uvec4", ConstNode<"uvec4", Vector4>>;
|
|
2145
|
+
// ConvertNode
|
|
2146
|
+
(node: Node<"uint">): VarNode<"uvec4", ConvertNode<"uvec4">>;
|
|
2147
|
+
(node: Node<"vec4"> | Node<"ivec4"> | Node<"uvec4"> | Node<"bvec4">): VarNode<"uvec4", ConvertNode<"uvec4">>;
|
|
2148
|
+
|
|
2149
|
+
// The fall-through branch will be triggered if there is more than one parameter, and one of the parameters is an
|
|
2150
|
+
// object
|
|
2151
|
+
(
|
|
2152
|
+
x: Node<"uint"> | number,
|
|
2153
|
+
y: Node<"uint"> | number,
|
|
2154
|
+
z: Node<"uint"> | number,
|
|
2155
|
+
w: Node<"uint"> | number,
|
|
2156
|
+
): VarNode<"uvec4", JoinNode<"uvec4">>;
|
|
2157
|
+
(
|
|
2158
|
+
x: Node<"uint"> | number,
|
|
2159
|
+
yz: Node<"uvec2"> | Vector2,
|
|
2160
|
+
w: Node<"uint"> | number,
|
|
2161
|
+
): VarNode<"uvec4", JoinNode<"uvec4">>;
|
|
2162
|
+
(
|
|
2163
|
+
x: Node<"uint"> | number,
|
|
2164
|
+
y: Node<"uint"> | number,
|
|
2165
|
+
zw: Node<"uvec2"> | Vector2,
|
|
2166
|
+
): VarNode<"uvec4", JoinNode<"uvec4">>;
|
|
2167
|
+
(xy: Node<"uvec2"> | Vector2, zw: Node<"uvec2"> | Vector2): VarNode<"uvec4", JoinNode<"uvec4">>;
|
|
2168
|
+
(
|
|
2169
|
+
xy: Node<"uvec2"> | Vector2,
|
|
2170
|
+
z: Node<"uint"> | number,
|
|
2171
|
+
w: Node<"uint"> | number,
|
|
2172
|
+
): VarNode<"uvec4", JoinNode<"uvec4">>;
|
|
2173
|
+
(xyz: Node<"uvec3"> | Vector3, w: Node<"uint"> | number): VarNode<"uvec4", JoinNode<"uvec4">>;
|
|
2174
|
+
(x: Node<"uint"> | number, yzw: Node<"uvec3"> | Vector3): VarNode<"uvec4", JoinNode<"uvec4">>;
|
|
2175
|
+
}
|
|
2176
|
+
|
|
2177
|
+
export const uvec4: Uvec4Function;
|
|
2178
|
+
|
|
2179
|
+
interface Bvec4Function {
|
|
2180
|
+
// The first branch in `ConvertType` will forward the parameters to the `Vector4` constructor if there are no
|
|
2181
|
+
// parameters or all the parameters are non-objects
|
|
2182
|
+
(x?: boolean, y?: boolean, z?: boolean, w?: boolean): VarNode<"bvec4", ConstNode<"bvec4", Vector4>>;
|
|
2183
|
+
|
|
2184
|
+
// The second branch does not apply because `cacheMap` is `null`
|
|
2185
|
+
|
|
2186
|
+
// The third branch will be triggered if there is a single parameter
|
|
2187
|
+
// ConstNode
|
|
2188
|
+
(value: Vector4): VarNode<"bvec4", ConstNode<"bvec4", Vector4>>;
|
|
2189
|
+
// ConvertNode
|
|
2190
|
+
(node: Node<"bool">): VarNode<"bvec4", ConvertNode<"bvec4">>;
|
|
2191
|
+
(node: Node<"vec4"> | Node<"ivec4"> | Node<"uvec4"> | Node<"bvec4">): VarNode<"bvec4", ConvertNode<"bvec4">>;
|
|
2192
|
+
|
|
2193
|
+
// The fall-through branch will be triggered if there is more than one parameter, and one of the parameters is an
|
|
2194
|
+
// object
|
|
2195
|
+
(
|
|
2196
|
+
x: Node<"bool"> | boolean,
|
|
2197
|
+
y: Node<"bool"> | boolean,
|
|
2198
|
+
z: Node<"bool"> | boolean,
|
|
2199
|
+
w: Node<"bool"> | boolean,
|
|
2200
|
+
): VarNode<"bvec4", JoinNode<"bvec4">>;
|
|
2201
|
+
(
|
|
2202
|
+
x: Node<"bool"> | boolean,
|
|
2203
|
+
yz: Node<"bvec2"> | Vector2,
|
|
2204
|
+
w: Node<"bool"> | boolean,
|
|
2205
|
+
): VarNode<"bvec4", JoinNode<"bvec4">>;
|
|
2206
|
+
(
|
|
2207
|
+
x: Node<"bool"> | boolean,
|
|
2208
|
+
y: Node<"bool"> | boolean,
|
|
2209
|
+
zw: Node<"bvec2"> | Vector2,
|
|
2210
|
+
): VarNode<"bvec4", JoinNode<"bvec4">>;
|
|
2211
|
+
(xy: Node<"bvec2"> | Vector2, zw: Node<"bvec2"> | Vector2): VarNode<"bvec4", JoinNode<"bvec4">>;
|
|
2212
|
+
(
|
|
2213
|
+
xy: Node<"bvec2"> | Vector2,
|
|
2214
|
+
z: Node<"bool"> | boolean,
|
|
2215
|
+
w: Node<"bool"> | boolean,
|
|
2216
|
+
): VarNode<"bvec4", JoinNode<"bvec4">>;
|
|
2217
|
+
(xyz: Node<"bvec3"> | Vector3, w: Node<"bool"> | boolean): VarNode<"bvec4", JoinNode<"bvec4">>;
|
|
2218
|
+
(x: Node<"bool"> | boolean, yzw: Node<"bvec3"> | Vector3): VarNode<"bvec4", JoinNode<"bvec4">>;
|
|
2219
|
+
}
|
|
2220
|
+
|
|
2221
|
+
export const bvec4: Bvec4Function;
|
|
1901
2222
|
|
|
1902
2223
|
interface Mat2Function {
|
|
1903
|
-
|
|
1904
|
-
|
|
2224
|
+
// The first branch in `ConvertType` will forward the parameters to the `Matrix2` constructor if there are no
|
|
2225
|
+
// parameters or all the parameters are non-objects
|
|
2226
|
+
(): VarNode<"mat2", ConstNode<"mat2", Matrix2>>;
|
|
2227
|
+
(n11: number, n12: number, n21: number, n22: number): VarNode<"mat2", ConstNode<"mat2", Matrix2>>;
|
|
2228
|
+
|
|
2229
|
+
// The second branch does not apply because `cacheMap` is `null`
|
|
2230
|
+
|
|
2231
|
+
// The third branch will be triggered if there is a single parameter
|
|
2232
|
+
// ConstNode
|
|
2233
|
+
(value: Matrix2): VarNode<"mat2", ConstNode<"mat2", Matrix2>>;
|
|
2234
|
+
// ConvertNode
|
|
2235
|
+
(node: Node<"mat2">): VarNode<"mat2", ConvertNode<"mat2">>;
|
|
2236
|
+
|
|
2237
|
+
// The fall-through branch will be triggered if there is more than one parameter, and one of the parameters is an
|
|
2238
|
+
// object
|
|
2239
|
+
(n1: Node<"vec2"> | Vector2, n2: Node<"vec2"> | Vector2): VarNode<"mat2", JoinNode<"mat2">>;
|
|
2240
|
+
(
|
|
2241
|
+
n11: Node<"float"> | number,
|
|
2242
|
+
n12: Node<"float"> | number,
|
|
2243
|
+
n21: Node<"float"> | number,
|
|
2244
|
+
n22: Node<"float"> | number,
|
|
2245
|
+
): VarNode<"mat2", JoinNode<"mat2">>;
|
|
1905
2246
|
}
|
|
1906
2247
|
|
|
1907
2248
|
export const mat2: Mat2Function;
|
|
1908
2249
|
|
|
1909
2250
|
interface Mat3Function {
|
|
1910
|
-
|
|
2251
|
+
// The first branch in `ConvertType` will forward the parameters to the `Matrix3` constructor if there are no
|
|
2252
|
+
// parameters or all the parameters are non-objects
|
|
2253
|
+
(): VarNode<"mat3", ConstNode<"mat3", Matrix3>>;
|
|
2254
|
+
(
|
|
2255
|
+
n11: number,
|
|
2256
|
+
n12: number,
|
|
2257
|
+
n13: number,
|
|
2258
|
+
n21: number,
|
|
2259
|
+
n22: number,
|
|
2260
|
+
n23: number,
|
|
2261
|
+
n31: number,
|
|
2262
|
+
n32: number,
|
|
2263
|
+
n33: number,
|
|
2264
|
+
): VarNode<"mat3", ConstNode<"mat3", Matrix3>>;
|
|
2265
|
+
|
|
2266
|
+
// The second branch does not apply because `cacheMap` is `null`
|
|
2267
|
+
|
|
2268
|
+
// The third branch will be triggered if there is a single parameter
|
|
2269
|
+
// ConstNode
|
|
2270
|
+
(value: Matrix3): VarNode<"mat3", ConstNode<"mat3", Matrix3>>;
|
|
2271
|
+
// ConvertNode
|
|
2272
|
+
(node: Node<"mat3">): VarNode<"mat3", ConvertNode<"mat3">>;
|
|
2273
|
+
|
|
2274
|
+
// The fall-through branch will be triggered if there is more than one parameter, and one of the parameters is an
|
|
2275
|
+
// object
|
|
1911
2276
|
(
|
|
1912
|
-
|
|
1913
|
-
|
|
1914
|
-
|
|
1915
|
-
|
|
1916
|
-
n22: number | Node,
|
|
1917
|
-
n23: number | Node,
|
|
1918
|
-
n31: number | Node,
|
|
1919
|
-
n32: number | Node,
|
|
1920
|
-
n33: number | Node,
|
|
1921
|
-
): Node<"mat3">;
|
|
1922
|
-
(): ConstNode<"mat3", Matrix3>;
|
|
2277
|
+
n1: Node<"vec3"> | Vector3,
|
|
2278
|
+
n2: Node<"vec3"> | Vector3,
|
|
2279
|
+
n3: Node<"vec3"> | Vector3,
|
|
2280
|
+
): VarNode<"mat3", JoinNode<"mat3">>;
|
|
1923
2281
|
(
|
|
1924
|
-
|
|
1925
|
-
|
|
1926
|
-
|
|
1927
|
-
|
|
1928
|
-
|
|
2282
|
+
n11: Node<"float"> | number,
|
|
2283
|
+
n12: Node<"float"> | number,
|
|
2284
|
+
n13: Node<"float"> | number,
|
|
2285
|
+
n21: Node<"float"> | number,
|
|
2286
|
+
n22: Node<"float"> | number,
|
|
2287
|
+
n23: Node<"float"> | number,
|
|
2288
|
+
n31: Node<"float"> | number,
|
|
2289
|
+
n32: Node<"float"> | number,
|
|
2290
|
+
n33: Node<"float"> | number,
|
|
2291
|
+
): VarNode<"mat3", JoinNode<"mat3">>;
|
|
1929
2292
|
}
|
|
1930
2293
|
|
|
1931
2294
|
export const mat3: Mat3Function;
|
|
1932
2295
|
|
|
1933
2296
|
interface Mat4Function {
|
|
1934
|
-
|
|
2297
|
+
// The first branch in `ConvertType` will forward the parameters to the `Matrix4` constructor if there are no
|
|
2298
|
+
// parameters or all the parameters are non-objects
|
|
2299
|
+
(): VarNode<"mat4", ConstNode<"mat4", Matrix4>>;
|
|
1935
2300
|
(
|
|
1936
|
-
n11: number
|
|
1937
|
-
n12: number
|
|
1938
|
-
n13: number
|
|
1939
|
-
n14: number
|
|
1940
|
-
n21: number
|
|
1941
|
-
n22: number
|
|
1942
|
-
n23: number
|
|
1943
|
-
n24: number
|
|
1944
|
-
n31: number
|
|
1945
|
-
n32: number
|
|
1946
|
-
n33: number
|
|
1947
|
-
n34: number
|
|
1948
|
-
n41: number
|
|
1949
|
-
n42: number
|
|
1950
|
-
n43: number
|
|
1951
|
-
n44: number
|
|
1952
|
-
):
|
|
1953
|
-
|
|
2301
|
+
n11: number,
|
|
2302
|
+
n12: number,
|
|
2303
|
+
n13: number,
|
|
2304
|
+
n14: number,
|
|
2305
|
+
n21: number,
|
|
2306
|
+
n22: number,
|
|
2307
|
+
n23: number,
|
|
2308
|
+
n24: number,
|
|
2309
|
+
n31: number,
|
|
2310
|
+
n32: number,
|
|
2311
|
+
n33: number,
|
|
2312
|
+
n34: number,
|
|
2313
|
+
n41: number,
|
|
2314
|
+
n42: number,
|
|
2315
|
+
n43: number,
|
|
2316
|
+
n44: number,
|
|
2317
|
+
): VarNode<"mat4", ConstNode<"mat4", Matrix4>>;
|
|
2318
|
+
|
|
2319
|
+
// The second branch does not apply because `cacheMap` is `null`
|
|
2320
|
+
|
|
2321
|
+
// The third branch will be triggered if there is a single parameter
|
|
2322
|
+
// ConstNode
|
|
2323
|
+
(value: Matrix4): VarNode<"mat4", ConstNode<"mat4", Matrix4>>;
|
|
2324
|
+
// ConvertNode
|
|
2325
|
+
(node: Node<"mat4">): VarNode<"mat4", ConvertNode<"mat4">>;
|
|
2326
|
+
|
|
2327
|
+
// The fall-through branch will be triggered if there is more than one parameter, and one of the parameters is an
|
|
2328
|
+
// object
|
|
1954
2329
|
(
|
|
1955
|
-
|
|
1956
|
-
|
|
1957
|
-
|
|
1958
|
-
|
|
1959
|
-
):
|
|
1960
|
-
(
|
|
2330
|
+
n1: Node<"vec4"> | Vector4,
|
|
2331
|
+
n2: Node<"vec4"> | Vector4,
|
|
2332
|
+
n3: Node<"vec4"> | Vector4,
|
|
2333
|
+
n4: Node<"vec4"> | Vector4,
|
|
2334
|
+
): VarNode<"mat4", JoinNode<"mat4">>;
|
|
2335
|
+
(
|
|
2336
|
+
n11: Node<"float"> | number,
|
|
2337
|
+
n12: Node<"float"> | number,
|
|
2338
|
+
n13: Node<"float"> | number,
|
|
2339
|
+
n14: Node<"float"> | number,
|
|
2340
|
+
n21: Node<"float"> | number,
|
|
2341
|
+
n22: Node<"float"> | number,
|
|
2342
|
+
n23: Node<"float"> | number,
|
|
2343
|
+
n24: Node<"float"> | number,
|
|
2344
|
+
n31: Node<"float"> | number,
|
|
2345
|
+
n32: Node<"float"> | number,
|
|
2346
|
+
n33: Node<"float"> | number,
|
|
2347
|
+
n34: Node<"float"> | number,
|
|
2348
|
+
n41: Node<"float"> | number,
|
|
2349
|
+
n42: Node<"float"> | number,
|
|
2350
|
+
n43: Node<"float"> | number,
|
|
2351
|
+
n44: Node<"float"> | number,
|
|
2352
|
+
): VarNode<"mat4", JoinNode<"mat4">>;
|
|
1961
2353
|
}
|
|
1962
2354
|
|
|
1963
2355
|
export const mat4: Mat4Function;
|
|
1964
2356
|
|
|
1965
|
-
export const string:
|
|
1966
|
-
export const arrayBuffer:
|
|
2357
|
+
export const string: unknown;
|
|
2358
|
+
export const arrayBuffer: unknown;
|
|
1967
2359
|
|
|
1968
2360
|
declare module "../core/Node.js" {
|
|
1969
|
-
interface
|
|
1970
|
-
toColor: () =>
|
|
1971
|
-
|
|
1972
|
-
|
|
1973
|
-
|
|
1974
|
-
|
|
1975
|
-
|
|
1976
|
-
|
|
1977
|
-
|
|
1978
|
-
|
|
1979
|
-
|
|
1980
|
-
|
|
1981
|
-
|
|
1982
|
-
|
|
1983
|
-
|
|
1984
|
-
|
|
1985
|
-
|
|
1986
|
-
|
|
1987
|
-
|
|
1988
|
-
|
|
1989
|
-
|
|
2361
|
+
interface ColorExtensions {
|
|
2362
|
+
toColor: () => VarNode<"color", ConvertNode<"color">>;
|
|
2363
|
+
}
|
|
2364
|
+
|
|
2365
|
+
interface NumOrBoolExtensions<TNumOrBool extends NumOrBoolType> {
|
|
2366
|
+
toFloat: () => VarNode<"float", ConvertNode<"float">>;
|
|
2367
|
+
toInt: () => VarNode<"int", ConvertNode<"int">>;
|
|
2368
|
+
toUint: () => VarNode<"uint", ConvertNode<"uint">>;
|
|
2369
|
+
toBool: () => VarNode<"bool", ConvertNode<"bool">>;
|
|
2370
|
+
}
|
|
2371
|
+
|
|
2372
|
+
interface NumOrBoolVec2Extensions<TNumOrBool extends NumOrBoolType> {
|
|
2373
|
+
toVec2: () => VarNode<"vec2", ConvertNode<"vec2">>;
|
|
2374
|
+
toIVec2: () => VarNode<"ivec2", ConvertNode<"ivec2">>;
|
|
2375
|
+
toUVec2: () => VarNode<"uvec2", ConvertNode<"uvec2">>;
|
|
2376
|
+
toBVec2: () => VarNode<"bvec2", ConvertNode<"bvec2">>;
|
|
2377
|
+
}
|
|
2378
|
+
|
|
2379
|
+
interface NumOrBoolVec3Extensions<TNumOrBool extends NumOrBoolType> {
|
|
2380
|
+
toColor: () => VarNode<"color", ConvertNode<"color">>;
|
|
2381
|
+
toVec3: () => VarNode<"vec3", ConvertNode<"vec3">>;
|
|
2382
|
+
toIVec3: () => VarNode<"ivec3", ConvertNode<"ivec3">>;
|
|
2383
|
+
toUVec3: () => VarNode<"uvec3", ConvertNode<"uvec3">>;
|
|
2384
|
+
toBVec3: () => VarNode<"bvec3", ConvertNode<"bvec3">>;
|
|
2385
|
+
}
|
|
2386
|
+
|
|
2387
|
+
interface NumOrBoolVec4Extensions<TNumOrBool extends NumOrBoolType> {
|
|
2388
|
+
toVec4: () => VarNode<"vec4", ConvertNode<"vec4">>;
|
|
2389
|
+
toIVec4: () => VarNode<"ivec4", ConvertNode<"ivec4">>;
|
|
2390
|
+
toUVec4: () => VarNode<"uvec4", ConvertNode<"uvec4">>;
|
|
2391
|
+
toBVec4: () => VarNode<"bvec4", ConvertNode<"bvec4">>;
|
|
2392
|
+
}
|
|
2393
|
+
|
|
2394
|
+
interface MatExtensions<TMat extends MatType> {
|
|
2395
|
+
toMat2: () => VarNode<"mat2", ConvertNode<"mat2">>;
|
|
2396
|
+
toMat3: () => VarNode<"mat3", ConvertNode<"mat3">>;
|
|
2397
|
+
toMat4: () => VarNode<"mat4", ConvertNode<"mat4">>;
|
|
1990
2398
|
}
|
|
1991
2399
|
}
|
|
1992
2400
|
|