@types/three 0.182.0 → 0.183.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 +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/{RenderPipeline.d.ts → RenderObjectPipeline.d.ts} +17 -5
- three/src/renderers/common/RenderObjects.d.ts +55 -22
- 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
three/src/nodes/core/Node.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { EventDispatcher } from "../../core/EventDispatcher.js";
|
|
|
2
2
|
import { NodeUpdateType } from "./constants.js";
|
|
3
3
|
import NodeBuilder from "./NodeBuilder.js";
|
|
4
4
|
import NodeFrame from "./NodeFrame.js";
|
|
5
|
+
|
|
5
6
|
interface NodeJSONMeta {
|
|
6
7
|
textures: {
|
|
7
8
|
[key: string]: unknown;
|
|
@@ -13,11 +14,13 @@ interface NodeJSONMeta {
|
|
|
13
14
|
[key: string]: NodeJSONIntermediateOutputData;
|
|
14
15
|
};
|
|
15
16
|
}
|
|
17
|
+
|
|
16
18
|
interface NodeJSONMetadata {
|
|
17
19
|
version: number;
|
|
18
20
|
type: "Node";
|
|
19
21
|
generator: "Node.toJSON";
|
|
20
22
|
}
|
|
23
|
+
|
|
21
24
|
interface NodeJSONInputNodes {
|
|
22
25
|
[property: string]:
|
|
23
26
|
| string[]
|
|
@@ -27,6 +30,7 @@ interface NodeJSONInputNodes {
|
|
|
27
30
|
| string
|
|
28
31
|
| undefined;
|
|
29
32
|
}
|
|
33
|
+
|
|
30
34
|
export interface NodeJSONInputData {
|
|
31
35
|
inputNodes?: NodeJSONInputNodes | undefined;
|
|
32
36
|
meta: {
|
|
@@ -38,6 +42,7 @@ export interface NodeJSONInputData {
|
|
|
38
42
|
};
|
|
39
43
|
};
|
|
40
44
|
}
|
|
45
|
+
|
|
41
46
|
export interface NodeJSONIntermediateOutputData {
|
|
42
47
|
uuid: string;
|
|
43
48
|
type: string | undefined;
|
|
@@ -48,6 +53,7 @@ export interface NodeJSONIntermediateOutputData {
|
|
|
48
53
|
images?: unknown[];
|
|
49
54
|
nodes?: NodeJSONIntermediateOutputData[];
|
|
50
55
|
}
|
|
56
|
+
|
|
51
57
|
interface NodeJSONOutputData {
|
|
52
58
|
uuid: string;
|
|
53
59
|
type: string | undefined;
|
|
@@ -57,40 +63,123 @@ interface NodeJSONOutputData {
|
|
|
57
63
|
images?: unknown[];
|
|
58
64
|
nodes?: NodeJSONOutputData[];
|
|
59
65
|
}
|
|
66
|
+
|
|
60
67
|
export interface NodeChild {
|
|
61
68
|
property: string;
|
|
62
69
|
index?: number | string;
|
|
63
70
|
childNode: Node;
|
|
64
71
|
}
|
|
72
|
+
|
|
65
73
|
/**
|
|
66
74
|
* Base class for all nodes.
|
|
67
75
|
*
|
|
68
76
|
* @augments EventDispatcher
|
|
69
77
|
*/
|
|
70
|
-
declare class
|
|
71
|
-
dispose: {};
|
|
72
|
-
}> {
|
|
78
|
+
declare class NodeClass extends EventDispatcher<{ dispose: {} }> {
|
|
73
79
|
static get type(): string;
|
|
80
|
+
/**
|
|
81
|
+
* Constructs a new node.
|
|
82
|
+
*
|
|
83
|
+
* @param {?string} nodeType - The node type.
|
|
84
|
+
*/
|
|
85
|
+
constructor(nodeType?: string | null);
|
|
86
|
+
/**
|
|
87
|
+
* The node type. This represents the result type of the node (e.g. `float` or `vec3`).
|
|
88
|
+
*
|
|
89
|
+
* @type {?string}
|
|
90
|
+
* @default null
|
|
91
|
+
*/
|
|
74
92
|
nodeType: string | null;
|
|
93
|
+
/**
|
|
94
|
+
* The update type of the node's {@link Node#update} method. Possible values are listed in {@link NodeUpdateType}.
|
|
95
|
+
*
|
|
96
|
+
* @type {string}
|
|
97
|
+
* @default 'none'
|
|
98
|
+
*/
|
|
75
99
|
updateType: NodeUpdateType;
|
|
100
|
+
/**
|
|
101
|
+
* The update type of the node's {@link Node#updateBefore} method. Possible values are listed in {@link NodeUpdateType}.
|
|
102
|
+
*
|
|
103
|
+
* @type {string}
|
|
104
|
+
* @default 'none'
|
|
105
|
+
*/
|
|
76
106
|
updateBeforeType: NodeUpdateType;
|
|
107
|
+
/**
|
|
108
|
+
* The update type of the node's {@link Node#updateAfter} method. Possible values are listed in {@link NodeUpdateType}.
|
|
109
|
+
*
|
|
110
|
+
* @type {string}
|
|
111
|
+
* @default 'none'
|
|
112
|
+
*/
|
|
77
113
|
updateAfterType: NodeUpdateType;
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
114
|
+
/**
|
|
115
|
+
* The UUID of the node.
|
|
116
|
+
*
|
|
117
|
+
* @type {string}
|
|
118
|
+
* @readonly
|
|
119
|
+
*/
|
|
120
|
+
readonly uuid: string;
|
|
121
|
+
/**
|
|
122
|
+
* The version of the node. The version automatically is increased when {@link Node#needsUpdate} is set to `true`.
|
|
123
|
+
*
|
|
124
|
+
* @type {number}
|
|
125
|
+
* @readonly
|
|
126
|
+
* @default 0
|
|
127
|
+
*/
|
|
128
|
+
readonly version: number;
|
|
129
|
+
/**
|
|
130
|
+
* The name of the node.
|
|
131
|
+
*
|
|
132
|
+
* @type {string}
|
|
133
|
+
* @default ''
|
|
134
|
+
*/
|
|
135
|
+
name: string;
|
|
136
|
+
/**
|
|
137
|
+
* Whether this node is global or not. This property is relevant for the internal
|
|
138
|
+
* node caching system. All nodes which should be declared just once should
|
|
139
|
+
* set this flag to `true` (a typical example is {@link AttributeNode}).
|
|
140
|
+
*
|
|
141
|
+
* @type {boolean}
|
|
142
|
+
* @default false
|
|
143
|
+
*/
|
|
83
144
|
global: boolean;
|
|
145
|
+
/**
|
|
146
|
+
* Create a list of parents for this node during the build process.
|
|
147
|
+
*
|
|
148
|
+
* @type {boolean}
|
|
149
|
+
* @default false
|
|
150
|
+
*/
|
|
84
151
|
parents: boolean;
|
|
85
|
-
readonly isNode: true;
|
|
86
|
-
readonly id: number;
|
|
87
|
-
self?: this;
|
|
88
152
|
/**
|
|
89
|
-
*
|
|
153
|
+
* This flag can be used for type testing.
|
|
90
154
|
*
|
|
91
|
-
* @
|
|
155
|
+
* @type {boolean}
|
|
156
|
+
* @readonly
|
|
157
|
+
* @default true
|
|
92
158
|
*/
|
|
93
|
-
|
|
159
|
+
readonly isNode: boolean;
|
|
160
|
+
/**
|
|
161
|
+
* The cache key of this node.
|
|
162
|
+
*
|
|
163
|
+
* @private
|
|
164
|
+
* @type {?number}
|
|
165
|
+
* @default null
|
|
166
|
+
*/
|
|
167
|
+
private _cacheKey;
|
|
168
|
+
/**
|
|
169
|
+
* The cache key's version.
|
|
170
|
+
*
|
|
171
|
+
* @private
|
|
172
|
+
* @type {number}
|
|
173
|
+
* @default 0
|
|
174
|
+
*/
|
|
175
|
+
private _cacheKeyVersion;
|
|
176
|
+
/**
|
|
177
|
+
* The stack trace of the node for debugging purposes.
|
|
178
|
+
*
|
|
179
|
+
* @type {?string}
|
|
180
|
+
* @default null
|
|
181
|
+
*/
|
|
182
|
+
stackTrace: string | null;
|
|
94
183
|
/**
|
|
95
184
|
* Set this property to `true` when the node should be regenerated.
|
|
96
185
|
*
|
|
@@ -105,7 +194,7 @@ declare class Node extends EventDispatcher<{
|
|
|
105
194
|
* @type {string}
|
|
106
195
|
* @readonly
|
|
107
196
|
*/
|
|
108
|
-
get type(): string
|
|
197
|
+
get type(): string;
|
|
109
198
|
/**
|
|
110
199
|
* Convenient method for defining {@link Node#update}.
|
|
111
200
|
*
|
|
@@ -114,6 +203,15 @@ declare class Node extends EventDispatcher<{
|
|
|
114
203
|
* @return {Node} A reference to this node.
|
|
115
204
|
*/
|
|
116
205
|
onUpdate(callback: (this: this, frame: NodeFrame) => unknown, updateType: NodeUpdateType): this;
|
|
206
|
+
/**
|
|
207
|
+
* The method can be implemented to update the node's internal state when it is used to render an object.
|
|
208
|
+
* The {@link Node#updateType} property defines how often the update is executed.
|
|
209
|
+
*
|
|
210
|
+
* @abstract
|
|
211
|
+
* @param {NodeFrame} frame - A reference to the current node frame.
|
|
212
|
+
* @return {?boolean} An optional bool that indicates whether the implementation actually performed an update or not (e.g. due to caching).
|
|
213
|
+
*/
|
|
214
|
+
update(frame: NodeFrame): boolean | undefined;
|
|
117
215
|
/**
|
|
118
216
|
* Convenient method for defining {@link Node#update}. Similar to {@link Node#onUpdate}, but
|
|
119
217
|
* this method automatically sets the update type to `FRAME`.
|
|
@@ -168,18 +266,12 @@ declare class Node extends EventDispatcher<{
|
|
|
168
266
|
* @generator
|
|
169
267
|
* @yields {Node} A child node.
|
|
170
268
|
*/
|
|
171
|
-
getChildren(): Generator<Node
|
|
269
|
+
getChildren(): Generator<Node<unknown>, void, unknown>;
|
|
172
270
|
/**
|
|
173
271
|
* Calling this method dispatches the `dispose` event. This event can be used
|
|
174
272
|
* to register event listeners for clean up tasks.
|
|
175
273
|
*/
|
|
176
274
|
dispose(): void;
|
|
177
|
-
/**
|
|
178
|
-
* Callback for {@link Node#traverse}.
|
|
179
|
-
*
|
|
180
|
-
* @callback traverseCallback
|
|
181
|
-
* @param {Node} node - The current node.
|
|
182
|
-
*/
|
|
183
275
|
/**
|
|
184
276
|
* Can be used to traverse through the node's hierarchy.
|
|
185
277
|
*
|
|
@@ -193,7 +285,7 @@ declare class Node extends EventDispatcher<{
|
|
|
193
285
|
* @param {Set<Node>} [ignores=new Set()] - A set of nodes to ignore during the search to avoid circular references.
|
|
194
286
|
* @returns {Array<Object>} An array of objects describing the child nodes.
|
|
195
287
|
*/
|
|
196
|
-
_getChildren
|
|
288
|
+
private _getChildren;
|
|
197
289
|
/**
|
|
198
290
|
* Returns the cache key for this node.
|
|
199
291
|
*
|
|
@@ -201,7 +293,7 @@ declare class Node extends EventDispatcher<{
|
|
|
201
293
|
* @param {Set<Node>} [ignores=null] - A set of nodes to ignore during the computation of the cache key.
|
|
202
294
|
* @return {number} The cache key of the node.
|
|
203
295
|
*/
|
|
204
|
-
getCacheKey(force?: boolean, ignores?: Set<Node>
|
|
296
|
+
getCacheKey(force?: boolean, ignores?: Set<Node>): number;
|
|
205
297
|
/**
|
|
206
298
|
* Generate a custom cache key for this node.
|
|
207
299
|
*
|
|
@@ -249,7 +341,7 @@ declare class Node extends EventDispatcher<{
|
|
|
249
341
|
* @param {NodeBuilder} builder - The current node builder.
|
|
250
342
|
* @return {string} The type of the node.
|
|
251
343
|
*/
|
|
252
|
-
getElementType(builder: NodeBuilder):
|
|
344
|
+
getElementType(builder: NodeBuilder): string;
|
|
253
345
|
/**
|
|
254
346
|
* Returns the node member type for the given name.
|
|
255
347
|
*
|
|
@@ -264,7 +356,7 @@ declare class Node extends EventDispatcher<{
|
|
|
264
356
|
* @param {NodeBuilder} builder - The current node builder.
|
|
265
357
|
* @return {string} The type of the node.
|
|
266
358
|
*/
|
|
267
|
-
getNodeType(builder: NodeBuilder): string
|
|
359
|
+
getNodeType(builder: NodeBuilder): string;
|
|
268
360
|
/**
|
|
269
361
|
* This method is used during the build process of a node and ensures
|
|
270
362
|
* equal nodes are not built multiple times but just once. For example if
|
|
@@ -290,7 +382,7 @@ declare class Node extends EventDispatcher<{
|
|
|
290
382
|
* @param {NodeBuilder} builder - The current node builder.
|
|
291
383
|
* @return {?Node} The output node.
|
|
292
384
|
*/
|
|
293
|
-
setup(builder: NodeBuilder):
|
|
385
|
+
setup(builder: NodeBuilder): Node | null | undefined;
|
|
294
386
|
/**
|
|
295
387
|
* Represents the analyze stage which is the second step of the build process, see {@link Node#build} method.
|
|
296
388
|
* This stage analyzes the node hierarchy and ensures descendent nodes are built.
|
|
@@ -316,7 +408,7 @@ declare class Node extends EventDispatcher<{
|
|
|
316
408
|
* @param {NodeFrame} frame - A reference to the current node frame.
|
|
317
409
|
* @return {?boolean} An optional bool that indicates whether the implementation actually performed an update or not (e.g. due to caching).
|
|
318
410
|
*/
|
|
319
|
-
updateBefore(frame: NodeFrame):
|
|
411
|
+
updateBefore(frame: NodeFrame): boolean | undefined;
|
|
320
412
|
/**
|
|
321
413
|
* The method can be implemented to update the node's internal state after it was used to render an object.
|
|
322
414
|
* The {@link Node#updateAfterType} property defines how often the update is executed.
|
|
@@ -325,16 +417,7 @@ declare class Node extends EventDispatcher<{
|
|
|
325
417
|
* @param {NodeFrame} frame - A reference to the current node frame.
|
|
326
418
|
* @return {?boolean} An optional bool that indicates whether the implementation actually performed an update or not (e.g. due to caching).
|
|
327
419
|
*/
|
|
328
|
-
updateAfter(frame: NodeFrame):
|
|
329
|
-
/**
|
|
330
|
-
* The method can be implemented to update the node's internal state when it is used to render an object.
|
|
331
|
-
* The {@link Node#updateType} property defines how often the update is executed.
|
|
332
|
-
*
|
|
333
|
-
* @abstract
|
|
334
|
-
* @param {NodeFrame} frame - A reference to the current node frame.
|
|
335
|
-
* @return {?boolean} An optional bool that indicates whether the implementation actually performed an update or not (e.g. due to caching).
|
|
336
|
-
*/
|
|
337
|
-
update(frame: NodeFrame): void;
|
|
420
|
+
updateAfter(frame: NodeFrame): boolean | undefined;
|
|
338
421
|
before(node: Node): this;
|
|
339
422
|
/**
|
|
340
423
|
* This method performs the build of a node. The behavior and return value depend on the current build stage:
|
|
@@ -346,7 +429,7 @@ declare class Node extends EventDispatcher<{
|
|
|
346
429
|
* @param {?(string|Node)} [output=null] - Can be used to define the output type.
|
|
347
430
|
* @return {?(Node|string)} The result of the build process, depending on the build stage.
|
|
348
431
|
*/
|
|
349
|
-
build(builder: NodeBuilder, output?: string | Node | null): Node | string | null;
|
|
432
|
+
build(builder: NodeBuilder, output?: (string | Node) | null): (Node | string) | null;
|
|
350
433
|
/**
|
|
351
434
|
* Returns the child nodes as a JSON object.
|
|
352
435
|
*
|
|
@@ -373,4 +456,140 @@ declare class Node extends EventDispatcher<{
|
|
|
373
456
|
*/
|
|
374
457
|
toJSON(meta?: NodeJSONMeta | string): NodeJSONOutputData;
|
|
375
458
|
}
|
|
459
|
+
|
|
460
|
+
declare const Node: {
|
|
461
|
+
new<TNodeType>(nodeType?: TNodeType | null): Node<TNodeType>;
|
|
462
|
+
new(nodeType?: string | null): Node;
|
|
463
|
+
/**
|
|
464
|
+
* Enables or disables the automatic capturing of stack traces for nodes.
|
|
465
|
+
*
|
|
466
|
+
* @type {boolean}
|
|
467
|
+
* @default false
|
|
468
|
+
*/
|
|
469
|
+
captureStackTrace: boolean;
|
|
470
|
+
};
|
|
471
|
+
|
|
472
|
+
export interface NodeElements {
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
export interface NodeExtensions<TNodeType> {
|
|
476
|
+
}
|
|
477
|
+
|
|
478
|
+
export type NumType = "float" | "int" | "uint";
|
|
479
|
+
export type IntegerType = "int" | "uint";
|
|
480
|
+
export type NumOrBoolType = NumType | "bool";
|
|
481
|
+
export type FloatVecType = "vec2" | "vec3" | "vec4";
|
|
482
|
+
export type MatType = "mat2" | "mat3" | "mat4";
|
|
483
|
+
|
|
484
|
+
export interface FloatExtensions {
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
export interface IntExtensions {
|
|
488
|
+
}
|
|
489
|
+
|
|
490
|
+
export interface UintExtensions {
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
export interface BoolExtensions {
|
|
494
|
+
}
|
|
495
|
+
|
|
496
|
+
export interface NumExtensions<TNum extends NumType> {
|
|
497
|
+
}
|
|
498
|
+
|
|
499
|
+
export interface IntegerExtensions<TInteger extends IntegerType> {
|
|
500
|
+
}
|
|
501
|
+
|
|
502
|
+
export interface NumOrBoolExtensions<TNumOrBool extends NumOrBoolType> {
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
export interface NumVec2Extensions<TNum extends NumType> {
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
export interface NumVec3Extensions<TNum extends NumType> {
|
|
509
|
+
}
|
|
510
|
+
|
|
511
|
+
export interface NumVec4Extensions<TNum extends NumType> {
|
|
512
|
+
}
|
|
513
|
+
|
|
514
|
+
export interface NumOrBoolVec2Extensions<TNumOrBool extends NumOrBoolType> {
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
export interface NumOrBoolVec3Extensions<TNumOrBool extends NumOrBoolType> {
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
export interface NumOrBoolVec4Extensions<TNumOrBool extends NumOrBoolType> {
|
|
521
|
+
}
|
|
522
|
+
|
|
523
|
+
export interface Vec2Extensions {
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
export interface Vec3Extensions {
|
|
527
|
+
}
|
|
528
|
+
|
|
529
|
+
export interface Vec4Extensions {
|
|
530
|
+
}
|
|
531
|
+
|
|
532
|
+
export interface ColorExtensions {
|
|
533
|
+
}
|
|
534
|
+
|
|
535
|
+
export interface FloatVecExtensions<TVec extends FloatVecType> {
|
|
536
|
+
}
|
|
537
|
+
|
|
538
|
+
export interface Mat2Extensions {
|
|
539
|
+
}
|
|
540
|
+
|
|
541
|
+
export interface Mat3Extensions {
|
|
542
|
+
}
|
|
543
|
+
|
|
544
|
+
export interface Mat4Extensions {
|
|
545
|
+
}
|
|
546
|
+
|
|
547
|
+
export interface MatExtensions<TMat extends MatType> {
|
|
548
|
+
}
|
|
549
|
+
|
|
550
|
+
type Node<TNodeType = unknown> =
|
|
551
|
+
& NodeClass
|
|
552
|
+
& NodeElements
|
|
553
|
+
& (unknown extends TNodeType ? {} : NodeExtensions<TNodeType>)
|
|
554
|
+
& (TNodeType extends "float" ? NumOrBoolExtensions<"float"> & FloatExtensions & NumExtensions<"float">
|
|
555
|
+
: TNodeType extends "int"
|
|
556
|
+
? NumOrBoolExtensions<"int"> & IntExtensions & NumExtensions<"int"> & IntegerExtensions<"int">
|
|
557
|
+
: TNodeType extends "uint"
|
|
558
|
+
? NumOrBoolExtensions<"uint"> & UintExtensions & NumExtensions<"uint"> & IntegerExtensions<"uint">
|
|
559
|
+
: TNodeType extends "bool" ? NumOrBoolExtensions<"bool"> & BoolExtensions
|
|
560
|
+
: TNodeType extends "vec2" ?
|
|
561
|
+
& NumOrBoolVec2Extensions<"float">
|
|
562
|
+
& Vec2Extensions
|
|
563
|
+
& NumVec2Extensions<"float">
|
|
564
|
+
& FloatVecExtensions<"vec2">
|
|
565
|
+
: TNodeType extends "ivec2" ? NumOrBoolVec2Extensions<"int"> & NumVec2Extensions<"int">
|
|
566
|
+
: TNodeType extends "uvec2" ? NumOrBoolVec2Extensions<"uint"> & NumVec2Extensions<"uint">
|
|
567
|
+
: TNodeType extends "bvec2" ? NumOrBoolVec2Extensions<"bool">
|
|
568
|
+
: TNodeType extends "vec3" ?
|
|
569
|
+
& NumOrBoolVec3Extensions<"float">
|
|
570
|
+
& Vec3Extensions
|
|
571
|
+
& NumVec3Extensions<"float">
|
|
572
|
+
& FloatVecExtensions<"vec3">
|
|
573
|
+
: TNodeType extends "ivec3" ? NumOrBoolVec3Extensions<"int"> & NumVec3Extensions<"int">
|
|
574
|
+
: TNodeType extends "uvec3" ? NumOrBoolVec3Extensions<"uint"> & NumVec3Extensions<"uint">
|
|
575
|
+
: TNodeType extends "bvec3" ? NumOrBoolVec3Extensions<"bool">
|
|
576
|
+
: TNodeType extends "vec4" ?
|
|
577
|
+
& NumOrBoolVec4Extensions<"float">
|
|
578
|
+
& Vec4Extensions
|
|
579
|
+
& NumVec4Extensions<"float">
|
|
580
|
+
& FloatVecExtensions<"vec4">
|
|
581
|
+
: TNodeType extends "ivec4" ? NumOrBoolVec4Extensions<"int"> & NumVec4Extensions<"int">
|
|
582
|
+
: TNodeType extends "uvec4" ? NumOrBoolVec4Extensions<"uint"> & NumVec4Extensions<"uint">
|
|
583
|
+
: TNodeType extends "bvec4" ? NumOrBoolVec4Extensions<"bool">
|
|
584
|
+
: TNodeType extends "color" ? ColorExtensions
|
|
585
|
+
: TNodeType extends "mat2" ? Mat2Extensions & MatExtensions<"mat2">
|
|
586
|
+
: TNodeType extends "mat3" ? Mat3Extensions & MatExtensions<"mat3">
|
|
587
|
+
: TNodeType extends "mat4" ? Mat4Extensions & MatExtensions<"mat4">
|
|
588
|
+
: {})
|
|
589
|
+
& {
|
|
590
|
+
__TypeScript_NODE_TYPE__: TNodeType;
|
|
591
|
+
};
|
|
592
|
+
|
|
376
593
|
export default Node;
|
|
594
|
+
|
|
595
|
+
export {};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import Node from "./Node.js";
|
|
2
|
+
|
|
2
3
|
/**
|
|
3
4
|
* {@link NodeBuilder} is going to create instances of this class during the build process
|
|
4
5
|
* of nodes. They represent the final shader attributes that are going to be generated
|
|
@@ -6,10 +7,6 @@ import Node from "./Node.js";
|
|
|
6
7
|
* and {@link NodeBuilder#bufferAttributes} for this purpose.
|
|
7
8
|
*/
|
|
8
9
|
declare class NodeAttribute {
|
|
9
|
-
readonly isNodeAttribute: true;
|
|
10
|
-
name: string;
|
|
11
|
-
type: string | null;
|
|
12
|
-
node: Node | null;
|
|
13
10
|
/**
|
|
14
11
|
* Constructs a new node attribute.
|
|
15
12
|
*
|
|
@@ -17,6 +14,34 @@ declare class NodeAttribute {
|
|
|
17
14
|
* @param {string} type - The type of the attribute.
|
|
18
15
|
* @param {?Node} node - An optional reference to the node.
|
|
19
16
|
*/
|
|
20
|
-
constructor(name: string, type: string
|
|
17
|
+
constructor(name: string, type: string, node?: Node | null);
|
|
18
|
+
/**
|
|
19
|
+
* This flag can be used for type testing.
|
|
20
|
+
*
|
|
21
|
+
* @type {boolean}
|
|
22
|
+
* @readonly
|
|
23
|
+
* @default true
|
|
24
|
+
*/
|
|
25
|
+
readonly isNodeAttribute: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* The name of the attribute.
|
|
28
|
+
*
|
|
29
|
+
* @type {string}
|
|
30
|
+
*/
|
|
31
|
+
name: string;
|
|
32
|
+
/**
|
|
33
|
+
* The type of the attribute.
|
|
34
|
+
*
|
|
35
|
+
* @type {string}
|
|
36
|
+
*/
|
|
37
|
+
type: string;
|
|
38
|
+
/**
|
|
39
|
+
* An optional reference to the node.
|
|
40
|
+
*
|
|
41
|
+
* @type {?Node}
|
|
42
|
+
* @default null
|
|
43
|
+
*/
|
|
44
|
+
node: Node | null;
|
|
21
45
|
}
|
|
46
|
+
|
|
22
47
|
export default NodeAttribute;
|
|
@@ -26,7 +26,9 @@ export interface NodeData {
|
|
|
26
26
|
compute: { [key: string]: unknown };
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
export
|
|
29
|
+
export interface NodeBuilderContext {
|
|
30
|
+
[key: string]: unknown;
|
|
31
|
+
}
|
|
30
32
|
|
|
31
33
|
export default abstract class NodeBuilder {
|
|
32
34
|
object: Object3D;
|
|
@@ -92,7 +94,7 @@ export default abstract class NodeBuilder {
|
|
|
92
94
|
|
|
93
95
|
getAttribute(name: string, type: string): NodeAttribute;
|
|
94
96
|
|
|
95
|
-
getPropertyName
|
|
97
|
+
getPropertyName(node: NodeVar | NodeUniform<unknown, unknown>, shaderStage: NodeShaderStage): string;
|
|
96
98
|
isVector(type: string): boolean;
|
|
97
99
|
|
|
98
100
|
isMatrix(type: string): boolean;
|
|
@@ -110,7 +112,7 @@ export default abstract class NodeBuilder {
|
|
|
110
112
|
type: string,
|
|
111
113
|
shaderStage?: NodeShaderStage,
|
|
112
114
|
name?: string | null,
|
|
113
|
-
): NodeUniform<string>;
|
|
115
|
+
): NodeUniform<unknown, string>;
|
|
114
116
|
getVarFromNode(node: Node, type: string, shaderStage?: NodeShaderStage): NodeVar;
|
|
115
117
|
getVaryFromNode(node: Node, type: string): NodeVarying;
|
|
116
118
|
getCodeFromNode(node: Node, type: string, shaderStage?: NodeShaderStage): string;
|
|
@@ -1,74 +1,50 @@
|
|
|
1
|
-
import { BufferAttribute, TypedArray } from "../../core/BufferAttribute.js";
|
|
2
|
-
import { InterleavedBuffer } from "../../core/InterleavedBuffer.js";
|
|
3
|
-
import BufferAttributeNode from "../accessors/BufferAttributeNode.js";
|
|
4
1
|
import Node from "./Node.js";
|
|
5
|
-
|
|
6
|
-
import NodeCode from "./NodeCode.js";
|
|
7
|
-
import NodeUniform from "./NodeUniform.js";
|
|
8
|
-
import NodeVar from "./NodeVar.js";
|
|
9
|
-
import NodeVarying from "./NodeVarying.js";
|
|
10
|
-
import StructType from "./StructType.js";
|
|
11
|
-
export interface ShaderStageNodeData {
|
|
12
|
-
properties?:
|
|
13
|
-
| (
|
|
14
|
-
& {
|
|
15
|
-
outputNode: Node | null;
|
|
16
|
-
initialized?: boolean | undefined;
|
|
17
|
-
}
|
|
18
|
-
& {
|
|
19
|
-
[K in `node${string}`]?: Node | undefined;
|
|
20
|
-
}
|
|
21
|
-
)
|
|
22
|
-
| undefined;
|
|
23
|
-
bufferAttribute?: NodeAttribute | undefined;
|
|
24
|
-
structType?: StructType | undefined;
|
|
25
|
-
uniform?: NodeUniform<unknown> | undefined;
|
|
26
|
-
variable?: NodeVar | undefined;
|
|
27
|
-
varying?: NodeVarying | undefined;
|
|
28
|
-
code?: NodeCode | undefined;
|
|
29
|
-
usageCount?: number | undefined;
|
|
30
|
-
snippet?: string | undefined;
|
|
31
|
-
propertyName?: string | undefined;
|
|
32
|
-
propertySizeName?: string | undefined;
|
|
33
|
-
}
|
|
34
|
-
interface NodeData {
|
|
35
|
-
vertex?: ShaderStageNodeData | undefined;
|
|
36
|
-
fragment?: ShaderStageNodeData | undefined;
|
|
37
|
-
compute?: ShaderStageNodeData | undefined;
|
|
38
|
-
any?: ShaderStageNodeData | undefined;
|
|
39
|
-
}
|
|
40
|
-
interface BufferAttributeData {
|
|
41
|
-
node: BufferAttributeNode;
|
|
42
|
-
}
|
|
2
|
+
|
|
43
3
|
/**
|
|
44
4
|
* This utility class is used in {@link NodeBuilder} as an internal
|
|
45
5
|
* cache data structure for node data.
|
|
46
6
|
*/
|
|
47
7
|
declare class NodeCache {
|
|
48
|
-
id: number;
|
|
49
|
-
nodesData: WeakMap<Node | TypedArray | InterleavedBuffer | BufferAttribute, NodeData | BufferAttributeData>;
|
|
50
|
-
parent: NodeCache | null;
|
|
51
8
|
/**
|
|
52
9
|
* Constructs a new node cache.
|
|
53
10
|
*
|
|
54
11
|
* @param {?NodeCache} parent - A reference to a parent cache.
|
|
55
12
|
*/
|
|
56
13
|
constructor(parent?: NodeCache | null);
|
|
14
|
+
/**
|
|
15
|
+
* The id of the cache.
|
|
16
|
+
*
|
|
17
|
+
* @type {number}
|
|
18
|
+
* @readonly
|
|
19
|
+
*/
|
|
20
|
+
readonly id: number;
|
|
21
|
+
/**
|
|
22
|
+
* A weak map for managing node data.
|
|
23
|
+
*
|
|
24
|
+
* @type {WeakMap<Node, Object>}
|
|
25
|
+
*/
|
|
26
|
+
nodesData: WeakMap<Node, unknown>;
|
|
27
|
+
/**
|
|
28
|
+
* Reference to a parent node cache.
|
|
29
|
+
*
|
|
30
|
+
* @type {?NodeCache}
|
|
31
|
+
* @default null
|
|
32
|
+
*/
|
|
33
|
+
parent: NodeCache | null;
|
|
57
34
|
/**
|
|
58
35
|
* Returns the data for the given node.
|
|
59
36
|
*
|
|
60
37
|
* @param {Node} node - The node.
|
|
61
38
|
* @return {?Object} The data for the node.
|
|
62
39
|
*/
|
|
63
|
-
getData(node: Node):
|
|
64
|
-
getData(node: TypedArray | InterleavedBuffer | BufferAttribute): BufferAttributeData | undefined;
|
|
40
|
+
getData(node: Node): unknown;
|
|
65
41
|
/**
|
|
66
42
|
* Sets the data for a given node.
|
|
67
43
|
*
|
|
68
44
|
* @param {Node} node - The node.
|
|
69
45
|
* @param {Object} data - The data that should be cached.
|
|
70
46
|
*/
|
|
71
|
-
setData(node: Node, data:
|
|
72
|
-
setData(node: TypedArray | InterleavedBuffer | BufferAttribute, data: BufferAttributeData): void;
|
|
47
|
+
setData(node: Node, data: unknown): void;
|
|
73
48
|
}
|
|
49
|
+
|
|
74
50
|
export default NodeCache;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import NodeFunction from "./NodeFunction.js";
|
|
2
|
+
|
|
2
3
|
/**
|
|
3
4
|
* Base class for node parsers. A derived parser must be implemented
|
|
4
5
|
* for each supported native shader language.
|
|
@@ -13,4 +14,5 @@ declare abstract class NodeParser {
|
|
|
13
14
|
*/
|
|
14
15
|
abstract parseFunction(source: string): NodeFunction;
|
|
15
16
|
}
|
|
17
|
+
|
|
16
18
|
export default NodeParser;
|