@types/three 0.184.0 → 0.185.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 +1 -1
- three/examples/jsm/Addons.d.ts +2 -0
- three/examples/jsm/controls/FirstPersonControls.d.ts +9 -0
- three/examples/jsm/controls/OrbitControls.d.ts +2 -2
- three/examples/jsm/controls/TransformControls.d.ts +32 -1
- three/examples/jsm/csm/CSMFrustum.d.ts +73 -13
- three/examples/jsm/exporters/DRACOExporter.d.ts +1 -1
- three/examples/jsm/exporters/GLTFExporter.d.ts +2 -2
- three/examples/jsm/exporters/PLYExporter.d.ts +5 -4
- three/examples/jsm/exporters/USDZExporter.d.ts +5 -1
- three/examples/jsm/generators/CityGenerator.d.ts +75 -0
- three/examples/jsm/generators/ForestGenerator.d.ts +79 -0
- three/examples/jsm/generators/TerrainGenerator.d.ts +67 -0
- three/examples/jsm/generators/TreeGenerator.d.ts +97 -0
- three/examples/jsm/generators/city/SidewalkGenerator.d.ts +40 -0
- three/examples/jsm/generators/city/SkyscraperGenerator.d.ts +83 -0
- three/examples/jsm/geometries/LoftGeometry.d.ts +83 -0
- three/examples/jsm/inspector/tabs/Parameters.d.ts +5 -2
- three/examples/jsm/lighting/ClusteredLighting.d.ts +45 -0
- three/examples/jsm/lighting/LightProbeGrid.d.ts +131 -13
- three/examples/jsm/loaders/DRACOLoader.d.ts +20 -6
- three/examples/jsm/loaders/EXRLoader.d.ts +2 -12
- three/examples/jsm/loaders/GLTFLoader.d.ts +1 -1
- three/examples/jsm/loaders/HDRLoader.d.ts +2 -12
- three/examples/jsm/loaders/KTX2Loader.d.ts +1 -1
- three/examples/jsm/loaders/LWOLoader.d.ts +6 -0
- three/examples/jsm/loaders/RGBELoader.d.ts +1 -7
- three/examples/jsm/loaders/SVGLoader.d.ts +9 -6
- three/examples/jsm/loaders/TGALoader.d.ts +2 -2
- three/examples/jsm/loaders/TIFFLoader.d.ts +2 -11
- three/examples/jsm/loaders/USDLoader.d.ts +6 -1
- three/examples/jsm/misc/TileCreasedNormalsPlugin.d.ts +49 -0
- three/examples/jsm/objects/MarchingCubes.d.ts +2 -2
- three/examples/jsm/objects/Reflector.d.ts +38 -5
- three/examples/jsm/objects/SkyMesh.d.ts +1 -1
- three/examples/jsm/physics/RapierPhysics.d.ts +1 -0
- three/examples/jsm/tsl/display/BloomNode.d.ts +23 -6
- three/examples/jsm/tsl/display/ImportanceSampledEnvironment.d.ts +84 -0
- three/examples/jsm/tsl/display/RecurrentDenoiseNode.d.ts +89 -0
- three/examples/jsm/tsl/display/SSAAPassNode.d.ts +0 -2
- three/examples/jsm/tsl/display/SSGINode.d.ts +4 -1
- three/examples/jsm/tsl/display/SSRNode.d.ts +303 -30
- three/examples/jsm/tsl/display/TRAANode.d.ts +1 -1
- three/examples/jsm/tsl/display/TemporalReprojectNode.d.ts +64 -0
- three/examples/jsm/tsl/lighting/ClusteredLightsNode.d.ts +54 -0
- three/examples/jsm/tsl/math/curlNoise.d.ts +38 -0
- three/examples/jsm/tsl/utils/GroundedSkybox.d.ts +17 -0
- three/examples/jsm/tsl/utils/RNoise.d.ts +12 -0
- three/examples/jsm/tsl/utils/SpecularHelpers.d.ts +20 -0
- three/examples/jsm/webxr/WebGLXRFallback.d.ts +14 -0
- three/package.json +3 -3
- three/src/Three.TSL.d.ts +10 -3
- three/src/Three.WebGPU.Nodes.d.ts +2 -2
- three/src/Three.WebGPU.d.ts +5 -3
- three/src/animation/AnimationClip.d.ts +0 -10
- three/src/cameras/Camera.d.ts +1 -1
- three/src/core/InterleavedBuffer.d.ts +1 -1
- three/src/core/Object3D.d.ts +8 -4
- three/src/core/RenderTarget.d.ts +11 -0
- three/src/core/Timer.d.ts +1 -1
- three/src/core/UniformsGroup.d.ts +1 -1
- three/src/extras/Controls.d.ts +6 -5
- three/src/extras/core/ShapePath.d.ts +61 -65
- three/src/loaders/DataTextureLoader.d.ts +37 -3
- three/src/loaders/MaterialLoader.d.ts +8 -0
- three/src/materials/LineBasicMaterial.d.ts +5 -0
- three/src/materials/Material.d.ts +9 -1
- three/src/materials/MeshBasicMaterial.d.ts +30 -0
- three/src/materials/MeshDepthMaterial.d.ts +13 -0
- three/src/materials/MeshDistanceMaterial.d.ts +13 -0
- three/src/materials/MeshLambertMaterial.d.ts +50 -1
- three/src/materials/MeshMatcapMaterial.d.ts +31 -1
- three/src/materials/MeshNormalMaterial.d.ts +11 -1
- three/src/materials/MeshPhongMaterial.d.ts +50 -1
- three/src/materials/MeshPhysicalMaterial.d.ts +50 -0
- three/src/materials/MeshStandardMaterial.d.ts +53 -1
- three/src/materials/MeshToonMaterial.d.ts +43 -1
- three/src/materials/PointsMaterial.d.ts +9 -0
- three/src/materials/ShaderMaterial.d.ts +2 -0
- three/src/materials/SpriteMaterial.d.ts +9 -0
- three/src/materials/nodes/Line2NodeMaterial.d.ts +18 -13
- three/src/materials/nodes/NodeMaterial.d.ts +33 -13
- three/src/materials/nodes/manager/NodeMaterialObserver.d.ts +0 -84
- three/src/math/Box2.d.ts +3 -3
- three/src/math/Box3.d.ts +255 -19
- three/src/math/Color.d.ts +10 -10
- three/src/math/FrustumArray.d.ts +75 -16
- three/src/math/Interpolant.d.ts +111 -8
- three/src/math/Matrix2.d.ts +1 -1
- three/src/math/Matrix3.d.ts +10 -1
- three/src/math/Matrix4.d.ts +329 -105
- three/src/math/Vector2.d.ts +1 -2
- three/src/math/Vector3.d.ts +3 -4
- three/src/math/Vector4.d.ts +1 -2
- three/src/math/interpolants/BezierInterpolant.d.ts +19 -3
- three/src/math/interpolants/CubicInterpolant.d.ts +18 -3
- three/src/math/interpolants/DiscreteInterpolant.d.ts +8 -3
- three/src/math/interpolants/LinearInterpolant.d.ts +7 -3
- three/src/math/interpolants/QuaternionLinearInterpolant.d.ts +7 -3
- three/src/nodes/Nodes.d.ts +4 -13
- three/src/nodes/TSL.d.ts +7 -5
- three/src/nodes/accessors/Batch.d.ts +19 -0
- three/src/nodes/accessors/Instance.d.ts +34 -0
- three/src/nodes/accessors/MaterialNode.d.ts +86 -79
- three/src/nodes/accessors/Morph.d.ts +11 -0
- three/src/nodes/accessors/Skinning.d.ts +23 -0
- three/src/nodes/accessors/StorageBufferNode.d.ts +22 -23
- three/src/nodes/accessors/StorageTexture3DNode.d.ts +17 -0
- three/src/nodes/accessors/StorageTextureNode.d.ts +6 -4
- three/src/nodes/accessors/TextureNode.d.ts +15 -10
- three/src/nodes/core/ArrayNode.d.ts +16 -8
- three/src/nodes/core/ContextNode.d.ts +5 -6
- three/src/nodes/core/LightingModel.d.ts +2 -0
- three/src/nodes/core/Node.d.ts +50 -51
- three/src/nodes/core/NodeBuilder.d.ts +1 -133
- three/src/nodes/core/OverrideContextNode.d.ts +92 -0
- three/src/nodes/core/PropertyNode.d.ts +13 -2
- three/src/nodes/core/StructNode.d.ts +0 -2
- three/src/nodes/core/StructTypeNode.d.ts +5 -4
- three/src/nodes/core/UniformNode.d.ts +48 -9
- three/src/nodes/display/BlendModes.d.ts +72 -11
- three/src/nodes/display/FrontFacingNode.d.ts +62 -3
- three/src/nodes/display/PassNode.d.ts +0 -2
- three/src/nodes/display/PremultiplyAlphaFunctions.d.ts +37 -0
- three/src/nodes/gpgpu/AtomicFunctionNode.d.ts +53 -45
- three/src/nodes/lighting/LightingContextNode.d.ts +9 -2
- three/src/nodes/lighting/LightsNode.d.ts +4 -4
- three/src/nodes/math/MathNode.d.ts +358 -304
- three/src/nodes/math/OperatorNode.d.ts +253 -82
- three/src/nodes/tsl/TSLCore.d.ts +16 -9
- three/src/nodes/utils/ArrayElementNode.d.ts +5 -4
- three/src/nodes/utils/EquirectUV.d.ts +31 -1
- three/src/nodes/utils/Packing.d.ts +50 -3
- three/src/nodes/utils/RTTNode.d.ts +7 -12
- three/src/nodes/utils/Remap.d.ts +216 -29
- three/src/nodes/utils/SampleNode.d.ts +18 -8
- three/src/objects/BatchedMesh.d.ts +1 -1
- three/src/objects/InstancedMesh.d.ts +0 -8
- three/src/objects/Skeleton.d.ts +0 -2
- three/src/renderers/common/Backend.d.ts +0 -3
- three/src/renderers/common/CanvasTarget.d.ts +0 -49
- three/src/renderers/common/ClippingContext.d.ts +6 -1
- three/src/renderers/common/CubeRenderTarget.d.ts +2 -1
- three/src/renderers/common/Info.d.ts +26 -66
- three/src/renderers/common/InspectorBase.d.ts +0 -7
- three/src/renderers/common/Lighting.d.ts +49 -5
- three/src/renderers/common/Renderer.d.ts +34 -458
- three/src/renderers/common/RendererUtils.d.ts +1 -2
- three/src/renderers/common/TimestampQueryPool.d.ts +1 -1
- three/src/renderers/common/XRManager.d.ts +32 -299
- three/src/renderers/common/nodes/NodeLibrary.d.ts +0 -117
- three/src/renderers/webgl/WebGLPrograms.d.ts +2 -0
- three/src/renderers/webgl/WebGLRenderLists.d.ts +5 -1
- three/src/renderers/webgl/WebGLState.d.ts +2 -0
- three/src/renderers/webgl-fallback/WebGLBackend.d.ts +1 -1
- three/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.d.ts +0 -10
- three/src/renderers/webgpu/nodes/StandardNodeLibrary.d.ts +0 -1
- three/src/renderers/webgpu/nodes/WGSLNodeBuilder.d.ts +5 -121
- three/src/textures/CubeDepthTexture.d.ts +2 -3
- three/src/textures/DataTexture.d.ts +2 -1
- three/src/textures/DepthTexture.d.ts +5 -5
- three/examples/jsm/lighting/TiledLighting.d.ts +0 -9
- three/examples/jsm/tsl/display/AnamorphicNode.d.ts +0 -31
- three/examples/jsm/tsl/lighting/TiledLightsNode.d.ts +0 -22
- three/src/nodes/accessors/BatchNode.d.ts +0 -12
- three/src/nodes/accessors/InstanceNode.d.ts +0 -30
- three/src/nodes/accessors/InstancedMeshNode.d.ts +0 -10
- three/src/nodes/accessors/MorphNode.d.ts +0 -14
- three/src/nodes/accessors/SkinningNode.d.ts +0 -32
- three/src/renderers/common/Animation.d.ts +0 -102
- three/src/renderers/common/Attributes.d.ts +0 -59
- three/src/renderers/common/Background.d.ts +0 -47
- three/src/renderers/common/BindGroup.d.ts +0 -39
- three/src/renderers/common/Binding.d.ts +0 -50
- three/src/renderers/common/Bindings.d.ts +0 -132
- three/src/renderers/common/Buffer.d.ts +0 -90
- three/src/renderers/common/ChainMap.d.ts +0 -49
- three/src/renderers/common/Color4.d.ts +0 -55
- three/src/renderers/common/ComputePipeline.d.ts +0 -34
- three/src/renderers/common/DataMap.d.ts +0 -42
- three/src/renderers/common/Geometries.d.ts +0 -111
- three/src/renderers/common/Pipeline.d.ts +0 -29
- three/src/renderers/common/Pipelines.d.ts +0 -186
- three/src/renderers/common/ProgrammableStage.d.ts +0 -73
- three/src/renderers/common/RenderBundle.d.ts +0 -25
- three/src/renderers/common/RenderBundles.d.ts +0 -34
- three/src/renderers/common/RenderContext.d.ts +0 -235
- three/src/renderers/common/RenderContexts.d.ts +0 -47
- three/src/renderers/common/RenderList.d.ts +0 -226
- three/src/renderers/common/RenderLists.d.ts +0 -46
- three/src/renderers/common/RenderObject.d.ts +0 -448
- three/src/renderers/common/RenderObjectPipeline.d.ts +0 -33
- three/src/renderers/common/RenderObjects.d.ts +0 -151
- three/src/renderers/common/SampledTexture.d.ts +0 -28
- three/src/renderers/common/Sampler.d.ts +0 -19
- three/src/renderers/common/Textures.d.ts +0 -125
- three/src/renderers/common/Uniform.d.ts +0 -262
- three/src/renderers/common/UniformBuffer.d.ts +0 -20
- three/src/renderers/common/UniformsGroup.d.ts +0 -152
- three/src/renderers/common/XRRenderTarget.d.ts +0 -67
- three/src/renderers/common/nodes/NodeBuilderState.d.ts +0 -121
- three/src/renderers/common/nodes/NodeManager.d.ts +0 -309
- three/src/renderers/common/nodes/NodeSampledTexture.d.ts +0 -29
- three/src/renderers/common/nodes/NodeSampler.d.ts +0 -12
- three/src/renderers/common/nodes/NodeUniform.d.ts +0 -250
- three/src/renderers/common/nodes/NodeUniformsGroup.d.ts +0 -41
- three/src/renderers/webgpu/nodes/WGSLNodeFunction.d.ts +0 -6
- three/src/renderers/webgpu/nodes/WGSLNodeParser.d.ts +0 -6
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
import { Color } from "../../math/Color.js";
|
|
2
|
+
import { Matrix2 } from "../../math/Matrix2.js";
|
|
3
|
+
import { Matrix3 } from "../../math/Matrix3.js";
|
|
4
|
+
import { Matrix4 } from "../../math/Matrix4.js";
|
|
5
|
+
import { Vector2 } from "../../math/Vector2.js";
|
|
6
|
+
import { Vector3 } from "../../math/Vector3.js";
|
|
7
|
+
import { Vector4 } from "../../math/Vector4.js";
|
|
1
8
|
import Node, { IntegerType, NumType } from "../core/Node.js";
|
|
2
9
|
import TempNode from "../core/TempNode.js";
|
|
3
10
|
|
|
@@ -32,9 +39,27 @@ export default class OperatorNode extends TempNode {
|
|
|
32
39
|
constructor(op: OperatorNodeOp, ...params: [Node, Node, ...Node[]]);
|
|
33
40
|
}
|
|
34
41
|
|
|
35
|
-
type
|
|
36
|
-
|
|
37
|
-
type
|
|
42
|
+
type FloatOrNumber = Node<"float"> | number;
|
|
43
|
+
|
|
44
|
+
type AnyNumber = Node<"float"> | Node<"int"> | Node<"uint"> | number;
|
|
45
|
+
|
|
46
|
+
type Vec2 = Node<"vec2"> | Vector2;
|
|
47
|
+
type Vec3 = Node<"vec3"> | Vector3 | Node<"color"> | Color;
|
|
48
|
+
type Vec4 = Node<"vec4"> | Vector4;
|
|
49
|
+
|
|
50
|
+
type Vec2OrFloat = Vec2 | FloatOrNumber;
|
|
51
|
+
type Vec3OrFloat = Vec3 | FloatOrNumber;
|
|
52
|
+
type Vec4OrFloat = Vec4 | FloatOrNumber;
|
|
53
|
+
|
|
54
|
+
type Vec2OrLess = Vec2;
|
|
55
|
+
type Vec3OrLess = Vec2OrLess | Vec3;
|
|
56
|
+
type Vec4OrLess = Vec3OrLess | Vec4;
|
|
57
|
+
|
|
58
|
+
type Mat2 = Node<"mat2"> | Matrix2;
|
|
59
|
+
type Mat3 = Node<"mat3"> | Matrix3;
|
|
60
|
+
type Mat4 = Node<"mat4"> | Matrix4;
|
|
61
|
+
|
|
62
|
+
type Bool = Node<"bool"> | boolean;
|
|
38
63
|
|
|
39
64
|
interface NumberToVec {
|
|
40
65
|
float: "vec";
|
|
@@ -46,122 +71,221 @@ type NumberToVec2<TNum extends NumType> = `${NumberToVec[TNum]}2`;
|
|
|
46
71
|
type NumberToVec3<TNum extends NumType> = `${NumberToVec[TNum]}3`;
|
|
47
72
|
type NumberToVec4<TNum extends NumType> = `${NumberToVec[TNum]}4`;
|
|
48
73
|
|
|
49
|
-
type Number<TNum extends NumType> =
|
|
74
|
+
type Number<TNum extends NumType> = Node<TNum> | number;
|
|
50
75
|
type Vec2OrLessOrNumber<TNum extends NumType> = Number<TNum> | Node<NumberToVec2<TNum>>;
|
|
51
76
|
type Vec3OrLessOrNumber<TNum extends NumType> = Vec2OrLessOrNumber<TNum> | Node<NumberToVec3<TNum>>;
|
|
52
77
|
type Vec4OrLessOrNumber<TNum extends NumType> = Vec3OrLessOrNumber<TNum> | Node<NumberToVec4<TNum>>;
|
|
53
78
|
|
|
54
|
-
|
|
79
|
+
interface NodeParameterForNumType {
|
|
80
|
+
float: Node<"float"> | Node<"int"> | Node<"uint">;
|
|
81
|
+
int: Node<"int">;
|
|
82
|
+
uint: Node<"uint">;
|
|
83
|
+
}
|
|
84
|
+
type NumberParameterForNumType<TNum extends NumType> = NodeParameterForNumType[TNum] | number;
|
|
85
|
+
|
|
86
|
+
interface Vec2NodeParameterForNumType {
|
|
87
|
+
float: Node<"vec2"> | Node<"ivec2"> | Node<"uvec2">;
|
|
88
|
+
int: Node<"ivec2">;
|
|
89
|
+
uint: Node<"uvec2">;
|
|
90
|
+
}
|
|
91
|
+
type Vec2OrLessOrNumberParameterForNumType<TNum extends NumType> =
|
|
92
|
+
| Vec2NodeParameterForNumType[TNum]
|
|
93
|
+
| NumberParameterForNumType<TNum>;
|
|
94
|
+
|
|
95
|
+
interface Vec3NodeParameterForNumType {
|
|
96
|
+
float: Node<"vec3"> | Node<"ivec3"> | Node<"uvec3">;
|
|
97
|
+
int: Node<"ivec3">;
|
|
98
|
+
uint: Node<"uvec3">;
|
|
99
|
+
}
|
|
100
|
+
type Vec3OrLessOrNumberParameterForNumType<TNum extends NumType> =
|
|
101
|
+
| Vec3NodeParameterForNumType[TNum]
|
|
102
|
+
| Vec2OrLessOrNumberParameterForNumType<TNum>;
|
|
103
|
+
|
|
104
|
+
interface Vec4NodeParameterForNumType {
|
|
105
|
+
float: Node<"vec4"> | Node<"ivec4"> | Node<"uvec4">;
|
|
106
|
+
int: Node<"ivec4">;
|
|
107
|
+
uint: Node<"uvec4">;
|
|
108
|
+
}
|
|
109
|
+
type Vec4OrLessOrNumberParameterForNumType<TNum extends NumType> =
|
|
110
|
+
| Vec4NodeParameterForNumType[TNum]
|
|
111
|
+
| Vec3OrLessOrNumberParameterForNumType<TNum>;
|
|
55
112
|
|
|
56
113
|
// add/sub/mul/div
|
|
57
114
|
|
|
58
115
|
// add/sub/mul/div numbers and/or vecs
|
|
59
116
|
// Every parameter gets converted to the longest type
|
|
60
117
|
// If the parameters are the same length, it gets converted to the first type
|
|
61
|
-
// FIXME We handle the case of converting number types, but not converting between vectors of different number types
|
|
62
118
|
|
|
63
119
|
interface AddSubMulDivNumberVec<TNum extends NumType> {
|
|
64
|
-
(a: Number<TNum>, b:
|
|
120
|
+
(a: Number<TNum>, b: NumberParameterForNumType<TNum>, ...params: NumberParameterForNumType<TNum>[]): Node<TNum>;
|
|
65
121
|
(
|
|
66
122
|
a: Vec2OrLessOrNumber<TNum>,
|
|
67
|
-
b:
|
|
68
|
-
...params:
|
|
123
|
+
b: Vec2OrLessOrNumberParameterForNumType<TNum>,
|
|
124
|
+
...params: Vec2OrLessOrNumberParameterForNumType<TNum>[]
|
|
69
125
|
): Node<NumberToVec2<TNum>>;
|
|
70
126
|
(
|
|
71
127
|
a: Vec3OrLessOrNumber<TNum>,
|
|
72
|
-
b:
|
|
73
|
-
...params:
|
|
128
|
+
b: Vec3OrLessOrNumberParameterForNumType<TNum>,
|
|
129
|
+
...params: Vec3OrLessOrNumberParameterForNumType<TNum>[]
|
|
74
130
|
): Node<NumberToVec3<TNum>>;
|
|
75
131
|
(
|
|
76
132
|
a: Vec4OrLessOrNumber<TNum>,
|
|
77
|
-
b:
|
|
78
|
-
...params:
|
|
133
|
+
b: Vec4OrLessOrNumberParameterForNumType<TNum>,
|
|
134
|
+
...params: Vec4OrLessOrNumberParameterForNumType<TNum>[]
|
|
79
135
|
): Node<NumberToVec4<TNum>>;
|
|
80
136
|
}
|
|
81
137
|
|
|
82
138
|
interface AddSubMulDivNumberVecNumExtensions<TNum extends NumType> {
|
|
83
|
-
(b:
|
|
84
|
-
(
|
|
85
|
-
|
|
86
|
-
|
|
139
|
+
(b: NumberParameterForNumType<TNum>, ...params: NumberParameterForNumType<TNum>[]): Node<TNum>;
|
|
140
|
+
(
|
|
141
|
+
b: Vec2OrLessOrNumberParameterForNumType<TNum>,
|
|
142
|
+
...params: Vec2OrLessOrNumberParameterForNumType<TNum>[]
|
|
143
|
+
): Node<NumberToVec2<TNum>>;
|
|
144
|
+
(
|
|
145
|
+
b: Vec3OrLessOrNumberParameterForNumType<TNum>,
|
|
146
|
+
...params: Vec3OrLessOrNumberParameterForNumType<TNum>[]
|
|
147
|
+
): Node<NumberToVec3<TNum>>;
|
|
148
|
+
(
|
|
149
|
+
b: Vec4OrLessOrNumberParameterForNumType<TNum>,
|
|
150
|
+
...params: Vec4OrLessOrNumberParameterForNumType<TNum>[]
|
|
151
|
+
): Node<NumberToVec4<TNum>>;
|
|
87
152
|
}
|
|
88
153
|
|
|
89
|
-
interface AddSubMulDivNumberVecNumberAssignExtensions {
|
|
154
|
+
interface AddSubMulDivNumberVecNumberAssignExtensions<TNum extends NumType> {
|
|
90
155
|
(
|
|
91
|
-
b:
|
|
92
|
-
...params:
|
|
156
|
+
b: Vec4OrLessOrNumberParameterForNumType<TNum>,
|
|
157
|
+
...params: Vec4OrLessOrNumberParameterForNumType<TNum>[]
|
|
93
158
|
): this;
|
|
94
159
|
}
|
|
95
160
|
|
|
96
161
|
interface AddSubMulDivNumberVecVec2Extensions<TNum extends NumType> {
|
|
97
|
-
(
|
|
98
|
-
|
|
99
|
-
|
|
162
|
+
(
|
|
163
|
+
b: Vec2OrLessOrNumberParameterForNumType<TNum>,
|
|
164
|
+
...params: Vec2OrLessOrNumberParameterForNumType<TNum>[]
|
|
165
|
+
): Node<NumberToVec2<TNum>>;
|
|
166
|
+
(
|
|
167
|
+
b: Vec3OrLessOrNumberParameterForNumType<TNum>,
|
|
168
|
+
...params: Vec3OrLessOrNumberParameterForNumType<TNum>[]
|
|
169
|
+
): Node<NumberToVec3<TNum>>;
|
|
170
|
+
(
|
|
171
|
+
b: Vec4OrLessOrNumberParameterForNumType<TNum>,
|
|
172
|
+
...params: Vec4OrLessOrNumberParameterForNumType<TNum>[]
|
|
173
|
+
): Node<NumberToVec4<TNum>>;
|
|
100
174
|
}
|
|
101
175
|
|
|
102
176
|
interface AddSubMulDivNumberVecVec2AssignExtensions<TNum extends NumType> {
|
|
103
|
-
(b:
|
|
177
|
+
(b: Vec4OrLessOrNumberParameterForNumType<TNum>, ...params: Vec4OrLessOrNumberParameterForNumType<TNum>[]): this;
|
|
104
178
|
}
|
|
105
179
|
|
|
106
180
|
interface AddSubMulDivNumberVecVec3Extensions<TNum extends NumType> {
|
|
107
|
-
(
|
|
108
|
-
|
|
181
|
+
(
|
|
182
|
+
b: Vec3OrLessOrNumberParameterForNumType<TNum>,
|
|
183
|
+
...params: Vec3OrLessOrNumberParameterForNumType<TNum>[]
|
|
184
|
+
): Node<NumberToVec3<TNum>>;
|
|
185
|
+
(
|
|
186
|
+
b: Vec4OrLessOrNumberParameterForNumType<TNum>,
|
|
187
|
+
...params: Vec4OrLessOrNumberParameterForNumType<TNum>[]
|
|
188
|
+
): Node<NumberToVec4<TNum>>;
|
|
109
189
|
}
|
|
110
190
|
|
|
111
191
|
interface AddSubMulDivNumberVecVec3AssignExtensions<TNum extends NumType> {
|
|
112
|
-
(b:
|
|
192
|
+
(b: Vec4OrLessOrNumberParameterForNumType<TNum>, ...params: Vec4OrLessOrNumberParameterForNumType<TNum>[]): this;
|
|
113
193
|
}
|
|
114
194
|
|
|
115
195
|
interface AddSubMulDivNumberVecVec4Extensions<TNum extends NumType> {
|
|
116
|
-
(
|
|
196
|
+
(
|
|
197
|
+
b: Vec4OrLessOrNumberParameterForNumType<TNum>,
|
|
198
|
+
...params: Vec4OrLessOrNumberParameterForNumType<TNum>[]
|
|
199
|
+
): Node<NumberToVec4<TNum>>;
|
|
117
200
|
}
|
|
118
201
|
|
|
119
202
|
interface AddSubMulDivNumberVecVec4AssignExtensions<TNum extends NumType> {
|
|
120
|
-
(b:
|
|
203
|
+
(b: Vec4OrLessOrNumberParameterForNumType<TNum>, ...params: Vec4OrLessOrNumberParameterForNumType<TNum>[]): this;
|
|
121
204
|
}
|
|
122
205
|
|
|
123
206
|
// add/sub/mul mats
|
|
124
207
|
|
|
125
208
|
interface AddSubMulMat {
|
|
126
|
-
(a:
|
|
127
|
-
(a:
|
|
128
|
-
(a:
|
|
209
|
+
(a: Mat2, b: Mat2, ...params: Mat2[]): Node<"mat2">;
|
|
210
|
+
(a: Mat3, b: Mat3, ...params: Mat3[]): Node<"mat3">;
|
|
211
|
+
(a: Mat4, b: Mat4, ...params: Mat4[]): Node<"mat4">;
|
|
129
212
|
}
|
|
130
213
|
|
|
131
214
|
interface AddSubMulMat2Extensions {
|
|
132
|
-
(b:
|
|
215
|
+
(b: Mat2): Node<"mat2">;
|
|
133
216
|
}
|
|
134
217
|
|
|
135
218
|
interface AddSubMulMat2AssignExtensions {
|
|
136
|
-
(b:
|
|
219
|
+
(b: Mat2): this;
|
|
137
220
|
}
|
|
138
221
|
|
|
139
222
|
interface AddSubMulMat3Extensions {
|
|
140
|
-
(b:
|
|
223
|
+
(b: Mat3): Node<"mat3">;
|
|
141
224
|
}
|
|
142
225
|
|
|
143
226
|
interface AddSubMulMat3AssignExtensions {
|
|
144
|
-
(b:
|
|
227
|
+
(b: Mat3): this;
|
|
145
228
|
}
|
|
146
229
|
|
|
147
230
|
interface AddSubMulMat4Extensions {
|
|
148
|
-
(b:
|
|
231
|
+
(b: Mat4): Node<"mat4">;
|
|
149
232
|
}
|
|
150
233
|
|
|
151
234
|
interface AddSubMulMat4AssignExtensions {
|
|
152
|
-
(b:
|
|
235
|
+
(b: Mat3): this;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
// mut mats and nums
|
|
239
|
+
|
|
240
|
+
interface MulMatNum {
|
|
241
|
+
(a: Mat2, b: AnyNumber): Node<"mat2">;
|
|
242
|
+
(a: Mat3, b: AnyNumber): Node<"mat3">;
|
|
243
|
+
(a: Mat4, b: AnyNumber): Node<"mat4">;
|
|
244
|
+
(a: AnyNumber, b: Mat2): Node<"mat2">;
|
|
245
|
+
(a: AnyNumber, b: Mat3): Node<"mat3">;
|
|
246
|
+
(a: AnyNumber, b: Mat4): Node<"mat4">;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
interface MulMatNumNumExtensions {
|
|
250
|
+
(b: Mat2): Node<"mat2">;
|
|
251
|
+
(b: Mat3): Node<"mat3">;
|
|
252
|
+
(b: Mat4): Node<"mat4">;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
interface MulMatNumMat2Extensions {
|
|
256
|
+
(b: AnyNumber): Node<"mat2">;
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
interface MulMatNumMat3Extensions {
|
|
260
|
+
(b: AnyNumber): Node<"mat3">;
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
interface MulMatNumMat4Extensions {
|
|
264
|
+
(b: AnyNumber): Node<"mat4">;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
interface MulMatNumMat2AssignExtensions {
|
|
268
|
+
(b: AnyNumber): this;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
interface MulMatNumMat3AssignExtensions {
|
|
272
|
+
(b: AnyNumber): this;
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
interface MulMatNumMat4AssignExtensions {
|
|
276
|
+
(b: AnyNumber): this;
|
|
153
277
|
}
|
|
154
278
|
|
|
155
279
|
// mut mats and vecs
|
|
156
280
|
// The vec parameter gets converted to matrix length
|
|
157
281
|
|
|
158
282
|
interface MulMatVec {
|
|
159
|
-
(a:
|
|
160
|
-
(a:
|
|
161
|
-
(a:
|
|
162
|
-
(a: Vec4OrLess, b:
|
|
163
|
-
(a: Vec4OrLess, b:
|
|
164
|
-
(a: Vec4OrLess, b:
|
|
283
|
+
(a: Mat2, b: Vec4OrLess): Node<"vec2">;
|
|
284
|
+
(a: Mat3, b: Vec4OrLess): Node<"vec3">;
|
|
285
|
+
(a: Mat4, b: Vec4OrLess): Node<"vec4">;
|
|
286
|
+
(a: Vec4OrLess, b: Mat2): Node<"vec2">;
|
|
287
|
+
(a: Vec4OrLess, b: Mat3): Node<"vec3">;
|
|
288
|
+
(a: Vec4OrLess, b: Mat4): Node<"vec4">;
|
|
165
289
|
}
|
|
166
290
|
|
|
167
291
|
interface MulVecMatMat2Extensions {
|
|
@@ -177,9 +301,9 @@ interface MulVecMatMat4Extensions {
|
|
|
177
301
|
}
|
|
178
302
|
|
|
179
303
|
interface MulVecMatVecExtensions {
|
|
180
|
-
(b:
|
|
181
|
-
(b:
|
|
182
|
-
(b:
|
|
304
|
+
(b: Mat2): Node<"vec2">;
|
|
305
|
+
(b: Mat3): Node<"vec3">;
|
|
306
|
+
(b: Mat4): Node<"vec4">;
|
|
183
307
|
}
|
|
184
308
|
|
|
185
309
|
// Exports
|
|
@@ -197,10 +321,16 @@ interface Mul
|
|
|
197
321
|
AddSubMulDivNumberVec<"int">,
|
|
198
322
|
AddSubMulDivNumberVec<"uint">,
|
|
199
323
|
AddSubMulMat,
|
|
324
|
+
MulMatNum,
|
|
200
325
|
MulMatVec
|
|
201
326
|
{
|
|
202
327
|
}
|
|
203
328
|
|
|
329
|
+
interface MulNumExtension<TNum extends NumType>
|
|
330
|
+
extends AddSubMulDivNumberVecNumExtensions<TNum>, MulMatNumNumExtensions
|
|
331
|
+
{
|
|
332
|
+
}
|
|
333
|
+
|
|
204
334
|
interface MulVec2Extensions<TNum extends NumType>
|
|
205
335
|
extends AddSubMulDivNumberVecVec2Extensions<TNum>, MulVecMatVecExtensions
|
|
206
336
|
{
|
|
@@ -216,13 +346,22 @@ interface MulVec4Extensions<TNum extends NumType>
|
|
|
216
346
|
{
|
|
217
347
|
}
|
|
218
348
|
|
|
219
|
-
interface MulMat2Extensions extends AddSubMulMat2Extensions, MulVecMatMat2Extensions {
|
|
349
|
+
interface MulMat2Extensions extends AddSubMulMat2Extensions, MulMatNumMat2Extensions, MulVecMatMat2Extensions {
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
interface MulMat3Extensions extends AddSubMulMat3Extensions, MulMatNumMat3Extensions, MulVecMatMat3Extensions {
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
interface MulMat4Extensions extends AddSubMulMat4Extensions, MulMatNumMat4Extensions, MulVecMatMat4Extensions {
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
interface MulMat2AssignExtensions extends AddSubMulMat2AssignExtensions, MulMatNumMat2AssignExtensions {
|
|
220
359
|
}
|
|
221
360
|
|
|
222
|
-
interface
|
|
361
|
+
interface MulMat3AssignExtensions extends AddSubMulMat3AssignExtensions, MulMatNumMat3AssignExtensions {
|
|
223
362
|
}
|
|
224
363
|
|
|
225
|
-
interface
|
|
364
|
+
interface MulMat4AssignExtensions extends AddSubMulMat4AssignExtensions, MulMatNumMat4AssignExtensions {
|
|
226
365
|
}
|
|
227
366
|
|
|
228
367
|
export const mul: Mul;
|
|
@@ -239,13 +378,13 @@ declare module "../core/Node.js" {
|
|
|
239
378
|
interface NumExtensions<TNum extends NumType> {
|
|
240
379
|
add: AddSubMulDivNumberVecNumExtensions<TNum>;
|
|
241
380
|
sub: AddSubMulDivNumberVecNumExtensions<TNum>;
|
|
242
|
-
mul:
|
|
381
|
+
mul: MulNumExtension<TNum>;
|
|
243
382
|
div: AddSubMulDivNumberVecNumExtensions<TNum>;
|
|
244
383
|
|
|
245
|
-
addAssign: AddSubMulDivNumberVecNumberAssignExtensions
|
|
246
|
-
subAssign: AddSubMulDivNumberVecNumberAssignExtensions
|
|
247
|
-
mulAssign: AddSubMulDivNumberVecNumberAssignExtensions
|
|
248
|
-
divAssign: AddSubMulDivNumberVecNumberAssignExtensions
|
|
384
|
+
addAssign: AddSubMulDivNumberVecNumberAssignExtensions<TNum>;
|
|
385
|
+
subAssign: AddSubMulDivNumberVecNumberAssignExtensions<TNum>;
|
|
386
|
+
mulAssign: AddSubMulDivNumberVecNumberAssignExtensions<TNum>;
|
|
387
|
+
divAssign: AddSubMulDivNumberVecNumberAssignExtensions<TNum>;
|
|
249
388
|
}
|
|
250
389
|
|
|
251
390
|
interface Vec2Extensions {
|
|
@@ -313,7 +452,7 @@ declare module "../core/Node.js" {
|
|
|
313
452
|
|
|
314
453
|
addAssign: AddSubMulMat2AssignExtensions;
|
|
315
454
|
subAssign: AddSubMulMat2AssignExtensions;
|
|
316
|
-
mulAssign:
|
|
455
|
+
mulAssign: MulMat2AssignExtensions;
|
|
317
456
|
}
|
|
318
457
|
|
|
319
458
|
interface Mat3Extensions {
|
|
@@ -323,7 +462,7 @@ declare module "../core/Node.js" {
|
|
|
323
462
|
|
|
324
463
|
addAssign: AddSubMulMat3AssignExtensions;
|
|
325
464
|
subAssign: AddSubMulMat3AssignExtensions;
|
|
326
|
-
mulAssign:
|
|
465
|
+
mulAssign: MulMat3AssignExtensions;
|
|
327
466
|
}
|
|
328
467
|
|
|
329
468
|
interface Mat4Extensions {
|
|
@@ -333,7 +472,7 @@ declare module "../core/Node.js" {
|
|
|
333
472
|
|
|
334
473
|
addAssign: AddSubMulMat4AssignExtensions;
|
|
335
474
|
subAssign: AddSubMulMat4AssignExtensions;
|
|
336
|
-
mulAssign:
|
|
475
|
+
mulAssign: MulMat4AssignExtensions;
|
|
337
476
|
}
|
|
338
477
|
}
|
|
339
478
|
|
|
@@ -382,6 +521,10 @@ declare module "../core/Node.js" {
|
|
|
382
521
|
interface ComparisonOperator {
|
|
383
522
|
(a: Number<"float">, b: Number<"float">): Node<"bool">;
|
|
384
523
|
(a: Number<"int"> | Number<"uint">, b: Number<"int"> | Number<"uint">): Node<"bool">;
|
|
524
|
+
// TODO Accept non-float vectors
|
|
525
|
+
(a: Vec2OrFloat, b: Vec2OrFloat): Node<"bvec2">;
|
|
526
|
+
(a: Vec3OrFloat, b: Vec3OrFloat): Node<"bvec3">;
|
|
527
|
+
(a: Vec4OrFloat, b: Vec4OrFloat): Node<"bvec4">;
|
|
385
528
|
}
|
|
386
529
|
export const equal: ComparisonOperator;
|
|
387
530
|
export const notEqual: ComparisonOperator;
|
|
@@ -393,6 +536,15 @@ export const greaterThanEqual: ComparisonOperator;
|
|
|
393
536
|
interface ComparisonOperatorNumExtensions<TNum extends NumType> {
|
|
394
537
|
(b: Number<TNum>): Node<"bool">;
|
|
395
538
|
}
|
|
539
|
+
interface ComparisonOperatorVec2Extensions {
|
|
540
|
+
(b: Vec2OrFloat): Node<"bvec2">;
|
|
541
|
+
}
|
|
542
|
+
interface ComparisonOperatorVec3Extensions {
|
|
543
|
+
(b: Vec3OrFloat): Node<"bvec3">;
|
|
544
|
+
}
|
|
545
|
+
interface ComparisonOperatorVec4Extensions {
|
|
546
|
+
(b: Vec4OrFloat): Node<"bvec4">;
|
|
547
|
+
}
|
|
396
548
|
|
|
397
549
|
declare module "../core/Node.js" {
|
|
398
550
|
interface FloatExtensions {
|
|
@@ -421,29 +573,66 @@ declare module "../core/Node.js" {
|
|
|
421
573
|
lessThanEqual: (b: Number<"int"> | Number<"uint">) => Node<"bool">;
|
|
422
574
|
greaterThanEqual: (b: Number<"int"> | Number<"uint">) => Node<"bool">;
|
|
423
575
|
}
|
|
576
|
+
|
|
577
|
+
interface Vec2Extensions {
|
|
578
|
+
equal: ComparisonOperatorVec2Extensions;
|
|
579
|
+
notEqual: ComparisonOperatorVec2Extensions;
|
|
580
|
+
lessThan: ComparisonOperatorVec2Extensions;
|
|
581
|
+
greaterThan: ComparisonOperatorVec2Extensions;
|
|
582
|
+
lessThanEqual: ComparisonOperatorVec2Extensions;
|
|
583
|
+
greaterThanEqual: ComparisonOperatorVec2Extensions;
|
|
584
|
+
}
|
|
585
|
+
|
|
586
|
+
interface Vec3Extensions {
|
|
587
|
+
equal: ComparisonOperatorVec3Extensions;
|
|
588
|
+
notEqual: ComparisonOperatorVec3Extensions;
|
|
589
|
+
lessThan: ComparisonOperatorVec3Extensions;
|
|
590
|
+
greaterThan: ComparisonOperatorVec3Extensions;
|
|
591
|
+
lessThanEqual: ComparisonOperatorVec3Extensions;
|
|
592
|
+
greaterThanEqual: ComparisonOperatorVec3Extensions;
|
|
593
|
+
}
|
|
594
|
+
|
|
595
|
+
interface Vec4Extensions {
|
|
596
|
+
equal: ComparisonOperatorVec4Extensions;
|
|
597
|
+
notEqual: ComparisonOperatorVec4Extensions;
|
|
598
|
+
lessThan: ComparisonOperatorVec4Extensions;
|
|
599
|
+
greaterThan: ComparisonOperatorVec4Extensions;
|
|
600
|
+
lessThanEqual: ComparisonOperatorVec4Extensions;
|
|
601
|
+
greaterThanEqual: ComparisonOperatorVec4Extensions;
|
|
602
|
+
}
|
|
424
603
|
}
|
|
425
604
|
|
|
426
605
|
// and/or/not/xor
|
|
427
606
|
|
|
428
607
|
interface AndOr {
|
|
429
|
-
(a:
|
|
608
|
+
(a: Bool, b: Bool, ...params: Bool[]): Node<"bool">;
|
|
430
609
|
}
|
|
431
610
|
export const and: AndOr;
|
|
432
611
|
export const or: AndOr;
|
|
433
612
|
|
|
434
613
|
interface AndOrBoolExtensions {
|
|
435
|
-
(b:
|
|
614
|
+
(b: Bool, ...params: Bool[]): Node<"bool">;
|
|
436
615
|
}
|
|
437
616
|
|
|
438
|
-
|
|
439
|
-
|
|
617
|
+
interface NotFunction {
|
|
618
|
+
(a: Bool): Node<"bool">;
|
|
619
|
+
(a: Node<"bvec2">): Node<"bvec2">;
|
|
620
|
+
(a: Node<"bvec3">): Node<"bvec3">;
|
|
621
|
+
(a: Node<"bvec4">): Node<"bvec4">;
|
|
622
|
+
}
|
|
623
|
+
export const not: NotFunction;
|
|
624
|
+
|
|
625
|
+
export const xor: (a: Bool, b: Bool) => Node<"bool">;
|
|
440
626
|
|
|
441
627
|
declare module "../core/Node.js" {
|
|
442
628
|
interface BoolExtensions {
|
|
443
629
|
and: AndOrBoolExtensions;
|
|
444
630
|
or: AndOrBoolExtensions;
|
|
445
|
-
|
|
446
|
-
|
|
631
|
+
xor: (b: Bool) => Node<"bool">;
|
|
632
|
+
}
|
|
633
|
+
|
|
634
|
+
interface BoolOrVecExtensions<TNodeType> {
|
|
635
|
+
not: () => Node<TNodeType>;
|
|
447
636
|
}
|
|
448
637
|
}
|
|
449
638
|
|
|
@@ -517,22 +706,4 @@ declare module "../core/Node.js" {
|
|
|
517
706
|
}
|
|
518
707
|
}
|
|
519
708
|
|
|
520
|
-
/**
|
|
521
|
-
* @deprecated "modInt()" is deprecated. Use "mod( int( ... ) )" instead.
|
|
522
|
-
*/
|
|
523
|
-
export const modInt: Mod;
|
|
524
|
-
|
|
525
|
-
declare module "../core/Node.js" {
|
|
526
|
-
interface NumExtensions<TNum extends NumType> {
|
|
527
|
-
/**
|
|
528
|
-
* @deprecated "modInt()" is deprecated. Use "mod( int( ... ) )" instead.
|
|
529
|
-
*/
|
|
530
|
-
modInt: (b: Number<TNum>) => Node<TNum>;
|
|
531
|
-
/**
|
|
532
|
-
* @deprecated "modInt()" is deprecated. Use "mod( int( ... ) )" instead.
|
|
533
|
-
*/
|
|
534
|
-
modIntAssign: (b: Number<TNum>) => this;
|
|
535
|
-
}
|
|
536
|
-
}
|
|
537
|
-
|
|
538
709
|
export {};
|
three/src/nodes/tsl/TSLCore.d.ts
CHANGED
|
@@ -5,11 +5,13 @@ import { Matrix4 } from "../../math/Matrix4.js";
|
|
|
5
5
|
import { Vector2 } from "../../math/Vector2.js";
|
|
6
6
|
import { Vector3 } from "../../math/Vector3.js";
|
|
7
7
|
import { Vector4 } from "../../math/Vector4.js";
|
|
8
|
+
import ArrayNode from "../core/ArrayNode.js";
|
|
8
9
|
import ConstNode from "../core/ConstNode.js";
|
|
9
|
-
import Node, {
|
|
10
|
+
import Node, { NumOrBoolType } from "../core/Node.js";
|
|
10
11
|
import NodeBuilder from "../core/NodeBuilder.js";
|
|
11
12
|
import StackNode from "../core/StackNode.js";
|
|
12
13
|
import VarNode from "../core/VarNode.js";
|
|
14
|
+
import ArrayElementNode from "../utils/ArrayElementNode.js";
|
|
13
15
|
import ConvertNode from "../utils/ConvertNode.js";
|
|
14
16
|
import JoinNode from "../utils/JoinNode.js";
|
|
15
17
|
|
|
@@ -1743,6 +1745,8 @@ export function nodeProxyIntent<T, S extends GetPossibleScopes<T>>(
|
|
|
1743
1745
|
factor: unknown,
|
|
1744
1746
|
): (...params: ProxiedTuple<RemoveHeadAndTail<GetConstructorsByScope<T, S>>>) => ConstructedNode<T>;
|
|
1745
1747
|
|
|
1748
|
+
export const nodeProxyConstructor: unknown;
|
|
1749
|
+
|
|
1746
1750
|
interface FullLayout {
|
|
1747
1751
|
name: string;
|
|
1748
1752
|
type: string;
|
|
@@ -1977,7 +1981,9 @@ interface Vec3Function {
|
|
|
1977
1981
|
(value: Vector3): VarNode<"vec3", ConstNode<"vec3", Vector3>>;
|
|
1978
1982
|
// ConvertNode
|
|
1979
1983
|
(node: ScalarNode): VarNode<"vec3", ConvertNode<"vec3">>;
|
|
1980
|
-
(
|
|
1984
|
+
(
|
|
1985
|
+
node: Node<"vec3"> | Node<"ivec3"> | Node<"uvec3"> | Node<"bvec3"> | Node<"vec4">,
|
|
1986
|
+
): VarNode<"vec3", ConvertNode<"vec3">>;
|
|
1981
1987
|
|
|
1982
1988
|
// The fall-through branch will be triggered if there is more than one parameter, and one of the parameters is an
|
|
1983
1989
|
// object
|
|
@@ -2082,7 +2088,7 @@ interface Vec4Function {
|
|
|
2082
2088
|
(x: Scalar, y: Scalar, zw: Node<"vec2"> | Vector2): VarNode<"vec4", JoinNode<"vec4">>;
|
|
2083
2089
|
(xy: Node<"vec2"> | Vector2, zw: Node<"vec2"> | Vector2): VarNode<"vec4", JoinNode<"vec4">>;
|
|
2084
2090
|
(xy: Node<"vec2"> | Vector2, z: Scalar, w: Scalar): VarNode<"vec4", JoinNode<"vec4">>;
|
|
2085
|
-
(xyz: Node<"vec3"> | Node<"color"> | Vector3 | Color
|
|
2091
|
+
(xyz: Node<"vec3"> | Node<"color"> | Vector3 | Color | Node<"vec4">, w: Scalar): VarNode<"vec4", JoinNode<"vec4">>;
|
|
2086
2092
|
(x: Scalar, yzw: Node<"vec3"> | Node<"color"> | Vector3 | Color): VarNode<"vec4", JoinNode<"vec4">>;
|
|
2087
2093
|
}
|
|
2088
2094
|
|
|
@@ -2354,9 +2360,6 @@ interface Mat4Function {
|
|
|
2354
2360
|
|
|
2355
2361
|
export const mat4: Mat4Function;
|
|
2356
2362
|
|
|
2357
|
-
export const string: unknown;
|
|
2358
|
-
export const arrayBuffer: unknown;
|
|
2359
|
-
|
|
2360
2363
|
declare module "../core/Node.js" {
|
|
2361
2364
|
interface ColorExtensions {
|
|
2362
2365
|
toColor: () => VarNode<"color", ConvertNode<"color">>;
|
|
@@ -2398,14 +2401,18 @@ declare module "../core/Node.js" {
|
|
|
2398
2401
|
}
|
|
2399
2402
|
}
|
|
2400
2403
|
|
|
2401
|
-
export const element: (node:
|
|
2404
|
+
export const element: <TNodeType>(node: ArrayNode<TNodeType>, indexNode: Node | number) => ArrayElementNode<TNodeType>;
|
|
2402
2405
|
export const convert: (node: Node, types: string) => Node;
|
|
2403
2406
|
export const split: (node: Node, channels?: string) => Node;
|
|
2404
2407
|
|
|
2408
|
+
declare module "../core/ArrayNode.js" {
|
|
2409
|
+
interface ArrayNodeInterface<TNodeType> {
|
|
2410
|
+
element: (indexNode: Node | number) => ArrayElementNode<TNodeType>;
|
|
2411
|
+
}
|
|
2412
|
+
}
|
|
2413
|
+
|
|
2405
2414
|
declare module "../core/Node.js" {
|
|
2406
2415
|
interface NodeElements {
|
|
2407
|
-
element: (indexNode: Node) => Node;
|
|
2408
|
-
|
|
2409
2416
|
convert: (types: string) => Node;
|
|
2410
2417
|
}
|
|
2411
2418
|
}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
|
+
import ArrayNode from "../core/ArrayNode.js";
|
|
1
2
|
import Node from "../core/Node.js";
|
|
2
3
|
|
|
3
|
-
interface ArrayElementNodeInterface {
|
|
4
|
-
node:
|
|
4
|
+
interface ArrayElementNodeInterface<TNodeType> {
|
|
5
|
+
node: ArrayNode<TNodeType>;
|
|
5
6
|
indexNode: Node;
|
|
6
7
|
}
|
|
7
8
|
|
|
8
9
|
declare const ArrayElementNode: {
|
|
9
|
-
new<TNodeType>(node:
|
|
10
|
+
new<TNodeType>(node: ArrayNode<TNodeType>, indexNode: Node): ArrayElementNode<TNodeType>;
|
|
10
11
|
};
|
|
11
12
|
|
|
12
|
-
type ArrayElementNode<TNodeType> = Node<TNodeType> & ArrayElementNodeInterface
|
|
13
|
+
type ArrayElementNode<TNodeType> = Node<TNodeType> & ArrayElementNodeInterface<TNodeType>;
|
|
13
14
|
|
|
14
15
|
export default ArrayElementNode;
|
|
@@ -1,3 +1,33 @@
|
|
|
1
|
+
import { Vector2 } from "../../math/Vector2.js";
|
|
2
|
+
import { Vector3 } from "../../math/Vector3.js";
|
|
1
3
|
import Node from "../core/Node.js";
|
|
2
4
|
|
|
3
|
-
|
|
5
|
+
/**
|
|
6
|
+
* TSL function for creating an equirect uv node.
|
|
7
|
+
*
|
|
8
|
+
* Can be used to compute texture coordinates for projecting an
|
|
9
|
+
* equirectangular texture onto a mesh for using it as the scene's
|
|
10
|
+
* background.
|
|
11
|
+
*
|
|
12
|
+
* ```js
|
|
13
|
+
* scene.backgroundNode = texture( equirectTexture, equirectUV() );
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* @tsl
|
|
17
|
+
* @function
|
|
18
|
+
* @param {?Node<vec3>} [direction=positionWorldDirection] - A direction vector for sampling which is by default `positionWorldDirection`.
|
|
19
|
+
* @returns {Node<vec2>}
|
|
20
|
+
*/
|
|
21
|
+
export const equirectUV: (direction?: Node<"vec3"> | Vector3) => Node<"vec2">;
|
|
22
|
+
/**
|
|
23
|
+
* TSL function for creating an equirect direction node.
|
|
24
|
+
*
|
|
25
|
+
* Can be used to compute a direction vector from the given equirectangular
|
|
26
|
+
* UV coordinates.
|
|
27
|
+
*
|
|
28
|
+
* @tsl
|
|
29
|
+
* @function
|
|
30
|
+
* @param {?Node<vec2>} [uv=UV()] - The equirectangular UV coordinates.
|
|
31
|
+
* @returns {Node<vec3>} The computed direction vector.
|
|
32
|
+
*/
|
|
33
|
+
export const equirectDirection: (uv?: Node<"vec2"> | Vector2) => Node<"vec3">;
|