@types/three 0.182.0 → 0.183.1
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 +0 -3
- three/examples/jsm/controls/OrbitControls.d.ts +39 -0
- three/examples/jsm/effects/AnaglyphEffect.d.ts +4 -0
- three/examples/jsm/environments/ColorEnvironment.d.ts +9 -0
- three/examples/jsm/gpgpu/BitonicSort.d.ts +5 -5
- three/examples/jsm/helpers/AnimationPathHelper.d.ts +38 -0
- three/examples/jsm/helpers/ViewHelper.d.ts +4 -1
- three/examples/jsm/inspector/tabs/Parameters.d.ts +3 -0
- three/examples/jsm/inspector/ui/Item.d.ts +5 -0
- three/examples/jsm/libs/meshopt_decoder.module.d.ts +1 -1
- three/examples/jsm/lights/LightProbeGenerator.d.ts +11 -5
- three/examples/jsm/loaders/ColladaLoader.d.ts +27 -4
- three/examples/jsm/objects/SkyMesh.d.ts +11 -6
- three/examples/jsm/objects/Water2Mesh.d.ts +7 -7
- three/examples/jsm/objects/WaterMesh.d.ts +6 -6
- three/examples/jsm/postprocessing/EffectComposer.d.ts +9 -10
- three/examples/jsm/postprocessing/UnrealBloomPass.d.ts +4 -9
- three/examples/jsm/tsl/display/AnaglyphPassNode.d.ts +30 -0
- three/examples/jsm/tsl/display/AnamorphicNode.d.ts +1 -1
- three/examples/jsm/tsl/display/BilateralBlurNode.d.ts +27 -0
- three/examples/jsm/tsl/display/BloomNode.d.ts +5 -5
- three/examples/jsm/tsl/display/CRT.d.ts +22 -0
- three/examples/jsm/tsl/display/DenoiseNode.d.ts +5 -5
- three/examples/jsm/tsl/display/DotScreenNode.d.ts +4 -6
- three/examples/jsm/tsl/display/GTAONode.d.ts +8 -8
- three/examples/jsm/tsl/display/GaussianBlurNode.d.ts +4 -2
- three/examples/jsm/tsl/display/GodraysNode.d.ts +20 -0
- three/examples/jsm/tsl/display/LensflareNode.d.ts +6 -6
- three/examples/jsm/tsl/display/Lut3DNode.d.ts +5 -5
- three/examples/jsm/tsl/display/MotionBlur.d.ts +1 -1
- three/examples/jsm/tsl/display/OutlineNode.d.ts +6 -6
- three/examples/jsm/tsl/display/PixelationPassNode.d.ts +10 -10
- three/examples/jsm/tsl/display/RGBShiftNode.d.ts +2 -2
- three/examples/jsm/tsl/display/RetroPassNode.d.ts +17 -0
- three/examples/jsm/tsl/display/SSAAPassNode.d.ts +1 -1
- three/examples/jsm/tsl/display/SSGINode.d.ts +11 -11
- three/examples/jsm/tsl/display/SSRNode.d.ts +6 -6
- three/examples/jsm/tsl/display/SSSNode.d.ts +5 -5
- three/examples/jsm/tsl/display/Shape.d.ts +3 -0
- three/examples/jsm/tsl/display/TransitionNode.d.ts +3 -3
- three/examples/jsm/tsl/display/boxBlur.d.ts +1 -1
- three/examples/jsm/tsl/display/depthAwareBlend.d.ts +15 -0
- three/examples/jsm/tsl/display/hashBlur.d.ts +1 -1
- three/examples/jsm/tsl/math/Bayer.d.ts +2 -0
- three/examples/jsm/tsl/utils/Raymarching.d.ts +2 -2
- three/package.json +3 -3
- three/src/Three.Core.d.ts +1 -1
- three/src/Three.TSL.d.ts +6 -11
- three/src/Three.WebGPU.Nodes.d.ts +2 -0
- three/src/Three.WebGPU.d.ts +3 -0
- three/src/Three.d.ts +2 -2
- three/src/animation/AnimationClip.d.ts +1 -1
- three/src/animation/KeyframeTrack.d.ts +19 -5
- three/src/animation/PropertyMixer.d.ts +5 -4
- three/src/audio/Audio.d.ts +224 -157
- three/src/audio/AudioAnalyser.d.ts +32 -27
- three/src/audio/AudioContext.d.ts +12 -12
- three/src/audio/AudioListener.d.ts +44 -65
- three/src/audio/PositionalAudio.d.ts +69 -62
- three/src/cameras/ArrayCamera.d.ts +21 -24
- three/src/cameras/Camera.d.ts +14 -53
- three/src/cameras/CubeCamera.d.ts +32 -28
- three/src/cameras/OrthographicCamera.d.ts +70 -100
- three/src/cameras/PerspectiveCamera.d.ts +133 -146
- three/src/cameras/StereoCamera.d.ts +24 -30
- three/src/constants.d.ts +14 -2
- three/src/core/Clock.d.ts +3 -0
- three/src/core/Object3D.d.ts +31 -7
- three/src/geometries/TorusGeometry.d.ts +22 -3
- three/src/helpers/ArrowHelper.d.ts +34 -50
- three/src/helpers/AxesHelper.d.ts +22 -36
- three/src/helpers/Box3Helper.d.ts +14 -25
- three/src/helpers/BoxHelper.d.ts +28 -39
- three/src/helpers/CameraHelper.d.ts +31 -52
- three/src/helpers/DirectionalLightHelper.d.ts +32 -53
- three/src/helpers/GridHelper.d.ts +15 -29
- three/src/helpers/HemisphereLightHelper.d.ts +26 -49
- three/src/helpers/PlaneHelper.d.ts +21 -33
- three/src/helpers/PointLightHelper.d.ts +25 -50
- three/src/helpers/PolarGridHelper.d.ts +19 -32
- three/src/helpers/SkeletonHelper.d.ts +26 -50
- three/src/helpers/SpotLightHelper.d.ts +28 -55
- three/src/lights/AmbientLight.d.ts +15 -23
- three/src/lights/DirectionalLight.d.ts +40 -82
- three/src/lights/DirectionalLightShadow.d.ts +6 -61
- three/src/lights/HemisphereLight.d.ts +20 -47
- three/src/lights/Light.d.ts +18 -48
- three/src/lights/LightProbe.d.ts +24 -29
- three/src/lights/LightShadow.d.ts +107 -91
- three/src/lights/PointLight.d.ts +36 -77
- three/src/lights/PointLightShadow.d.ts +9 -6
- three/src/lights/RectAreaLight.d.ts +39 -59
- three/src/lights/SpotLight.d.ts +62 -116
- three/src/lights/SpotLightShadow.d.ts +17 -59
- three/src/lights/webgpu/IESSpotLight.d.ts +13 -1
- three/src/lights/webgpu/ProjectorLight.d.ts +9 -10
- three/src/materials/MeshLambertMaterial.d.ts +6 -0
- three/src/materials/MeshPhongMaterial.d.ts +6 -0
- three/src/materials/nodes/Line2NodeMaterial.d.ts +0 -6
- three/src/materials/nodes/LineBasicNodeMaterial.d.ts +0 -4
- three/src/materials/nodes/MeshBasicNodeMaterial.d.ts +1 -2
- three/src/materials/nodes/MeshLambertNodeMaterial.d.ts +0 -2
- three/src/materials/nodes/MeshNormalNodeMaterial.d.ts +0 -2
- three/src/materials/nodes/MeshSSSNodeMaterial.d.ts +5 -8
- three/src/materials/nodes/MeshToonNodeMaterial.d.ts +0 -4
- three/src/materials/nodes/NodeMaterial.d.ts +9 -3
- three/src/materials/nodes/SpriteNodeMaterial.d.ts +0 -3
- three/src/materials/nodes/VolumeNodeMaterial.d.ts +0 -2
- three/src/materials/nodes/manager/NodeMaterialObserver.d.ts +39 -93
- three/src/math/Color.d.ts +1 -0
- three/src/math/Vector3.d.ts +2 -2
- three/src/math/interpolants/BezierInterpolant.d.ts +7 -0
- three/src/nodes/Nodes.d.ts +55 -35
- three/src/nodes/TSL.d.ts +2 -5
- three/src/nodes/accessors/Arrays.d.ts +19 -10
- three/src/nodes/accessors/BufferAttributeNode.d.ts +99 -33
- three/src/nodes/accessors/BufferNode.d.ts +21 -7
- three/src/nodes/accessors/Camera.d.ts +10 -10
- three/src/nodes/accessors/CubeTextureNode.d.ts +1 -1
- three/src/nodes/accessors/InstanceNode.d.ts +6 -0
- three/src/nodes/accessors/Lights.d.ts +9 -6
- three/src/nodes/accessors/MaterialNode.d.ts +1 -3
- three/src/nodes/accessors/MaterialProperties.d.ts +4 -4
- three/src/nodes/accessors/MaterialReferenceNode.d.ts +1 -1
- three/src/nodes/accessors/ModelNode.d.ts +34 -17
- three/src/nodes/accessors/MorphNode.d.ts +1 -1
- three/src/nodes/accessors/Normal.d.ts +13 -15
- three/src/nodes/accessors/Object3DNode.d.ts +35 -16
- three/src/nodes/accessors/Position.d.ts +9 -7
- three/src/nodes/accessors/ReferenceNode.d.ts +16 -7
- three/src/nodes/accessors/ReflectVector.d.ts +4 -5
- three/src/nodes/accessors/RendererReferenceNode.d.ts +1 -1
- three/src/nodes/accessors/SceneProperties.d.ts +5 -0
- three/src/nodes/accessors/SkinningNode.d.ts +5 -3
- three/src/nodes/accessors/StorageBufferNode.d.ts +49 -22
- three/src/nodes/accessors/StorageTextureNode.d.ts +1 -1
- three/src/nodes/accessors/Tangent.d.ts +5 -7
- three/src/nodes/accessors/Texture3DNode.d.ts +1 -1
- three/src/nodes/accessors/TextureBicubic.d.ts +3 -2
- three/src/nodes/accessors/TextureNode.d.ts +19 -18
- three/src/nodes/accessors/UV.d.ts +1 -1
- three/src/nodes/accessors/UniformArrayNode.d.ts +10 -8
- three/src/nodes/accessors/UserDataNode.d.ts +1 -1
- three/src/nodes/accessors/VelocityNode.d.ts +3 -3
- three/src/nodes/accessors/VertexColorNode.d.ts +1 -1
- three/src/nodes/code/FunctionCallNode.d.ts +0 -1
- three/src/nodes/code/FunctionNode.d.ts +7 -3
- three/src/nodes/core/ArrayNode.d.ts +2 -3
- three/src/nodes/core/AttributeNode.d.ts +12 -6
- three/src/nodes/core/BypassNode.d.ts +2 -3
- three/src/nodes/core/ConstNode.d.ts +10 -3
- three/src/nodes/core/ContextNode.d.ts +23 -28
- three/src/nodes/core/IndexNode.d.ts +1 -1
- three/src/nodes/core/InputNode.d.ts +12 -4
- three/src/nodes/core/InspectorNode.d.ts +2 -3
- three/src/nodes/core/IsolateNode.d.ts +2 -7
- three/src/nodes/core/MRTNode.d.ts +7 -0
- three/src/nodes/core/Node.d.ts +258 -39
- three/src/nodes/core/NodeAttribute.d.ts +30 -5
- three/src/nodes/core/NodeBuilder.d.ts +5 -3
- three/src/nodes/core/NodeCache.d.ts +24 -48
- three/src/nodes/core/NodeError.d.ts +9 -0
- three/src/nodes/core/NodeParser.d.ts +2 -0
- three/src/nodes/core/NodeUniform.d.ts +33 -9
- three/src/nodes/core/NodeVar.d.ts +33 -5
- three/src/nodes/core/NodeVarying.d.ts +32 -4
- three/src/nodes/core/ParameterNode.d.ts +11 -4
- three/src/nodes/core/PropertyNode.d.ts +45 -35
- three/src/nodes/core/StackTrace.d.ts +9 -0
- three/src/nodes/core/StructType.d.ts +3 -1
- three/src/nodes/core/StructTypeNode.d.ts +19 -5
- three/src/nodes/core/TempNode.d.ts +9 -3
- three/src/nodes/core/UniformNode.d.ts +53 -15
- three/src/nodes/core/VarNode.d.ts +15 -14
- three/src/nodes/core/VaryingNode.d.ts +14 -19
- three/src/nodes/core/constants.d.ts +9 -4
- three/src/nodes/display/BlendModes.d.ts +7 -27
- three/src/nodes/display/ColorAdjustment.d.ts +8 -9
- three/src/nodes/display/ColorSpaceNode.d.ts +2 -8
- three/src/nodes/display/FrontFacingNode.d.ts +1 -1
- three/src/nodes/display/PassNode.d.ts +9 -5
- three/src/nodes/display/RenderOutputNode.d.ts +3 -7
- three/src/nodes/display/ScreenNode.d.ts +25 -17
- three/src/nodes/display/ToneMappingNode.d.ts +3 -7
- three/src/nodes/display/ViewportDepthNode.d.ts +11 -7
- three/src/nodes/display/ViewportTextureNode.d.ts +2 -0
- three/src/nodes/fog/Fog.d.ts +5 -3
- three/src/nodes/geometry/RangeNode.d.ts +51 -9
- three/src/nodes/gpgpu/AtomicFunctionNode.d.ts +2 -0
- three/src/nodes/gpgpu/BarrierNode.d.ts +2 -0
- three/src/nodes/gpgpu/ComputeNode.d.ts +2 -7
- three/src/nodes/lighting/AnalyticLightNode.d.ts +1 -1
- three/src/nodes/lighting/HemisphereLightNode.d.ts +3 -2
- three/src/nodes/lighting/LightProbeNode.d.ts +1 -1
- three/src/nodes/lighting/LightUtils.d.ts +1 -1
- three/src/nodes/lighting/LightingContextNode.d.ts +1 -1
- three/src/nodes/lighting/SpotLightNode.d.ts +0 -6
- three/src/nodes/materialx/MaterialXNodes.d.ts +11 -11
- three/src/nodes/math/BitcountNode.d.ts +2 -0
- three/src/nodes/math/ConditionalNode.d.ts +43 -22
- three/src/nodes/math/Hash.d.ts +1 -1
- three/src/nodes/math/MathNode.d.ts +603 -267
- three/src/nodes/math/MathUtils.d.ts +9 -5
- three/src/nodes/math/OperatorNode.d.ts +490 -227
- three/src/nodes/math/TriNoise3D.d.ts +3 -3
- three/src/nodes/pmrem/PMREMNode.d.ts +1 -1
- three/src/nodes/procedural/Checker.d.ts +1 -1
- three/src/nodes/tsl/TSLCore.d.ts +1683 -224
- three/src/nodes/utils/ArrayElementNode.d.ts +9 -4
- three/src/nodes/utils/DebugNode.d.ts +2 -5
- three/src/nodes/utils/Discard.d.ts +2 -3
- three/src/nodes/utils/FlipNode.d.ts +11 -0
- three/src/nodes/utils/LoopNode.d.ts +17 -13
- three/src/nodes/utils/MaxMipLevelNode.d.ts +1 -1
- three/src/nodes/utils/Oscillators.d.ts +4 -4
- three/src/nodes/utils/Packing.d.ts +3 -3
- three/src/nodes/utils/PostProcessingUtils.d.ts +5 -5
- three/src/nodes/utils/RemapNode.d.ts +33 -39
- three/src/nodes/utils/RotateNode.d.ts +17 -8
- three/src/nodes/utils/SplitNode.d.ts +1 -2
- three/src/nodes/utils/SpriteSheetUV.d.ts +7 -0
- three/src/nodes/utils/StorageArrayElementNode.d.ts +18 -9
- three/src/nodes/utils/Timer.d.ts +4 -4
- three/src/nodes/utils/TriplanarTextures.d.ts +2 -2
- three/src/nodes/utils/UVUtils.d.ts +6 -4
- three/src/objects/BatchedMesh.d.ts +6 -4
- three/src/objects/InstancedMesh.d.ts +32 -24
- three/src/renderers/WebGLRenderer.d.ts +4 -93
- three/src/renderers/common/Animation.d.ts +46 -9
- three/src/renderers/common/Attributes.d.ts +11 -13
- three/src/renderers/common/Backend.d.ts +0 -2
- three/src/renderers/common/Background.d.ts +17 -15
- three/src/renderers/common/BindGroup.d.ts +27 -13
- three/src/renderers/common/Binding.d.ts +15 -3
- three/src/renderers/common/Bindings.d.ts +41 -17
- three/src/renderers/common/BlendMode.d.ts +22 -0
- three/src/renderers/common/Buffer.d.ts +35 -11
- three/src/renderers/common/BufferUtils.d.ts +3 -4
- three/src/renderers/common/BundleGroup.d.ts +16 -6
- three/src/renderers/common/CanvasTarget.d.ts +76 -13
- three/src/renderers/common/ChainMap.d.ts +12 -9
- three/src/renderers/common/ClippingContext.d.ts +61 -10
- three/src/renderers/common/Color4.d.ts +10 -5
- three/src/renderers/common/ComputePipeline.d.ts +16 -2
- three/src/renderers/common/Constants.d.ts +5 -3
- three/src/renderers/common/CubeRenderTarget.d.ts +24 -7
- three/src/renderers/common/DataMap.d.ts +10 -18
- three/src/renderers/common/Geometries.d.ts +39 -20
- three/src/renderers/common/Info.d.ts +62 -9
- three/src/renderers/common/InspectorBase.d.ts +19 -7
- three/src/renderers/common/Lighting.d.ts +2 -6
- three/src/renderers/common/Pipeline.d.ts +14 -2
- three/src/renderers/common/Pipelines.d.ts +58 -60
- three/src/renderers/common/PostProcessing.d.ts +14 -17
- three/src/renderers/common/ProgrammableStage.d.ts +48 -8
- three/src/renderers/common/RenderBundle.d.ts +4 -2
- three/src/renderers/common/RenderBundles.d.ts +6 -3
- three/src/renderers/common/RenderContext.d.ts +175 -7
- three/src/renderers/common/RenderContexts.d.ts +20 -25
- three/src/renderers/common/RenderList.d.ts +77 -11
- three/src/renderers/common/RenderLists.d.ts +16 -4
- three/src/renderers/common/RenderObject.d.ts +223 -47
- three/src/renderers/common/RenderObjectPipeline.d.ts +33 -0
- three/src/renderers/common/RenderObjects.d.ts +55 -22
- three/src/renderers/common/RenderPipeline.d.ts +20 -17
- three/src/renderers/common/Renderer.d.ts +625 -207
- three/src/renderers/common/Textures.d.ts +24 -46
- three/src/renderers/common/TimestampQueryPool.d.ts +62 -8
- three/src/renderers/common/Uniform.d.ts +143 -58
- three/src/renderers/common/UniformBuffer.d.ts +7 -5
- three/src/renderers/common/UniformsGroup.d.ts +50 -35
- three/src/renderers/common/XRManager.d.ts +321 -83
- three/src/renderers/common/XRRenderTarget.d.ts +49 -6
- three/src/renderers/common/nodes/NodeBuilderState.d.ts +75 -15
- three/src/renderers/common/nodes/NodeLibrary.d.ts +25 -5
- three/src/renderers/common/nodes/{Nodes.d.ts → NodeManager.d.ts} +54 -73
- three/src/renderers/common/nodes/NodeUniform.d.ts +60 -70
- three/src/renderers/common/nodes/NodeUniformsGroup.d.ts +23 -4
- three/src/renderers/shaders/UniformsLib.d.ts +0 -3
- three/src/renderers/webgl/WebGLAttributes.d.ts +9 -7
- three/src/renderers/webgl/WebGLEnvironments.d.ts +8 -0
- three/src/renderers/webgl/WebGLExtensions.d.ts +1 -1
- three/src/renderers/webgl/WebGLIndexedBufferRenderer.d.ts +9 -5
- three/src/renderers/webgl/WebGLLights.d.ts +19 -18
- three/src/renderers/webgl/WebGLObjects.d.ts +15 -2
- three/src/renderers/webgl/WebGLProgram.d.ts +2 -10
- three/src/renderers/webgl/WebGLPrograms.d.ts +2 -2
- three/src/renderers/webgl/WebGLRenderLists.d.ts +1 -3
- three/src/renderers/webgl/WebGLShadowMap.d.ts +0 -5
- three/src/renderers/webgl/WebGLState.d.ts +305 -28
- three/src/renderers/webgl/WebGLTextures.d.ts +10 -9
- three/src/renderers/webgl/WebGLUniforms.d.ts +0 -7
- three/src/renderers/webgpu/WebGPUBackend.d.ts +0 -1
- three/src/renderers/webgpu/nodes/BasicNodeLibrary.d.ts +2 -4
- three/src/renderers/webgpu/nodes/StandardNodeLibrary.d.ts +15 -4
- three/src/renderers/webgpu/nodes/WGSLNodeBuilder.d.ts +1 -1
- three/src/scenes/Fog.d.ts +31 -37
- three/src/scenes/FogExp2.d.ts +26 -31
- three/src/scenes/Scene.d.ts +51 -65
- three/src/textures/CompressedArrayTexture.d.ts +1 -1
- three/src/textures/DataArrayTexture.d.ts +1 -1
- three/src/utils.d.ts +5 -0
- three/examples/jsm/materials/MeshGouraudMaterial.d.ts +0 -18
- three/examples/jsm/materials/MeshPostProcessingMaterial.d.ts +0 -13
- three/examples/jsm/shaders/GodRaysShader.d.ts +0 -44
- three/src/nodes/accessors/SceneNode.d.ts +0 -21
- three/src/nodes/code/ScriptableNode.d.ts +0 -21
- three/src/nodes/code/ScriptableValueNode.d.ts +0 -9
- three/src/nodes/display/PosterizeNode.d.ts +0 -13
- three/src/nodes/utils/SpriteSheetUVNode.d.ts +0 -15
- three/src/renderers/webgl/WebGLCubeMaps.d.ts +0 -8
- three/src/renderers/webgl/WebGLCubeUVMaps.d.ts +0 -9
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import Node from "../core/Node.js";
|
|
1
|
+
import Node, { IntegerType, NumType } from "../core/Node.js";
|
|
2
2
|
import TempNode from "../core/TempNode.js";
|
|
3
3
|
|
|
4
4
|
export type OperatorNodeOp =
|
|
@@ -32,244 +32,507 @@ export default class OperatorNode extends TempNode {
|
|
|
32
32
|
constructor(op: OperatorNodeOp, ...params: [Node, Node, ...Node[]]);
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
type
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
) =>
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
35
|
+
type Vec2OrLess = Node<"vec2">;
|
|
36
|
+
type Vec3OrLess = Vec2OrLess | Node<"vec3">;
|
|
37
|
+
type Vec4OrLess = Vec3OrLess | Node<"vec4">;
|
|
38
|
+
|
|
39
|
+
interface NumberToVec {
|
|
40
|
+
float: "vec";
|
|
41
|
+
int: "ivec";
|
|
42
|
+
uint: "uvec";
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
type NumberToVec2<TNum extends NumType> = `${NumberToVec[TNum]}2`;
|
|
46
|
+
type NumberToVec3<TNum extends NumType> = `${NumberToVec[TNum]}3`;
|
|
47
|
+
type NumberToVec4<TNum extends NumType> = `${NumberToVec[TNum]}4`;
|
|
48
|
+
|
|
49
|
+
type Number<TNum extends NumType> = AnyNumber; // FIXME Number<TNum> | number
|
|
50
|
+
type Vec2OrLessOrNumber<TNum extends NumType> = Number<TNum> | Node<NumberToVec2<TNum>>;
|
|
51
|
+
type Vec3OrLessOrNumber<TNum extends NumType> = Vec2OrLessOrNumber<TNum> | Node<NumberToVec3<TNum>>;
|
|
52
|
+
type Vec4OrLessOrNumber<TNum extends NumType> = Vec3OrLessOrNumber<TNum> | Node<NumberToVec4<TNum>>;
|
|
53
|
+
|
|
54
|
+
type AnyNumber = Node<"float"> | Node<"int"> | Node<"uint"> | number;
|
|
55
|
+
|
|
56
|
+
// add/sub/mul/div
|
|
57
|
+
|
|
58
|
+
// add/sub/mul/div numbers and/or vecs
|
|
59
|
+
// Every parameter gets converted to the longest type
|
|
60
|
+
// 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
|
+
|
|
63
|
+
interface AddSubMulDivNumberVec<TNum extends NumType> {
|
|
64
|
+
(a: Number<TNum>, b: AnyNumber, ...params: AnyNumber[]): Node<TNum>;
|
|
65
|
+
(
|
|
66
|
+
a: Vec2OrLessOrNumber<TNum>,
|
|
67
|
+
b: Vec2OrLessOrNumber<TNum>,
|
|
68
|
+
...params: Vec2OrLessOrNumber<TNum>[]
|
|
69
|
+
): Node<NumberToVec2<TNum>>;
|
|
70
|
+
(
|
|
71
|
+
a: Vec3OrLessOrNumber<TNum>,
|
|
72
|
+
b: Vec3OrLessOrNumber<TNum>,
|
|
73
|
+
...params: Vec3OrLessOrNumber<TNum>[]
|
|
74
|
+
): Node<NumberToVec3<TNum>>;
|
|
75
|
+
(
|
|
76
|
+
a: Vec4OrLessOrNumber<TNum>,
|
|
77
|
+
b: Vec4OrLessOrNumber<TNum>,
|
|
78
|
+
...params: Vec4OrLessOrNumber<TNum>[]
|
|
79
|
+
): Node<NumberToVec4<TNum>>;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
interface AddSubMulDivNumberVecNumExtensions<TNum extends NumType> {
|
|
83
|
+
(b: AnyNumber, ...params: AnyNumber[]): Node<TNum>;
|
|
84
|
+
(b: Vec2OrLessOrNumber<TNum>, ...params: Vec2OrLessOrNumber<TNum>[]): Node<NumberToVec2<TNum>>;
|
|
85
|
+
(b: Vec3OrLessOrNumber<TNum>, ...params: Vec3OrLessOrNumber<TNum>[]): Node<NumberToVec3<TNum>>;
|
|
86
|
+
(b: Vec4OrLessOrNumber<TNum>, ...params: Vec4OrLessOrNumber<TNum>[]): Node<NumberToVec4<TNum>>;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
interface AddSubMulDivNumberVecNumberAssignExtensions {
|
|
90
|
+
(
|
|
91
|
+
b: Vec4OrLessOrNumber<"float"> | Vec4OrLessOrNumber<"int"> | Vec4OrLessOrNumber<"uint">,
|
|
92
|
+
...params: (Vec4OrLessOrNumber<"float"> | Vec4OrLessOrNumber<"int"> | Vec4OrLessOrNumber<"uint">)[]
|
|
93
|
+
): this;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
interface AddSubMulDivNumberVecVec2Extensions<TNum extends NumType> {
|
|
97
|
+
(b: Vec2OrLessOrNumber<TNum>, ...params: Vec2OrLessOrNumber<TNum>[]): Node<NumberToVec2<TNum>>;
|
|
98
|
+
(b: Vec3OrLessOrNumber<TNum>, ...params: Vec3OrLessOrNumber<TNum>[]): Node<NumberToVec3<TNum>>;
|
|
99
|
+
(b: Vec4OrLessOrNumber<TNum>, ...params: Vec4OrLessOrNumber<TNum>[]): Node<NumberToVec4<TNum>>;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
interface AddSubMulDivNumberVecVec2AssignExtensions<TNum extends NumType> {
|
|
103
|
+
(b: Vec4OrLessOrNumber<TNum>, ...params: Vec4OrLessOrNumber<TNum>[]): this;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
interface AddSubMulDivNumberVecVec3Extensions<TNum extends NumType> {
|
|
107
|
+
(b: Vec3OrLessOrNumber<TNum>, ...params: Vec3OrLessOrNumber<TNum>[]): Node<NumberToVec3<TNum>>;
|
|
108
|
+
(b: Vec4OrLessOrNumber<TNum>, ...params: Vec4OrLessOrNumber<TNum>[]): Node<NumberToVec4<TNum>>;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
interface AddSubMulDivNumberVecVec3AssignExtensions<TNum extends NumType> {
|
|
112
|
+
(b: Vec4OrLessOrNumber<TNum>, ...params: Vec4OrLessOrNumber<TNum>[]): this;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
interface AddSubMulDivNumberVecVec4Extensions<TNum extends NumType> {
|
|
116
|
+
(b: Vec4OrLessOrNumber<TNum>, ...params: Vec4OrLessOrNumber<TNum>[]): Node<NumberToVec4<TNum>>;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
interface AddSubMulDivNumberVecVec4AssignExtensions<TNum extends NumType> {
|
|
120
|
+
(b: Vec4OrLessOrNumber<TNum>, ...params: Vec4OrLessOrNumber<TNum>[]): this;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
// add/sub/mul mats
|
|
124
|
+
|
|
125
|
+
interface AddSubMulMat {
|
|
126
|
+
(a: Node<"mat2">, b: Node<"mat2">): Node<"mat2">;
|
|
127
|
+
(a: Node<"mat3">, b: Node<"mat3">): Node<"mat3">;
|
|
128
|
+
(a: Node<"mat4">, b: Node<"mat4">): Node<"mat4">;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
interface AddSubMulMat2Extensions {
|
|
132
|
+
(b: Node<"mat2">): Node<"mat2">;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
interface AddSubMulMat2AssignExtensions {
|
|
136
|
+
(b: Node<"mat2">): this;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
interface AddSubMulMat3Extensions {
|
|
140
|
+
(b: Node<"mat3">): Node<"mat3">;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
interface AddSubMulMat3AssignExtensions {
|
|
144
|
+
(b: Node<"mat3">): this;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
interface AddSubMulMat4Extensions {
|
|
148
|
+
(b: Node<"mat4">): Node<"mat4">;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
interface AddSubMulMat4AssignExtensions {
|
|
152
|
+
(b: Node<"mat3">): this;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
// mut mats and vecs
|
|
156
|
+
// The vec parameter gets converted to matrix length
|
|
157
|
+
|
|
158
|
+
interface MulMatVec {
|
|
159
|
+
(a: Node<"mat2">, b: Vec4OrLess): Node<"vec2">;
|
|
160
|
+
(a: Node<"mat3">, b: Vec4OrLess): Node<"vec3">;
|
|
161
|
+
(a: Node<"mat4">, b: Vec4OrLess): Node<"vec4">;
|
|
162
|
+
(a: Vec4OrLess, b: Node<"mat2">): Node<"vec2">;
|
|
163
|
+
(a: Vec4OrLess, b: Node<"mat3">): Node<"vec3">;
|
|
164
|
+
(a: Vec4OrLess, b: Node<"mat4">): Node<"vec4">;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
interface MulVecMatMat2Extensions {
|
|
168
|
+
(b: Vec4OrLess): Node<"vec2">;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
interface MulVecMatMat3Extensions {
|
|
172
|
+
(b: Vec4OrLess): Node<"vec3">;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
interface MulVecMatMat4Extensions {
|
|
176
|
+
(b: Vec4OrLess): Node<"vec4">;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
interface MulVecMatVecExtensions {
|
|
180
|
+
(b: Node<"mat2">): Node<"vec2">;
|
|
181
|
+
(b: Node<"mat3">): Node<"vec3">;
|
|
182
|
+
(b: Node<"mat4">): Node<"vec4">;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
// Exports
|
|
186
|
+
|
|
187
|
+
interface AddSub
|
|
188
|
+
extends AddSubMulDivNumberVec<"float">, AddSubMulDivNumberVec<"int">, AddSubMulDivNumberVec<"uint">, AddSubMulMat
|
|
189
|
+
{}
|
|
190
|
+
|
|
191
|
+
export const add: AddSub;
|
|
192
|
+
export const sub: AddSub;
|
|
193
|
+
|
|
194
|
+
interface Mul
|
|
195
|
+
extends
|
|
196
|
+
AddSubMulDivNumberVec<"float">,
|
|
197
|
+
AddSubMulDivNumberVec<"int">,
|
|
198
|
+
AddSubMulDivNumberVec<"uint">,
|
|
199
|
+
AddSubMulMat,
|
|
200
|
+
MulMatVec
|
|
201
|
+
{
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
interface MulVec2Extensions<TNum extends NumType>
|
|
205
|
+
extends AddSubMulDivNumberVecVec2Extensions<TNum>, MulVecMatVecExtensions
|
|
206
|
+
{
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
interface MulVec3Extensions<TNum extends NumType>
|
|
210
|
+
extends AddSubMulDivNumberVecVec3Extensions<TNum>, MulVecMatVecExtensions
|
|
211
|
+
{
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
interface MulVec4Extensions<TNum extends NumType>
|
|
215
|
+
extends AddSubMulDivNumberVecVec4Extensions<TNum>, MulVecMatVecExtensions
|
|
216
|
+
{
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
interface MulMat2Extensions extends AddSubMulMat2Extensions, MulVecMatMat2Extensions {
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
interface MulMat3Extensions extends AddSubMulMat3Extensions, MulVecMatMat3Extensions {
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
interface MulMat4Extensions extends AddSubMulMat4Extensions, MulVecMatMat4Extensions {
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
export const mul: Mul;
|
|
229
|
+
|
|
230
|
+
interface Div extends AddSubMulDivNumberVec<"float">, AddSubMulDivNumberVec<"int">, AddSubMulDivNumberVec<"uint"> {
|
|
231
|
+
}
|
|
232
|
+
export const div: Div;
|
|
233
|
+
|
|
234
|
+
declare module "../core/Node.js" {
|
|
235
|
+
interface FloatExtensions {
|
|
236
|
+
mul: (b: Node<"color">) => Node<"vec3">;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
interface NumExtensions<TNum extends NumType> {
|
|
240
|
+
add: AddSubMulDivNumberVecNumExtensions<TNum>;
|
|
241
|
+
sub: AddSubMulDivNumberVecNumExtensions<TNum>;
|
|
242
|
+
mul: AddSubMulDivNumberVecNumExtensions<TNum>;
|
|
243
|
+
div: AddSubMulDivNumberVecNumExtensions<TNum>;
|
|
244
|
+
|
|
245
|
+
addAssign: AddSubMulDivNumberVecNumberAssignExtensions;
|
|
246
|
+
subAssign: AddSubMulDivNumberVecNumberAssignExtensions;
|
|
247
|
+
mulAssign: AddSubMulDivNumberVecNumberAssignExtensions;
|
|
248
|
+
divAssign: AddSubMulDivNumberVecNumberAssignExtensions;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
interface Vec2Extensions {
|
|
252
|
+
add: (b: Node<"color">) => Node<"vec3">;
|
|
253
|
+
mul: (b: Node<"color">) => Node<"vec3">;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
interface Vec3Extensions {
|
|
257
|
+
add: (b: Node<"color">) => Node<"vec3">;
|
|
258
|
+
mul: (b: Node<"color">) => Node<"vec3">;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
interface Vec4Extensions {
|
|
262
|
+
add: (b: Node<"color">) => Node<"vec4">;
|
|
263
|
+
mul: (b: Node<"color">) => Node<"vec4">;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
interface ColorExtensions {
|
|
267
|
+
add: (b: Number<"float">) => Node<"vec3">;
|
|
268
|
+
sub: (b: Number<"float">) => Node<"vec3">;
|
|
269
|
+
mul: (b: Number<"float">) => Node<"vec3">;
|
|
270
|
+
div: (b: Number<"float">) => Node<"vec3">;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
interface NumVec2Extensions<TNum extends NumType> {
|
|
274
|
+
add: AddSubMulDivNumberVecVec2Extensions<TNum>;
|
|
275
|
+
sub: AddSubMulDivNumberVecVec2Extensions<TNum>;
|
|
276
|
+
mul: MulVec2Extensions<TNum>;
|
|
277
|
+
div: AddSubMulDivNumberVecVec2Extensions<TNum>;
|
|
278
|
+
|
|
279
|
+
addAssign: AddSubMulDivNumberVecVec2AssignExtensions<TNum>;
|
|
280
|
+
subAssign: AddSubMulDivNumberVecVec2AssignExtensions<TNum>;
|
|
281
|
+
mulAssign: AddSubMulDivNumberVecVec2AssignExtensions<TNum>;
|
|
282
|
+
divAssign: AddSubMulDivNumberVecVec2AssignExtensions<TNum>;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
interface NumVec3Extensions<TNum extends NumType> {
|
|
286
|
+
add: AddSubMulDivNumberVecVec3Extensions<TNum>;
|
|
287
|
+
sub: AddSubMulDivNumberVecVec3Extensions<TNum>;
|
|
288
|
+
mul: MulVec3Extensions<TNum>;
|
|
289
|
+
div: AddSubMulDivNumberVecVec3Extensions<TNum>;
|
|
290
|
+
|
|
291
|
+
addAssign: AddSubMulDivNumberVecVec3AssignExtensions<TNum>;
|
|
292
|
+
subAssign: AddSubMulDivNumberVecVec3AssignExtensions<TNum>;
|
|
293
|
+
mulAssign: AddSubMulDivNumberVecVec3AssignExtensions<TNum>;
|
|
294
|
+
divAssign: AddSubMulDivNumberVecVec3AssignExtensions<TNum>;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
interface NumVec4Extensions<TNum extends NumType> {
|
|
298
|
+
add: AddSubMulDivNumberVecVec4Extensions<TNum>;
|
|
299
|
+
sub: AddSubMulDivNumberVecVec4Extensions<TNum>;
|
|
300
|
+
mul: MulVec4Extensions<TNum>;
|
|
301
|
+
div: AddSubMulDivNumberVecVec4Extensions<TNum>;
|
|
302
|
+
|
|
303
|
+
addAssign: AddSubMulDivNumberVecVec4AssignExtensions<TNum>;
|
|
304
|
+
subAssign: AddSubMulDivNumberVecVec4AssignExtensions<TNum>;
|
|
305
|
+
mulAssign: AddSubMulDivNumberVecVec4AssignExtensions<TNum>;
|
|
306
|
+
divAssign: AddSubMulDivNumberVecVec4AssignExtensions<TNum>;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
interface Mat2Extensions {
|
|
310
|
+
add: AddSubMulMat2Extensions;
|
|
311
|
+
sub: AddSubMulMat2Extensions;
|
|
312
|
+
mul: MulMat2Extensions;
|
|
313
|
+
|
|
314
|
+
addAssign: AddSubMulMat2AssignExtensions;
|
|
315
|
+
subAssign: AddSubMulMat2AssignExtensions;
|
|
316
|
+
mulAssign: AddSubMulMat2AssignExtensions;
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
interface Mat3Extensions {
|
|
320
|
+
add: AddSubMulMat3Extensions;
|
|
321
|
+
sub: AddSubMulMat3Extensions;
|
|
322
|
+
mul: MulMat3Extensions;
|
|
323
|
+
|
|
324
|
+
addAssign: AddSubMulMat3AssignExtensions;
|
|
325
|
+
subAssign: AddSubMulMat3AssignExtensions;
|
|
326
|
+
mulAssign: AddSubMulMat3AssignExtensions;
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
interface Mat4Extensions {
|
|
330
|
+
add: AddSubMulMat4Extensions;
|
|
331
|
+
sub: AddSubMulMat4Extensions;
|
|
332
|
+
mul: MulMat4Extensions;
|
|
333
|
+
|
|
334
|
+
addAssign: AddSubMulMat4AssignExtensions;
|
|
335
|
+
subAssign: AddSubMulMat4AssignExtensions;
|
|
336
|
+
mulAssign: AddSubMulMat4AssignExtensions;
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
// mod
|
|
341
|
+
|
|
342
|
+
interface Mod {
|
|
343
|
+
(a: Number<"float">, b: Vec4OrLessOrNumber<"float">): Node<"float">;
|
|
344
|
+
(a: Node<"vec2">, b: Vec4OrLessOrNumber<"float">): Node<"vec2">;
|
|
345
|
+
(a: Node<"vec3">, b: Vec4OrLessOrNumber<"float">): Node<"vec3">;
|
|
346
|
+
(a: Node<"vec4">, b: Vec4OrLessOrNumber<"float">): Node<"vec4">;
|
|
347
|
+
|
|
348
|
+
(a: Number<"int">, b: Vec4OrLessOrNumber<"int">): Node<"int">;
|
|
349
|
+
(a: Node<"ivec2">, b: Vec4OrLessOrNumber<"int">): Node<"ivec2">;
|
|
350
|
+
(a: Node<"ivec3">, b: Vec4OrLessOrNumber<"int">): Node<"ivec3">;
|
|
351
|
+
(a: Node<"ivec4">, b: Vec4OrLessOrNumber<"int">): Node<"ivec4">;
|
|
352
|
+
|
|
353
|
+
(a: Number<"uint">, b: Vec4OrLessOrNumber<"uint">): Node<"uint">;
|
|
354
|
+
(a: Node<"uvec2">, b: Vec4OrLessOrNumber<"uint">): Node<"uvec2">;
|
|
355
|
+
(a: Node<"uvec3">, b: Vec4OrLessOrNumber<"uint">): Node<"uvec3">;
|
|
356
|
+
(a: Node<"uvec4">, b: Vec4OrLessOrNumber<"uint">): Node<"uvec4">;
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
export const mod: Mod;
|
|
360
|
+
|
|
361
|
+
declare module "../core/Node.js" {
|
|
362
|
+
interface NumExtensions<TNum extends NumType> {
|
|
363
|
+
mod: (b: Vec4OrLessOrNumber<TNum>) => Node<TNum>;
|
|
364
|
+
modAssign: (b: Vec4OrLessOrNumber<TNum>) => this;
|
|
365
|
+
}
|
|
366
|
+
interface NumVec2Extensions<TNum extends NumType> {
|
|
367
|
+
mod: (b: Vec4OrLessOrNumber<TNum>) => Node<NumberToVec2<TNum>>;
|
|
368
|
+
modAssign: (b: Vec4OrLessOrNumber<TNum>) => this;
|
|
369
|
+
}
|
|
370
|
+
interface NumVec3Extensions<TNum extends NumType> {
|
|
371
|
+
mod: (b: Vec4OrLessOrNumber<TNum>) => Node<NumberToVec3<TNum>>;
|
|
372
|
+
modAssign: (b: Vec4OrLessOrNumber<TNum>) => this;
|
|
373
|
+
}
|
|
374
|
+
interface NumVec4Extensions<TNum extends NumType> {
|
|
375
|
+
mod: (b: Vec4OrLessOrNumber<TNum>) => Node<NumberToVec4<TNum>>;
|
|
376
|
+
modAssign: (b: Vec4OrLessOrNumber<TNum>) => this;
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
// Comparison operators
|
|
381
|
+
|
|
382
|
+
interface ComparisonOperator {
|
|
383
|
+
(a: Number<"float">, b: Number<"float">): Node<"bool">;
|
|
384
|
+
(a: Number<"int"> | Number<"uint">, b: Number<"int"> | Number<"uint">): Node<"bool">;
|
|
385
|
+
}
|
|
386
|
+
export const equal: ComparisonOperator;
|
|
387
|
+
export const notEqual: ComparisonOperator;
|
|
388
|
+
export const lessThan: ComparisonOperator;
|
|
389
|
+
export const greaterThan: ComparisonOperator;
|
|
390
|
+
export const lessThanEqual: ComparisonOperator;
|
|
391
|
+
export const greaterThanEqual: ComparisonOperator;
|
|
392
|
+
|
|
393
|
+
interface ComparisonOperatorNumExtensions<TNum extends NumType> {
|
|
394
|
+
(b: Number<TNum>): Node<"bool">;
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
declare module "../core/Node.js" {
|
|
398
|
+
interface FloatExtensions {
|
|
399
|
+
equal: ComparisonOperatorNumExtensions<"float">;
|
|
400
|
+
notEqual: ComparisonOperatorNumExtensions<"float">;
|
|
401
|
+
lessThan: ComparisonOperatorNumExtensions<"float">;
|
|
402
|
+
greaterThan: ComparisonOperatorNumExtensions<"float">;
|
|
403
|
+
lessThanEqual: ComparisonOperatorNumExtensions<"float">;
|
|
404
|
+
greaterThanEqual: ComparisonOperatorNumExtensions<"float">;
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
interface IntExtensions {
|
|
408
|
+
equal: (b: Number<"int"> | Number<"uint">) => Node<"bool">;
|
|
409
|
+
notEqual: (b: Number<"int"> | Number<"uint">) => Node<"bool">;
|
|
410
|
+
lessThan: (b: Number<"int"> | Number<"uint">) => Node<"bool">;
|
|
411
|
+
greaterThan: (b: Number<"int"> | Number<"uint">) => Node<"bool">;
|
|
412
|
+
lessThanEqual: (b: Number<"int"> | Number<"uint">) => Node<"bool">;
|
|
413
|
+
greaterThanEqual: (b: Number<"int"> | Number<"uint">) => Node<"bool">;
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
interface UintExtensions {
|
|
417
|
+
equal: (b: Number<"int"> | Number<"uint">) => Node<"bool">;
|
|
418
|
+
notEqual: (b: Number<"int"> | Number<"uint">) => Node<"bool">;
|
|
419
|
+
lessThan: (b: Number<"int"> | Number<"uint">) => Node<"bool">;
|
|
420
|
+
greaterThan: (b: Number<"int"> | Number<"uint">) => Node<"bool">;
|
|
421
|
+
lessThanEqual: (b: Number<"int"> | Number<"uint">) => Node<"bool">;
|
|
422
|
+
greaterThanEqual: (b: Number<"int"> | Number<"uint">) => Node<"bool">;
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
// and/or/not/xor
|
|
427
|
+
|
|
428
|
+
interface AndOr {
|
|
429
|
+
(a: Node<"bool">, b: Node<"bool">, ...params: Node<"bool">[]): Node<"bool">;
|
|
430
|
+
}
|
|
431
|
+
export const and: AndOr;
|
|
432
|
+
export const or: AndOr;
|
|
433
|
+
|
|
434
|
+
interface AndOrBoolExtensions {
|
|
435
|
+
(b: Node<"bool">, ...params: Node<"bool">[]): Node<"bool">;
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
export const not: (a: Node<"bool">) => Node<"bool">;
|
|
439
|
+
export const xor: (a: Node<"bool">, b: Node<"bool">) => Node<"bool">;
|
|
440
|
+
|
|
441
|
+
declare module "../core/Node.js" {
|
|
442
|
+
interface BoolExtensions {
|
|
443
|
+
and: AndOrBoolExtensions;
|
|
444
|
+
or: AndOrBoolExtensions;
|
|
445
|
+
not: () => Node<"bool">;
|
|
446
|
+
xor: (b: Node<"bool">) => Node<"bool">;
|
|
447
|
+
}
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
// bit operators
|
|
451
|
+
|
|
452
|
+
interface UnaryBitOperator {
|
|
453
|
+
(a: Number<"int">): Node<"int">;
|
|
454
|
+
(a: Number<"uint">): Node<"uint">;
|
|
455
|
+
}
|
|
456
|
+
|
|
457
|
+
interface BinaryBitOperator {
|
|
458
|
+
(a: Number<"int">, b: Number<"int">): Node<"int">;
|
|
459
|
+
(a: Number<"uint">, b: Number<"uint">): Node<"uint">;
|
|
460
|
+
}
|
|
461
|
+
|
|
462
|
+
export const bitAnd: BinaryBitOperator;
|
|
463
|
+
export const bitNot: UnaryBitOperator;
|
|
464
|
+
export const bitOr: BinaryBitOperator;
|
|
465
|
+
export const bitXor: BinaryBitOperator;
|
|
466
|
+
export const shiftLeft: BinaryBitOperator;
|
|
467
|
+
export const shiftRight: BinaryBitOperator;
|
|
468
|
+
|
|
469
|
+
interface BinaryBitOperatorIntegerExtensions<TInteger extends IntegerType> {
|
|
470
|
+
(b: Number<TInteger>): Node<TInteger>;
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
interface BinaryBitOperatorIntegerAssignExtensions<TInteger extends IntegerType> {
|
|
474
|
+
(b: Number<TInteger>): this;
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
declare module "../core/Node.js" {
|
|
478
|
+
interface IntegerExtensions<TInteger extends IntegerType> {
|
|
479
|
+
bitAnd: BinaryBitOperatorIntegerExtensions<TInteger>;
|
|
480
|
+
bitNot: () => Node<TInteger>;
|
|
481
|
+
bitOr: BinaryBitOperatorIntegerExtensions<TInteger>;
|
|
482
|
+
bitXor: BinaryBitOperatorIntegerExtensions<TInteger>;
|
|
483
|
+
shiftLeft: BinaryBitOperatorIntegerExtensions<TInteger>;
|
|
484
|
+
shiftRight: BinaryBitOperatorIntegerExtensions<TInteger>;
|
|
485
|
+
|
|
486
|
+
bitAndAssign: BinaryBitOperatorIntegerAssignExtensions<TInteger>;
|
|
487
|
+
bitNotAssign: () => this;
|
|
488
|
+
bitOrAssign: BinaryBitOperatorIntegerAssignExtensions<TInteger>;
|
|
489
|
+
bitXorAssign: BinaryBitOperatorIntegerAssignExtensions<TInteger>;
|
|
490
|
+
shiftLeftAssign: BinaryBitOperatorIntegerAssignExtensions<TInteger>;
|
|
491
|
+
shiftRightAssign: BinaryBitOperatorIntegerAssignExtensions<TInteger>;
|
|
492
|
+
}
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
// increment/decrement
|
|
496
|
+
|
|
497
|
+
interface IncrementDecrement {
|
|
498
|
+
(a: Number<"int">): Node<"int">;
|
|
499
|
+
(a: Number<"uint">): Node<"uint">;
|
|
500
|
+
}
|
|
501
|
+
|
|
502
|
+
export const incrementBefore: IncrementDecrement;
|
|
503
|
+
export const decrementBefore: IncrementDecrement;
|
|
504
|
+
export const increment: IncrementDecrement;
|
|
505
|
+
export const decrement: IncrementDecrement;
|
|
506
|
+
|
|
507
|
+
interface IncrementDecrementIntegerExtensions<TInteger extends IntegerType> {
|
|
508
|
+
(): Node<TInteger>;
|
|
509
|
+
}
|
|
510
|
+
|
|
511
|
+
declare module "../core/Node.js" {
|
|
512
|
+
interface IntegerExtensions<TInteger extends IntegerType> {
|
|
513
|
+
incrementBefore: IncrementDecrementIntegerExtensions<TInteger>;
|
|
514
|
+
decrementBefore: IncrementDecrementIntegerExtensions<TInteger>;
|
|
515
|
+
increment: IncrementDecrementIntegerExtensions<TInteger>;
|
|
516
|
+
decrement: IncrementDecrementIntegerExtensions<TInteger>;
|
|
256
517
|
}
|
|
257
518
|
}
|
|
258
519
|
|
|
259
520
|
/**
|
|
260
521
|
* @deprecated "modInt()" is deprecated. Use "mod( int( ... ) )" instead.
|
|
261
522
|
*/
|
|
262
|
-
export const modInt:
|
|
523
|
+
export const modInt: Mod;
|
|
263
524
|
|
|
264
|
-
declare module "../
|
|
265
|
-
interface
|
|
525
|
+
declare module "../core/Node.js" {
|
|
526
|
+
interface NumExtensions<TNum extends NumType> {
|
|
266
527
|
/**
|
|
267
528
|
* @deprecated "modInt()" is deprecated. Use "mod( int( ... ) )" instead.
|
|
268
529
|
*/
|
|
269
|
-
modInt: (b:
|
|
530
|
+
modInt: (b: Number<TNum>) => Node<TNum>;
|
|
270
531
|
/**
|
|
271
532
|
* @deprecated "modInt()" is deprecated. Use "mod( int( ... ) )" instead.
|
|
272
533
|
*/
|
|
273
|
-
modIntAssign: (b:
|
|
534
|
+
modIntAssign: (b: Number<TNum>) => this;
|
|
274
535
|
}
|
|
275
536
|
}
|
|
537
|
+
|
|
538
|
+
export {};
|