super-three 0.179.0 → 0.184.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +3 -4
- package/build/three.cjs +14522 -12207
- package/build/three.core.js +12005 -10954
- package/build/three.core.min.js +2 -2
- package/build/three.module.js +2270 -1005
- package/build/three.module.min.js +2 -2
- package/build/three.tsl.js +63 -18
- package/build/three.tsl.min.js +2 -2
- package/build/three.webgpu.js +16573 -7890
- package/build/three.webgpu.min.js +2 -2
- package/build/three.webgpu.nodes.js +16533 -7888
- package/build/three.webgpu.nodes.min.js +2 -2
- package/examples/fonts/MPLUSRounded1c/MPLUSRounded1c-Regular.typeface.json.zip +0 -0
- package/examples/fonts/MPLUSRounded1c/OFL.txt +91 -0
- package/examples/jsm/Addons.js +12 -4
- package/examples/jsm/animation/CCDIKSolver.js +8 -4
- package/examples/jsm/controls/ArcballControls.js +15 -12
- package/examples/jsm/controls/DragControls.js +9 -59
- package/examples/jsm/controls/FirstPersonControls.js +61 -57
- package/examples/jsm/controls/FlyControls.js +5 -1
- package/examples/jsm/controls/MapControls.js +55 -1
- package/examples/jsm/controls/OrbitControls.js +113 -10
- package/examples/jsm/controls/PointerLockControls.js +2 -10
- package/examples/jsm/controls/TrackballControls.js +9 -9
- package/examples/jsm/controls/TransformControls.js +35 -3
- package/examples/jsm/csm/CSM.js +2 -1
- package/examples/jsm/csm/CSMShadowNode.js +6 -2
- package/examples/jsm/effects/AnaglyphEffect.js +102 -7
- package/examples/jsm/effects/AsciiEffect.js +8 -8
- package/examples/jsm/environments/ColorEnvironment.js +59 -0
- package/examples/jsm/environments/RoomEnvironment.js +3 -0
- package/examples/jsm/exporters/DRACOExporter.js +2 -2
- package/examples/jsm/exporters/EXRExporter.js +2 -2
- package/examples/jsm/exporters/GLTFExporter.js +185 -34
- package/examples/jsm/exporters/KTX2Exporter.js +4 -2
- package/examples/jsm/exporters/PLYExporter.js +1 -1
- package/examples/jsm/exporters/USDZExporter.js +31 -5
- package/examples/jsm/geometries/DecalGeometry.js +3 -3
- package/examples/jsm/geometries/ParametricGeometry.js +1 -1
- package/examples/jsm/geometries/TeapotGeometry.js +2 -2
- package/examples/jsm/geometries/TextGeometry.js +21 -2
- package/examples/jsm/gpgpu/BitonicSort.js +715 -0
- package/examples/jsm/helpers/AnimationPathHelper.js +302 -0
- package/examples/jsm/helpers/LightProbeGridHelper.js +221 -0
- package/examples/jsm/helpers/LightProbeHelperGPU.js +1 -1
- package/examples/jsm/helpers/TextureHelperGPU.js +1 -1
- package/examples/jsm/helpers/ViewHelper.js +110 -13
- package/examples/jsm/inspector/Extension.js +13 -0
- package/examples/jsm/inspector/Inspector.js +542 -0
- package/examples/jsm/inspector/RendererInspector.js +425 -0
- package/examples/jsm/inspector/extensions/extensions.json +6 -0
- package/examples/jsm/inspector/extensions/tsl-graph/TSLGraphEditor.js +916 -0
- package/examples/jsm/inspector/extensions/tsl-graph/TSLGraphLoader.js +281 -0
- package/examples/jsm/inspector/tabs/Console.js +238 -0
- package/examples/jsm/inspector/tabs/Memory.js +128 -0
- package/examples/jsm/inspector/tabs/Parameters.js +380 -0
- package/examples/jsm/inspector/tabs/Performance.js +268 -0
- package/examples/jsm/inspector/tabs/Settings.js +264 -0
- package/examples/jsm/inspector/tabs/Timeline.js +1611 -0
- package/examples/jsm/inspector/tabs/Viewer.js +268 -0
- package/examples/jsm/inspector/ui/Graph.js +95 -0
- package/examples/jsm/inspector/ui/Item.js +170 -0
- package/examples/jsm/inspector/ui/List.js +75 -0
- package/examples/jsm/inspector/ui/Profiler.js +2072 -0
- package/examples/jsm/inspector/ui/Style.js +1667 -0
- package/examples/jsm/inspector/ui/Tab.js +265 -0
- package/examples/jsm/inspector/ui/Values.js +476 -0
- package/examples/jsm/inspector/ui/utils.js +69 -0
- package/examples/jsm/interaction/InteractionManager.js +226 -0
- package/examples/jsm/interactive/HTMLMesh.js +6 -10
- package/examples/jsm/interactive/InteractiveGroup.js +1 -1
- package/examples/jsm/interactive/SelectionBox.js +30 -0
- package/examples/jsm/libs/ktx-parse.module.js +1 -1
- package/examples/jsm/libs/meshopt_decoder.module.js +9 -8
- package/examples/jsm/lighting/DynamicLighting.js +82 -0
- package/examples/jsm/lighting/LightProbeGrid.js +651 -0
- package/examples/jsm/lights/RectAreaLightTexturesLib.js +1 -1
- package/examples/jsm/lines/Line2.js +3 -3
- package/examples/jsm/lines/LineGeometry.js +1 -1
- package/examples/jsm/lines/LineMaterial.js +7 -1
- package/examples/jsm/lines/LineSegments2.js +2 -2
- package/examples/jsm/lines/Wireframe.js +2 -2
- package/examples/jsm/lines/WireframeGeometry2.js +1 -1
- package/examples/jsm/lines/webgpu/LineSegments2.js +1 -1
- package/examples/jsm/lines/webgpu/Wireframe.js +1 -1
- package/examples/jsm/loaders/3DMLoader.js +5 -4
- package/examples/jsm/loaders/3MFLoader.js +3 -3
- package/examples/jsm/loaders/AMFLoader.js +2 -2
- package/examples/jsm/loaders/ColladaLoader.js +27 -4029
- package/examples/jsm/loaders/DDSLoader.js +1 -1
- package/examples/jsm/loaders/DRACOLoader.js +73 -22
- package/examples/jsm/loaders/EXRLoader.js +692 -53
- package/examples/jsm/loaders/FBXLoader.js +237 -39
- package/examples/jsm/loaders/FontLoader.js +23 -5
- package/examples/jsm/loaders/GCodeLoader.js +34 -8
- package/examples/jsm/loaders/GLTFLoader.js +159 -185
- package/examples/jsm/loaders/HDRCubeTextureLoader.js +5 -5
- package/examples/jsm/loaders/HDRLoader.js +485 -0
- package/examples/jsm/loaders/KMZLoader.js +5 -5
- package/examples/jsm/loaders/KTX2Loader.js +162 -53
- package/examples/jsm/loaders/KTXLoader.js +2 -2
- package/examples/jsm/loaders/LDrawLoader.js +41 -50
- package/examples/jsm/loaders/LUT3dlLoader.js +2 -2
- package/examples/jsm/loaders/LUTCubeLoader.js +1 -1
- package/examples/jsm/loaders/LWOLoader.js +9 -41
- package/examples/jsm/loaders/MaterialXLoader.js +22 -5
- package/examples/jsm/loaders/NRRDLoader.js +2 -2
- package/examples/jsm/loaders/OBJLoader.js +1 -1
- package/examples/jsm/loaders/PCDLoader.js +4 -2
- package/examples/jsm/loaders/PDBLoader.js +1 -1
- package/examples/jsm/loaders/RGBELoader.js +7 -473
- package/examples/jsm/loaders/SVGLoader.js +4 -4
- package/examples/jsm/loaders/TDSLoader.js +0 -2
- package/examples/jsm/loaders/TGALoader.js +0 -2
- package/examples/jsm/loaders/TTFLoader.js +4 -4
- package/examples/jsm/loaders/USDLoader.js +100 -40
- package/examples/jsm/loaders/UltraHDRLoader.js +287 -162
- package/examples/jsm/loaders/VOXLoader.js +660 -117
- package/examples/jsm/loaders/VRMLLoader.js +79 -2
- package/examples/jsm/loaders/VTKLoader.js +42 -25
- package/examples/jsm/loaders/collada/ColladaComposer.js +3044 -0
- package/examples/jsm/loaders/collada/ColladaParser.js +1977 -0
- package/examples/jsm/loaders/lwo/IFFParser.js +1 -1
- package/examples/jsm/loaders/usd/USDAParser.js +450 -363
- package/examples/jsm/loaders/usd/USDCParser.js +1867 -6
- package/examples/jsm/loaders/usd/USDComposer.js +4594 -0
- package/examples/jsm/materials/LDrawConditionalLineNodeMaterial.js +2 -2
- package/examples/jsm/materials/WoodNodeMaterial.js +533 -0
- package/examples/jsm/math/ColorSpaces.js +19 -1
- package/examples/jsm/math/ConvexHull.js +3 -3
- package/examples/jsm/math/ImprovedNoise.js +1 -1
- package/examples/jsm/math/Lut.js +2 -2
- package/examples/jsm/math/Octree.js +131 -1
- package/examples/jsm/math/SimplexNoise.js +1 -1
- package/examples/jsm/misc/GPUComputationRenderer.js +2 -0
- package/examples/jsm/misc/MD2CharacterComplex.js +1 -1
- package/examples/jsm/misc/ProgressiveLightMap.js +9 -3
- package/examples/jsm/misc/ProgressiveLightMapGPU.js +7 -1
- package/examples/jsm/misc/RollerCoaster.js +42 -4
- package/examples/jsm/misc/TubePainter.js +383 -40
- package/examples/jsm/misc/Volume.js +1 -2
- package/examples/jsm/misc/VolumeSlice.js +0 -1
- package/examples/jsm/modifiers/SimplifyModifier.js +1 -1
- package/examples/jsm/modifiers/TessellateModifier.js +1 -1
- package/examples/jsm/objects/LensflareMesh.js +1 -1
- package/examples/jsm/objects/Reflector.js +73 -25
- package/examples/jsm/objects/ReflectorForSSRPass.js +1 -0
- package/examples/jsm/objects/Sky.js +91 -7
- package/examples/jsm/objects/SkyMesh.js +151 -17
- package/examples/jsm/objects/Water.js +7 -6
- package/examples/jsm/objects/Water2.js +5 -3
- package/examples/jsm/objects/WaterMesh.js +11 -13
- package/examples/jsm/physics/AmmoPhysics.js +12 -7
- package/examples/jsm/physics/JoltPhysics.js +10 -6
- package/examples/jsm/physics/RapierPhysics.js +9 -5
- package/examples/jsm/postprocessing/EffectComposer.js +7 -5
- package/examples/jsm/postprocessing/GlitchPass.js +2 -2
- package/examples/jsm/postprocessing/OutlinePass.js +1 -1
- package/examples/jsm/postprocessing/OutputPass.js +9 -0
- package/examples/jsm/postprocessing/RenderPass.js +10 -0
- package/examples/jsm/postprocessing/RenderTransitionPass.js +1 -1
- package/examples/jsm/postprocessing/SSRPass.js +37 -8
- package/examples/jsm/postprocessing/UnrealBloomPass.js +56 -24
- package/examples/jsm/renderers/CSS2DRenderer.js +16 -5
- package/examples/jsm/renderers/CSS3DRenderer.js +8 -7
- package/examples/jsm/renderers/Projector.js +246 -28
- package/examples/jsm/renderers/SVGRenderer.js +175 -61
- package/examples/jsm/shaders/ACESFilmicToneMappingShader.js +1 -1
- package/examples/jsm/shaders/AfterimageShader.js +1 -1
- package/examples/jsm/shaders/BleachBypassShader.js +1 -1
- package/examples/jsm/shaders/BokehShader.js +1 -1
- package/examples/jsm/shaders/BokehShader2.js +1 -1
- package/examples/jsm/shaders/DotScreenShader.js +1 -1
- package/examples/jsm/shaders/FocusShader.js +1 -1
- package/examples/jsm/shaders/GTAOShader.js +21 -8
- package/examples/jsm/shaders/HalftoneShader.js +12 -1
- package/examples/jsm/shaders/KaleidoShader.js +1 -1
- package/examples/jsm/shaders/PoissonDenoiseShader.js +8 -4
- package/examples/jsm/shaders/SAOShader.js +17 -4
- package/examples/jsm/shaders/SSAOShader.js +11 -1
- package/examples/jsm/shaders/SSRShader.js +7 -6
- package/examples/jsm/shaders/SepiaShader.js +1 -1
- package/examples/jsm/shaders/SubsurfaceScatteringShader.js +1 -1
- package/examples/jsm/shaders/TriangleBlurShader.js +1 -1
- package/examples/jsm/shaders/UnpackDepthRGBAShader.js +3 -5
- package/examples/jsm/shaders/VignetteShader.js +1 -1
- package/examples/jsm/transpiler/AST.js +44 -0
- package/examples/jsm/transpiler/GLSLDecoder.js +85 -25
- package/examples/jsm/transpiler/ShaderToyDecoder.js +2 -0
- package/examples/jsm/transpiler/TSLEncoder.js +52 -10
- package/examples/jsm/transpiler/TranspilerUtils.js +3 -3
- package/examples/jsm/transpiler/WGSLEncoder.js +51 -0
- package/examples/jsm/tsl/WebGLNodesHandler.js +605 -0
- package/examples/jsm/tsl/display/AfterImageNode.js +36 -24
- package/examples/jsm/tsl/display/AnaglyphPassNode.js +458 -16
- package/examples/jsm/tsl/display/AnamorphicNode.js +40 -5
- package/examples/jsm/tsl/display/BilateralBlurNode.js +374 -0
- package/examples/jsm/tsl/display/BloomNode.js +23 -9
- package/examples/jsm/tsl/display/CRT.js +150 -0
- package/examples/jsm/tsl/display/ChromaticAberrationNode.js +5 -37
- package/examples/jsm/tsl/display/DenoiseNode.js +3 -1
- package/examples/jsm/tsl/display/DepthOfFieldNode.js +446 -90
- package/examples/jsm/tsl/display/DotScreenNode.js +1 -1
- package/examples/jsm/tsl/display/FSR1Node.js +477 -0
- package/examples/jsm/tsl/display/FXAANode.js +2 -2
- package/examples/jsm/tsl/display/GTAONode.js +59 -9
- package/examples/jsm/tsl/display/GaussianBlurNode.js +68 -35
- package/examples/jsm/tsl/display/GodraysNode.js +615 -0
- package/examples/jsm/tsl/display/LensflareNode.js +1 -1
- package/examples/jsm/tsl/display/Lut3DNode.js +1 -1
- package/examples/jsm/tsl/display/OutlineNode.js +81 -20
- package/examples/jsm/tsl/display/ParallaxBarrierPassNode.js +2 -2
- package/examples/jsm/tsl/display/PixelationPassNode.js +7 -6
- package/examples/jsm/tsl/display/RGBShiftNode.js +2 -2
- package/examples/jsm/tsl/display/RetroPassNode.js +263 -0
- package/examples/jsm/tsl/display/SMAANode.js +2 -2
- package/examples/jsm/tsl/display/SSAAPassNode.js +2 -2
- package/examples/jsm/tsl/display/SSGINode.js +638 -0
- package/examples/jsm/tsl/display/SSRNode.js +186 -69
- package/examples/jsm/tsl/display/SSSNode.js +490 -0
- package/examples/jsm/tsl/display/Shape.js +29 -0
- package/examples/jsm/tsl/display/SharpenNode.js +283 -0
- package/examples/jsm/tsl/display/SobelOperatorNode.js +2 -2
- package/examples/jsm/tsl/display/StereoCompositePassNode.js +8 -1
- package/examples/jsm/tsl/display/StereoPassNode.js +1 -2
- package/examples/jsm/tsl/display/TAAUNode.js +835 -0
- package/examples/jsm/tsl/display/TRAANode.js +381 -75
- package/examples/jsm/tsl/display/TransitionNode.js +1 -1
- package/examples/jsm/tsl/display/boxBlur.js +65 -0
- package/examples/jsm/tsl/display/depthAwareBlend.js +80 -0
- package/examples/jsm/tsl/display/hashBlur.js +16 -18
- package/examples/jsm/tsl/display/radialBlur.js +68 -0
- package/examples/jsm/tsl/lighting/DynamicLightsNode.js +300 -0
- package/examples/jsm/tsl/lighting/TiledLightsNode.js +21 -1
- package/examples/jsm/tsl/lighting/data/AmbientLightDataNode.js +61 -0
- package/examples/jsm/tsl/lighting/data/DirectionalLightDataNode.js +111 -0
- package/examples/jsm/tsl/lighting/data/HemisphereLightDataNode.js +99 -0
- package/examples/jsm/tsl/lighting/data/PointLightDataNode.js +134 -0
- package/examples/jsm/tsl/lighting/data/SpotLightDataNode.js +161 -0
- package/examples/jsm/tsl/math/Bayer.js +53 -3
- package/examples/jsm/utils/BufferGeometryUtils.js +3 -4
- package/examples/jsm/utils/ColorUtils.js +76 -0
- package/examples/jsm/utils/LDrawUtils.js +1 -1
- package/examples/jsm/utils/ShadowMapViewer.js +24 -10
- package/examples/jsm/utils/ShadowMapViewerGPU.js +13 -6
- package/examples/jsm/utils/SkeletonUtils.js +14 -8
- package/examples/jsm/utils/WebGPUTextureUtils.js +1 -1
- package/examples/jsm/webxr/OculusHandModel.js +1 -1
- package/examples/jsm/webxr/XRControllerModelFactory.js +1 -1
- package/examples/jsm/webxr/XRHandMeshModel.js +36 -10
- package/examples/jsm/webxr/XRHandModelFactory.js +4 -7
- package/package.json +27 -38
- package/src/Three.Core.js +7 -3
- package/src/Three.TSL.js +61 -16
- package/src/Three.WebGPU.Nodes.js +7 -0
- package/src/Three.WebGPU.js +11 -0
- package/src/Three.js +1 -0
- package/src/animation/AnimationAction.js +12 -2
- package/src/animation/AnimationClip.js +21 -5
- package/src/animation/AnimationMixer.js +9 -3
- package/src/animation/AnimationObjectGroup.js +2 -1
- package/src/animation/AnimationUtils.js +1 -12
- package/src/animation/KeyframeTrack.js +54 -14
- package/src/animation/PropertyBinding.js +12 -11
- package/src/animation/PropertyMixer.js +4 -4
- package/src/animation/tracks/BooleanKeyframeTrack.js +1 -1
- package/src/animation/tracks/ColorKeyframeTrack.js +1 -1
- package/src/animation/tracks/NumberKeyframeTrack.js +1 -1
- package/src/animation/tracks/QuaternionKeyframeTrack.js +1 -1
- package/src/animation/tracks/StringKeyframeTrack.js +1 -1
- package/src/animation/tracks/VectorKeyframeTrack.js +1 -1
- package/src/audio/Audio.js +11 -10
- package/src/audio/AudioContext.js +2 -2
- package/src/audio/AudioListener.js +5 -3
- package/src/audio/PositionalAudio.js +1 -1
- package/src/cameras/Camera.js +32 -2
- package/src/cameras/CubeCamera.js +20 -0
- package/src/cameras/OrthographicCamera.js +1 -1
- package/src/cameras/PerspectiveCamera.js +1 -1
- package/src/cameras/StereoCamera.js +2 -2
- package/src/constants.js +100 -7
- package/src/core/BufferAttribute.js +13 -1
- package/src/core/BufferGeometry.js +24 -12
- package/src/core/Clock.js +7 -0
- package/src/core/EventDispatcher.js +1 -1
- package/src/core/InterleavedBuffer.js +1 -1
- package/src/core/InterleavedBufferAttribute.js +3 -2
- package/src/core/Object3D.js +55 -6
- package/src/core/Raycaster.js +4 -3
- package/src/core/RenderTarget.js +14 -5
- package/src/extras/Controls.js +5 -4
- package/src/extras/DataUtils.js +2 -1
- package/src/extras/Earcut.js +6 -0
- package/src/extras/ImageUtils.js +2 -2
- package/src/extras/PMREMGenerator.js +259 -57
- package/src/extras/TextureUtils.js +6 -1
- package/src/extras/core/Curve.js +2 -1
- package/src/extras/core/Interpolations.js +7 -1
- package/src/extras/core/ShapePath.js +4 -4
- package/src/extras/curves/CatmullRomCurve3.js +3 -2
- package/src/extras/lib/earcut.js +8 -8
- package/src/geometries/BoxGeometry.js +1 -0
- package/src/geometries/CapsuleGeometry.js +1 -0
- package/src/geometries/CircleGeometry.js +1 -0
- package/src/geometries/ConeGeometry.js +1 -0
- package/src/geometries/CylinderGeometry.js +1 -0
- package/src/geometries/DodecahedronGeometry.js +1 -0
- package/src/geometries/ExtrudeGeometry.js +10 -8
- package/src/geometries/IcosahedronGeometry.js +1 -0
- package/src/geometries/LatheGeometry.js +1 -0
- package/src/geometries/OctahedronGeometry.js +1 -0
- package/src/geometries/PlaneGeometry.js +1 -0
- package/src/geometries/PolyhedronGeometry.js +1 -1
- package/src/geometries/RingGeometry.js +1 -0
- package/src/geometries/ShapeGeometry.js +1 -0
- package/src/geometries/SphereGeometry.js +1 -0
- package/src/geometries/TetrahedronGeometry.js +1 -0
- package/src/geometries/TorusGeometry.js +9 -3
- package/src/geometries/TorusKnotGeometry.js +1 -0
- package/src/geometries/TubeGeometry.js +1 -0
- package/src/helpers/CameraHelper.js +4 -1
- package/src/helpers/DirectionalLightHelper.js +4 -1
- package/src/helpers/HemisphereLightHelper.js +3 -0
- package/src/helpers/PointLightHelper.js +1 -25
- package/src/helpers/SpotLightHelper.js +3 -0
- package/src/lights/DirectionalLight.js +13 -0
- package/src/lights/HemisphereLight.js +10 -0
- package/src/lights/Light.js +1 -11
- package/src/lights/LightProbe.js +0 -15
- package/src/lights/LightShadow.js +15 -6
- package/src/lights/PointLight.js +15 -0
- package/src/lights/PointLightShadow.js +0 -86
- package/src/lights/SpotLight.js +22 -1
- package/src/lights/webgpu/IESSpotLight.js +2 -1
- package/src/lights/webgpu/ProjectorLight.js +1 -1
- package/src/loaders/AnimationLoader.js +2 -1
- package/src/loaders/AudioLoader.js +13 -2
- package/src/loaders/BufferGeometryLoader.js +2 -2
- package/src/loaders/Cache.js +30 -2
- package/src/loaders/DataTextureLoader.js +6 -4
- package/src/loaders/FileLoader.js +4 -4
- package/src/loaders/ImageBitmapLoader.js +17 -13
- package/src/loaders/ImageLoader.js +1 -1
- package/src/loaders/Loader.js +9 -3
- package/src/loaders/LoadingManager.js +25 -3
- package/src/loaders/MaterialLoader.js +6 -4
- package/src/loaders/ObjectLoader.js +57 -17
- package/src/loaders/TextureLoader.js +1 -1
- package/src/loaders/nodes/NodeLoader.js +5 -4
- package/src/loaders/nodes/NodeObjectLoader.js +18 -0
- package/src/materials/Material.js +18 -3
- package/src/materials/MeshBasicMaterial.js +1 -0
- package/src/materials/MeshDepthMaterial.js +1 -0
- package/src/materials/MeshDistanceMaterial.js +1 -1
- package/src/materials/MeshLambertMaterial.js +11 -1
- package/src/materials/MeshMatcapMaterial.js +22 -0
- package/src/materials/MeshNormalMaterial.js +1 -0
- package/src/materials/MeshPhongMaterial.js +11 -1
- package/src/materials/MeshPhysicalMaterial.js +2 -1
- package/src/materials/MeshStandardMaterial.js +8 -7
- package/src/materials/MeshToonMaterial.js +2 -1
- package/src/materials/PointsMaterial.js +1 -1
- package/src/materials/ShaderMaterial.js +22 -3
- package/src/materials/nodes/Line2NodeMaterial.js +36 -9
- package/src/materials/nodes/MeshPhysicalNodeMaterial.js +5 -2
- package/src/materials/nodes/MeshSSSNodeMaterial.js +1 -1
- package/src/materials/nodes/MeshStandardNodeMaterial.js +5 -4
- package/src/materials/nodes/NodeMaterial.js +95 -35
- package/src/materials/nodes/PointsNodeMaterial.js +81 -28
- package/src/materials/nodes/SpriteNodeMaterial.js +3 -15
- package/src/materials/nodes/manager/NodeMaterialObserver.js +194 -88
- package/src/math/Color.js +6 -5
- package/src/math/ColorManagement.js +9 -3
- package/src/math/Cylindrical.js +1 -1
- package/src/math/Euler.js +2 -1
- package/src/math/Line3.js +6 -5
- package/src/math/MathUtils.js +23 -21
- package/src/math/Matrix2.js +14 -10
- package/src/math/Matrix3.js +15 -11
- package/src/math/Matrix4.js +94 -81
- package/src/math/Plane.js +5 -4
- package/src/math/Quaternion.js +60 -84
- package/src/math/Sphere.js +1 -1
- package/src/math/Spherical.js +1 -1
- package/src/math/Triangle.js +1 -1
- package/src/math/Vector2.js +11 -7
- package/src/math/Vector3.js +15 -13
- package/src/math/Vector4.js +13 -9
- package/src/math/interpolants/BezierInterpolant.js +108 -0
- package/src/nodes/Nodes.js +86 -65
- package/src/nodes/TSL.js +11 -8
- package/src/nodes/accessors/Arrays.js +1 -1
- package/src/nodes/accessors/BatchNode.js +10 -10
- package/src/nodes/accessors/Bitangent.js +5 -5
- package/src/nodes/accessors/BufferAttributeNode.js +107 -15
- package/src/nodes/accessors/BufferNode.js +30 -3
- package/src/nodes/accessors/Camera.js +260 -13
- package/src/nodes/accessors/ClippingNode.js +10 -9
- package/src/nodes/accessors/CubeTextureNode.js +32 -6
- package/src/nodes/accessors/InstanceNode.js +164 -39
- package/src/nodes/accessors/Lights.js +10 -0
- package/src/nodes/accessors/MaterialNode.js +9 -1
- package/src/nodes/accessors/MaterialProperties.js +2 -5
- package/src/nodes/accessors/MaterialReferenceNode.js +1 -2
- package/src/nodes/accessors/ModelNode.js +1 -1
- package/src/nodes/accessors/Normal.js +16 -15
- package/src/nodes/accessors/Object3DNode.js +2 -2
- package/src/nodes/accessors/Position.js +51 -3
- package/src/nodes/accessors/ReferenceBaseNode.js +7 -7
- package/src/nodes/accessors/ReferenceNode.js +11 -10
- package/src/nodes/accessors/RendererReferenceNode.js +1 -2
- package/src/nodes/accessors/SceneProperties.js +47 -0
- package/src/nodes/accessors/SkinningNode.js +27 -26
- package/src/nodes/accessors/StorageBufferNode.js +14 -24
- package/src/nodes/accessors/StorageTextureNode.js +62 -9
- package/src/nodes/accessors/Tangent.js +4 -14
- package/src/nodes/accessors/Texture3DNode.js +41 -31
- package/src/nodes/accessors/TextureNode.js +193 -63
- package/src/nodes/accessors/UniformArrayNode.js +6 -4
- package/src/nodes/accessors/UserDataNode.js +1 -2
- package/src/nodes/accessors/VertexColorNode.js +1 -2
- package/src/nodes/code/FunctionCallNode.js +25 -5
- package/src/nodes/code/FunctionNode.js +25 -3
- package/src/nodes/core/ArrayNode.js +22 -2
- package/src/nodes/core/AssignNode.js +6 -5
- package/src/nodes/core/AttributeNode.js +5 -4
- package/src/nodes/core/BypassNode.js +1 -1
- package/src/nodes/core/ContextNode.js +133 -15
- package/src/nodes/core/IndexNode.js +4 -3
- package/src/nodes/core/InputNode.js +3 -2
- package/src/nodes/core/InspectorNode.js +128 -0
- package/src/nodes/core/{CacheNode.js → IsolateNode.js} +41 -8
- package/src/nodes/core/MRTNode.js +48 -2
- package/src/nodes/core/Node.js +264 -46
- package/src/nodes/core/NodeBuilder.js +453 -87
- package/src/nodes/core/NodeError.js +28 -0
- package/src/nodes/core/NodeFrame.js +31 -23
- package/src/nodes/core/NodeFunction.js +2 -1
- package/src/nodes/core/NodeParser.js +2 -1
- package/src/nodes/core/NodeUniform.js +1 -1
- package/src/nodes/core/NodeUtils.js +25 -97
- package/src/nodes/core/OutputStructNode.js +12 -10
- package/src/nodes/core/ParameterNode.js +34 -3
- package/src/nodes/core/PropertyNode.js +26 -3
- package/src/nodes/core/StackNode.js +99 -23
- package/src/nodes/core/StackTrace.js +139 -0
- package/src/nodes/core/StructNode.js +22 -8
- package/src/nodes/core/StructTypeNode.js +13 -18
- package/src/nodes/core/SubBuildNode.js +4 -4
- package/src/nodes/core/UniformGroupNode.js +36 -6
- package/src/nodes/core/UniformNode.js +37 -13
- package/src/nodes/core/VarNode.js +96 -34
- package/src/nodes/core/VaryingNode.js +2 -18
- package/src/nodes/display/BlendModes.js +0 -63
- package/src/nodes/display/BumpMapNode.js +1 -1
- package/src/nodes/display/ColorAdjustment.js +18 -1
- package/src/nodes/display/ColorSpaceNode.js +3 -3
- package/src/nodes/display/FrontFacingNode.js +4 -8
- package/src/nodes/display/NormalMapNode.js +41 -5
- package/src/nodes/display/PassNode.js +175 -25
- package/src/nodes/display/RenderOutputNode.js +35 -9
- package/src/nodes/display/ScreenNode.js +47 -15
- package/src/nodes/display/ToneMappingNode.js +32 -5
- package/src/nodes/display/ToonOutlinePassNode.js +10 -2
- package/src/nodes/display/ViewportDepthNode.js +52 -4
- package/src/nodes/display/ViewportDepthTextureNode.js +14 -6
- package/src/nodes/display/ViewportSharedTextureNode.js +12 -0
- package/src/nodes/display/ViewportTextureNode.js +72 -14
- package/src/nodes/fog/Fog.js +18 -34
- package/src/nodes/functions/BSDF/BRDF_GGX_Multiscatter.js +52 -0
- package/src/nodes/functions/BSDF/DFGLUT.js +56 -0
- package/src/nodes/functions/BSDF/EnvironmentBRDF.js +2 -2
- package/src/nodes/functions/BSDF/V_GGX_SmithCorrelated_Anisotropic.js +2 -2
- package/src/nodes/functions/BasicLightingModel.js +2 -1
- package/src/nodes/functions/PhysicalLightingModel.js +128 -46
- package/src/nodes/functions/VolumetricLightingModel.js +5 -5
- package/src/nodes/geometry/RangeNode.js +44 -6
- package/src/nodes/gpgpu/AtomicFunctionNode.js +1 -1
- package/src/nodes/gpgpu/BarrierNode.js +9 -0
- package/src/nodes/gpgpu/ComputeBuiltinNode.js +4 -4
- package/src/nodes/gpgpu/ComputeNode.js +76 -38
- package/src/nodes/gpgpu/SubgroupFunctionNode.js +455 -0
- package/src/nodes/gpgpu/WorkgroupInfoNode.js +5 -4
- package/src/nodes/lighting/AnalyticLightNode.js +53 -0
- package/src/nodes/lighting/EnvironmentNode.js +34 -9
- package/src/nodes/lighting/LightsNode.js +10 -32
- package/src/nodes/lighting/PointShadowNode.js +167 -148
- package/src/nodes/lighting/ShadowFilterNode.js +55 -65
- package/src/nodes/lighting/ShadowNode.js +189 -44
- package/src/nodes/math/BitcastNode.js +156 -0
- package/src/nodes/math/BitcountNode.js +433 -0
- package/src/nodes/math/ConditionalNode.js +25 -8
- package/src/nodes/math/MathNode.js +98 -57
- package/src/nodes/math/OperatorNode.js +8 -5
- package/src/nodes/math/PackFloatNode.js +98 -0
- package/src/nodes/math/UnpackFloatNode.js +96 -0
- package/src/nodes/pmrem/PMREMNode.js +1 -1
- package/src/nodes/pmrem/PMREMUtils.js +111 -2
- package/src/nodes/shapes/Shapes.js +1 -1
- package/src/nodes/tsl/TSLBase.js +6 -3
- package/src/nodes/tsl/TSLCore.js +488 -166
- package/src/nodes/utils/ArrayElementNode.js +14 -1
- package/src/nodes/utils/ConvertNode.js +1 -1
- package/src/nodes/utils/DebugNode.js +14 -13
- package/src/nodes/utils/EventNode.js +67 -2
- package/src/nodes/utils/FlipNode.js +1 -1
- package/src/nodes/utils/FunctionOverloadingNode.js +37 -19
- package/src/nodes/utils/JoinNode.js +7 -4
- package/src/nodes/utils/LoopNode.js +20 -24
- package/src/nodes/utils/MemberNode.js +60 -8
- package/src/nodes/utils/Packing.js +13 -1
- package/src/nodes/utils/PostProcessingUtils.js +60 -1
- package/src/nodes/utils/RTTNode.js +14 -4
- package/src/nodes/utils/ReflectorNode.js +61 -11
- package/src/nodes/utils/Remap.js +48 -0
- package/src/nodes/utils/RotateNode.js +1 -1
- package/src/nodes/utils/SampleNode.js +12 -2
- package/src/nodes/utils/SetNode.js +1 -1
- package/src/nodes/utils/SplitNode.js +12 -1
- package/src/nodes/utils/SpriteSheetUV.js +35 -0
- package/src/nodes/utils/Timer.js +0 -47
- package/src/nodes/utils/UVUtils.js +28 -0
- package/src/objects/BatchedMesh.js +46 -18
- package/src/objects/InstancedMesh.js +30 -3
- package/src/objects/LOD.js +1 -1
- package/src/objects/Line.js +3 -2
- package/src/objects/LineSegments.js +2 -1
- package/src/objects/Mesh.js +1 -1
- package/src/objects/Points.js +1 -1
- package/src/objects/Skeleton.js +12 -2
- package/src/objects/SkinnedMesh.js +29 -10
- package/src/objects/Sprite.js +4 -3
- package/src/renderers/WebGLRenderer.js +372 -179
- package/src/renderers/common/Animation.js +16 -4
- package/src/renderers/common/Attributes.js +16 -2
- package/src/renderers/common/Backend.js +137 -35
- package/src/renderers/common/Background.js +28 -14
- package/src/renderers/common/BindGroup.js +1 -16
- package/src/renderers/common/Binding.js +11 -0
- package/src/renderers/common/Bindings.js +83 -12
- package/src/renderers/common/BlendMode.js +143 -0
- package/src/renderers/common/Buffer.js +40 -0
- package/src/renderers/common/BundleGroup.js +1 -1
- package/src/renderers/common/CanvasTarget.js +341 -0
- package/src/renderers/common/ChainMap.js +30 -6
- package/src/renderers/common/ComputePipeline.js +1 -1
- package/src/renderers/common/CubeRenderTarget.js +51 -7
- package/src/renderers/common/DataMap.js +1 -1
- package/src/renderers/common/Geometries.js +55 -3
- package/src/renderers/common/Info.js +337 -6
- package/src/renderers/common/InspectorBase.js +151 -0
- package/src/renderers/common/Lighting.js +5 -21
- package/src/renderers/common/Pipelines.js +41 -8
- package/src/renderers/common/PostProcessing.js +9 -226
- package/src/renderers/common/QuadMesh.js +7 -1
- package/src/renderers/common/ReadbackBuffer.js +78 -0
- package/src/renderers/common/RenderBundle.js +3 -1
- package/src/renderers/common/RenderBundles.js +7 -3
- package/src/renderers/common/RenderContext.js +18 -2
- package/src/renderers/common/RenderContexts.js +33 -49
- package/src/renderers/common/RenderList.js +7 -3
- package/src/renderers/common/RenderLists.js +2 -1
- package/src/renderers/common/RenderObject.js +32 -6
- package/src/renderers/common/RenderObjectPipeline.js +40 -0
- package/src/renderers/common/RenderObjects.js +22 -6
- package/src/renderers/common/RenderPipeline.js +232 -17
- package/src/renderers/common/Renderer.js +927 -335
- package/src/renderers/common/RendererUtils.js +9 -0
- package/src/renderers/common/SampledTexture.js +9 -1
- package/src/renderers/common/Sampler.js +52 -14
- package/src/renderers/common/StorageBuffer.js +13 -1
- package/src/renderers/common/StorageTexture.js +9 -1
- package/src/renderers/common/Textures.js +208 -47
- package/src/renderers/common/TimestampQueryPool.js +70 -6
- package/src/renderers/common/Uniform.js +8 -0
- package/src/renderers/common/UniformsGroup.js +64 -2
- package/src/renderers/common/XRManager.js +79 -51
- package/src/renderers/common/extras/PMREMGenerator.js +176 -79
- package/src/renderers/common/nodes/NodeBuilderState.js +1 -1
- package/src/renderers/common/nodes/NodeLibrary.js +9 -7
- package/src/renderers/common/nodes/{Nodes.js → NodeManager.js} +260 -95
- package/src/renderers/common/nodes/NodeSampler.js +13 -1
- package/src/renderers/common/nodes/NodeStorageBuffer.js +13 -2
- package/src/renderers/common/nodes/NodeUniformBuffer.js +52 -0
- package/src/renderers/shaders/DFGLUTData.js +49 -0
- package/src/renderers/shaders/ShaderChunk/batching_pars_vertex.glsl.js +2 -2
- package/src/renderers/shaders/ShaderChunk/color_fragment.glsl.js +1 -5
- package/src/renderers/shaders/ShaderChunk/color_pars_fragment.glsl.js +1 -5
- package/src/renderers/shaders/ShaderChunk/color_pars_vertex.glsl.js +1 -5
- package/src/renderers/shaders/ShaderChunk/color_vertex.glsl.js +8 -10
- package/src/renderers/shaders/ShaderChunk/common.glsl.js +0 -12
- package/src/renderers/shaders/ShaderChunk/envmap_common_pars_fragment.glsl.js +1 -2
- package/src/renderers/shaders/ShaderChunk/envmap_fragment.glsl.js +8 -12
- package/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/lightprobes_pars_fragment.glsl.js +80 -0
- package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +13 -2
- package/src/renderers/shaders/ShaderChunk/lights_fragment_end.glsl.js +6 -0
- package/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js +6 -2
- package/src/renderers/shaders/ShaderChunk/lights_pars_begin.glsl.js +2 -0
- package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +8 -4
- package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +152 -59
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_vertex.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_vertex.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/normal_fragment_maps.glsl.js +7 -0
- package/src/renderers/shaders/ShaderChunk/packing.glsl.js +20 -4
- package/src/renderers/shaders/ShaderChunk/premultiplied_alpha_fragment.glsl.js +0 -1
- package/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +221 -190
- package/src/renderers/shaders/ShaderChunk/shadowmap_vertex.glsl.js +12 -2
- package/src/renderers/shaders/ShaderChunk/shadowmask_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk.js +5 -3
- package/src/renderers/shaders/ShaderLib/backgroundCube.glsl.js +1 -2
- package/src/renderers/shaders/ShaderLib/depth.glsl.js +4 -1
- package/src/renderers/shaders/ShaderLib/{distanceRGBA.glsl.js → distance.glsl.js} +1 -2
- package/src/renderers/shaders/ShaderLib/meshlambert.glsl.js +2 -1
- package/src/renderers/shaders/ShaderLib/meshnormal.glsl.js +1 -2
- package/src/renderers/shaders/ShaderLib/meshphong.glsl.js +2 -1
- package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +4 -9
- package/src/renderers/shaders/ShaderLib/meshtoon.glsl.js +0 -1
- package/src/renderers/shaders/ShaderLib/shadow.glsl.js +1 -1
- package/src/renderers/shaders/ShaderLib/vsm.glsl.js +4 -6
- package/src/renderers/shaders/ShaderLib.js +7 -6
- package/src/renderers/shaders/UniformsLib.js +8 -5
- package/src/renderers/shaders/UniformsUtils.js +52 -9
- package/src/renderers/webgl/WebGLAnimation.js +2 -1
- package/src/renderers/webgl/WebGLBackground.js +15 -15
- package/src/renderers/webgl/WebGLBindingStates.js +99 -27
- package/src/renderers/webgl/WebGLBufferRenderer.js +0 -32
- package/src/renderers/webgl/WebGLCapabilities.js +11 -5
- package/src/renderers/webgl/WebGLEnvironments.js +228 -0
- package/src/renderers/webgl/WebGLExtensions.js +2 -25
- package/src/renderers/webgl/WebGLGeometries.js +10 -7
- package/src/renderers/webgl/WebGLIndexedBufferRenderer.js +0 -32
- package/src/renderers/webgl/WebGLInfo.js +3 -1
- package/src/renderers/webgl/WebGLLights.js +18 -1
- package/src/renderers/webgl/WebGLMaterials.js +24 -13
- package/src/renderers/webgl/WebGLObjects.js +3 -1
- package/src/renderers/webgl/WebGLOutput.js +270 -0
- package/src/renderers/webgl/WebGLProgram.js +63 -122
- package/src/renderers/webgl/WebGLPrograms.js +65 -52
- package/src/renderers/webgl/WebGLRenderLists.js +15 -0
- package/src/renderers/webgl/WebGLRenderStates.js +13 -2
- package/src/renderers/webgl/WebGLShadowMap.js +191 -26
- package/src/renderers/webgl/WebGLState.js +79 -40
- package/src/renderers/webgl/WebGLTextures.js +234 -68
- package/src/renderers/webgl/WebGLUniforms.js +40 -3
- package/src/renderers/webgl/WebGLUniformsGroups.js +24 -3
- package/src/renderers/webgl/WebGLUtils.js +8 -3
- package/src/renderers/webgl-fallback/WebGLBackend.js +438 -235
- package/src/renderers/webgl-fallback/WebGLBufferRenderer.js +0 -41
- package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +339 -84
- package/src/renderers/webgl-fallback/utils/WebGLAttributeUtils.js +53 -19
- package/src/renderers/webgl-fallback/utils/WebGLCapabilities.js +25 -0
- package/src/renderers/webgl-fallback/utils/WebGLConstants.js +2 -3
- package/src/renderers/webgl-fallback/utils/WebGLState.js +229 -11
- package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +237 -72
- package/src/renderers/webgl-fallback/utils/WebGLTimestampQueryPool.js +56 -27
- package/src/renderers/webgl-fallback/utils/WebGLUtils.js +8 -3
- package/src/renderers/webgpu/WebGPUBackend.js +403 -253
- package/src/renderers/webgpu/WebGPURenderer.Nodes.js +2 -1
- package/src/renderers/webgpu/WebGPURenderer.js +5 -3
- package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +491 -123
- package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +108 -34
- package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +360 -201
- package/src/renderers/webgpu/utils/WebGPUCapabilities.js +48 -0
- package/src/renderers/webgpu/utils/WebGPUConstants.js +17 -2
- package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +111 -54
- package/src/renderers/webgpu/utils/WebGPUTexturePassUtils.js +155 -205
- package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +407 -149
- package/src/renderers/webgpu/utils/WebGPUTimestampQueryPool.js +36 -13
- package/src/renderers/webgpu/utils/WebGPUUtils.js +55 -13
- package/src/renderers/webxr/WebXRController.js +12 -0
- package/src/renderers/webxr/WebXRManager.js +45 -29
- package/src/textures/CubeDepthTexture.js +76 -0
- package/src/textures/ExternalTexture.js +15 -4
- package/src/textures/HTMLTexture.js +74 -0
- package/src/textures/Source.js +5 -4
- package/src/textures/Texture.js +19 -7
- package/src/textures/VideoTexture.js +2 -3
- package/src/utils.js +344 -3
- package/examples/jsm/loaders/RGBMLoader.js +0 -1148
- package/examples/jsm/materials/MeshGouraudMaterial.js +0 -434
- package/examples/jsm/materials/MeshPostProcessingMaterial.js +0 -167
- package/examples/jsm/shaders/GodRaysShader.js +0 -333
- package/src/nodes/accessors/SceneNode.js +0 -144
- package/src/nodes/code/ScriptableNode.js +0 -726
- package/src/nodes/code/ScriptableValueNode.js +0 -253
- package/src/nodes/display/PosterizeNode.js +0 -65
- package/src/nodes/functions/BSDF/DFGApprox.js +0 -30
- package/src/nodes/utils/RemapNode.js +0 -125
- package/src/nodes/utils/SpriteSheetUVNode.js +0 -90
- package/src/renderers/webgl/WebGLCubeMaps.js +0 -99
- package/src/renderers/webgl/WebGLCubeUVMaps.js +0 -134
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import OutputStructNode from './OutputStructNode.js';
|
|
2
2
|
import { nodeProxy, vec4 } from '../tsl/TSLBase.js';
|
|
3
|
+
import { MaterialBlending, NoBlending } from '../../constants.js';
|
|
4
|
+
import BlendMode from '../../renderers/common/BlendMode.js';
|
|
5
|
+
|
|
6
|
+
// Predefined blend modes for MRT nodes.
|
|
7
|
+
const _noBlending = /**@__PURE__*/ new BlendMode( NoBlending );
|
|
8
|
+
const _materialBlending = /**@__PURE__*/ new BlendMode( MaterialBlending );
|
|
3
9
|
|
|
4
10
|
/**
|
|
5
11
|
* Returns the MRT texture index for the given name.
|
|
@@ -31,7 +37,7 @@ export function getTextureIndex( textures, name ) {
|
|
|
31
37
|
* const mrtNode = mrt( {
|
|
32
38
|
* output: output,
|
|
33
39
|
* normal: normalView
|
|
34
|
-
* } )
|
|
40
|
+
* } ) ;
|
|
35
41
|
* ```
|
|
36
42
|
* The MRT output is defined as a dictionary.
|
|
37
43
|
*
|
|
@@ -63,6 +69,15 @@ class MRTNode extends OutputStructNode {
|
|
|
63
69
|
*/
|
|
64
70
|
this.outputNodes = outputNodes;
|
|
65
71
|
|
|
72
|
+
/**
|
|
73
|
+
* A dictionary storing the blend modes for each output.
|
|
74
|
+
*
|
|
75
|
+
* @type {Object<string, BlendMode>}
|
|
76
|
+
*/
|
|
77
|
+
this.blendModes = {
|
|
78
|
+
output: _materialBlending
|
|
79
|
+
};
|
|
80
|
+
|
|
66
81
|
/**
|
|
67
82
|
* This flag can be used for type testing.
|
|
68
83
|
*
|
|
@@ -74,6 +89,33 @@ class MRTNode extends OutputStructNode {
|
|
|
74
89
|
|
|
75
90
|
}
|
|
76
91
|
|
|
92
|
+
/**
|
|
93
|
+
* Sets the blend mode for the given output name.
|
|
94
|
+
*
|
|
95
|
+
* @param {string} name - The name of the output.
|
|
96
|
+
* @param {BlendMode} blend - The blending mode.
|
|
97
|
+
* @return {MRTNode} The current MRT node.
|
|
98
|
+
*/
|
|
99
|
+
setBlendMode( name, blend ) {
|
|
100
|
+
|
|
101
|
+
this.blendModes[ name ] = blend;
|
|
102
|
+
|
|
103
|
+
return this;
|
|
104
|
+
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Returns the blend mode for the given output name.
|
|
109
|
+
*
|
|
110
|
+
* @param {string} name - The name of the output.
|
|
111
|
+
* @return {BlendMode} The blend mode.
|
|
112
|
+
*/
|
|
113
|
+
getBlendMode( name ) {
|
|
114
|
+
|
|
115
|
+
return this.blendModes[ name ] || _noBlending;
|
|
116
|
+
|
|
117
|
+
}
|
|
118
|
+
|
|
77
119
|
/**
|
|
78
120
|
* Returns `true` if the MRT node has an output with the given name.
|
|
79
121
|
*
|
|
@@ -107,8 +149,12 @@ class MRTNode extends OutputStructNode {
|
|
|
107
149
|
merge( mrtNode ) {
|
|
108
150
|
|
|
109
151
|
const outputs = { ...this.outputNodes, ...mrtNode.outputNodes };
|
|
152
|
+
const blendings = { ...this.blendModes, ...mrtNode.blendModes };
|
|
153
|
+
|
|
154
|
+
const mrtTarget = mrt( outputs );
|
|
155
|
+
mrtTarget.blendings = blendings;
|
|
110
156
|
|
|
111
|
-
return
|
|
157
|
+
return mrtTarget;
|
|
112
158
|
|
|
113
159
|
}
|
|
114
160
|
|
package/src/nodes/core/Node.js
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { NodeUpdateType } from './constants.js';
|
|
2
|
-
import {
|
|
2
|
+
import { hash, hashArray, hashString } from './NodeUtils.js';
|
|
3
3
|
|
|
4
4
|
import { EventDispatcher } from '../../core/EventDispatcher.js';
|
|
5
5
|
import { MathUtils } from '../../math/MathUtils.js';
|
|
6
|
+
import { warn, error } from '../../utils.js';
|
|
7
|
+
|
|
8
|
+
import StackTrace from './StackTrace.js';
|
|
6
9
|
|
|
7
10
|
const _parentBuildStage = {
|
|
8
11
|
analyze: 'setup',
|
|
@@ -65,14 +68,6 @@ class Node extends EventDispatcher {
|
|
|
65
68
|
*/
|
|
66
69
|
this.updateAfterType = NodeUpdateType.NONE;
|
|
67
70
|
|
|
68
|
-
/**
|
|
69
|
-
* The UUID of the node.
|
|
70
|
-
*
|
|
71
|
-
* @type {string}
|
|
72
|
-
* @readonly
|
|
73
|
-
*/
|
|
74
|
-
this.uuid = MathUtils.generateUUID();
|
|
75
|
-
|
|
76
71
|
/**
|
|
77
72
|
* The version of the node. The version automatically is increased when {@link Node#needsUpdate} is set to `true`.
|
|
78
73
|
*
|
|
@@ -82,6 +77,14 @@ class Node extends EventDispatcher {
|
|
|
82
77
|
*/
|
|
83
78
|
this.version = 0;
|
|
84
79
|
|
|
80
|
+
/**
|
|
81
|
+
* The name of the node.
|
|
82
|
+
*
|
|
83
|
+
* @type {string}
|
|
84
|
+
* @default ''
|
|
85
|
+
*/
|
|
86
|
+
this.name = '';
|
|
87
|
+
|
|
85
88
|
/**
|
|
86
89
|
* Whether this node is global or not. This property is relevant for the internal
|
|
87
90
|
* node caching system. All nodes which should be declared just once should
|
|
@@ -111,6 +114,8 @@ class Node extends EventDispatcher {
|
|
|
111
114
|
|
|
112
115
|
// private
|
|
113
116
|
|
|
117
|
+
this._beforeNodes = null;
|
|
118
|
+
|
|
114
119
|
/**
|
|
115
120
|
* The cache key of this node.
|
|
116
121
|
*
|
|
@@ -121,7 +126,16 @@ class Node extends EventDispatcher {
|
|
|
121
126
|
this._cacheKey = null;
|
|
122
127
|
|
|
123
128
|
/**
|
|
124
|
-
* The
|
|
129
|
+
* The UUID of the node.
|
|
130
|
+
*
|
|
131
|
+
* @type {string}
|
|
132
|
+
* @default null
|
|
133
|
+
* @private
|
|
134
|
+
*/
|
|
135
|
+
this._uuid = null;
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* The cache key's version.
|
|
125
139
|
*
|
|
126
140
|
* @private
|
|
127
141
|
* @type {number}
|
|
@@ -129,7 +143,27 @@ class Node extends EventDispatcher {
|
|
|
129
143
|
*/
|
|
130
144
|
this._cacheKeyVersion = 0;
|
|
131
145
|
|
|
132
|
-
|
|
146
|
+
/**
|
|
147
|
+
* The unique ID of the node.
|
|
148
|
+
*
|
|
149
|
+
* @type {number}
|
|
150
|
+
* @readonly
|
|
151
|
+
*/
|
|
152
|
+
this.id = _nodeId ++;
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* The stack trace of the node for debugging purposes.
|
|
156
|
+
*
|
|
157
|
+
* @type {?string}
|
|
158
|
+
* @default null
|
|
159
|
+
*/
|
|
160
|
+
this.stackTrace = null;
|
|
161
|
+
|
|
162
|
+
if ( Node.captureStackTrace === true ) {
|
|
163
|
+
|
|
164
|
+
this.stackTrace = new StackTrace();
|
|
165
|
+
|
|
166
|
+
}
|
|
133
167
|
|
|
134
168
|
}
|
|
135
169
|
|
|
@@ -150,6 +184,24 @@ class Node extends EventDispatcher {
|
|
|
150
184
|
|
|
151
185
|
}
|
|
152
186
|
|
|
187
|
+
/**
|
|
188
|
+
* The UUID of the node.
|
|
189
|
+
*
|
|
190
|
+
* @type {string}
|
|
191
|
+
* @readonly
|
|
192
|
+
*/
|
|
193
|
+
get uuid() {
|
|
194
|
+
|
|
195
|
+
if ( this._uuid === null ) {
|
|
196
|
+
|
|
197
|
+
this._uuid = MathUtils.generateUUID();
|
|
198
|
+
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
return this._uuid;
|
|
202
|
+
|
|
203
|
+
}
|
|
204
|
+
|
|
153
205
|
/**
|
|
154
206
|
* The type of the class. The value is usually the constructor name.
|
|
155
207
|
*
|
|
@@ -172,7 +224,7 @@ class Node extends EventDispatcher {
|
|
|
172
224
|
onUpdate( callback, updateType ) {
|
|
173
225
|
|
|
174
226
|
this.updateType = updateType;
|
|
175
|
-
this.update = callback.bind( this
|
|
227
|
+
this.update = callback.bind( this );
|
|
176
228
|
|
|
177
229
|
return this;
|
|
178
230
|
|
|
@@ -225,26 +277,12 @@ class Node extends EventDispatcher {
|
|
|
225
277
|
*/
|
|
226
278
|
onReference( callback ) {
|
|
227
279
|
|
|
228
|
-
this.updateReference = callback.bind( this
|
|
280
|
+
this.updateReference = callback.bind( this );
|
|
229
281
|
|
|
230
282
|
return this;
|
|
231
283
|
|
|
232
284
|
}
|
|
233
285
|
|
|
234
|
-
/**
|
|
235
|
-
* The `this` reference might point to a Proxy so this method can be used
|
|
236
|
-
* to get the reference to the actual node instance.
|
|
237
|
-
*
|
|
238
|
-
* @return {Node} A reference to the node.
|
|
239
|
-
*/
|
|
240
|
-
getSelf() {
|
|
241
|
-
|
|
242
|
-
// Returns non-node object.
|
|
243
|
-
|
|
244
|
-
return this.self || this;
|
|
245
|
-
|
|
246
|
-
}
|
|
247
|
-
|
|
248
286
|
/**
|
|
249
287
|
* Nodes might refer to other objects like materials. This method allows to dynamically update the reference
|
|
250
288
|
* to such objects based on a given state (e.g. the current node frame or builder).
|
|
@@ -280,7 +318,7 @@ class Node extends EventDispatcher {
|
|
|
280
318
|
*/
|
|
281
319
|
* getChildren() {
|
|
282
320
|
|
|
283
|
-
for ( const { childNode } of
|
|
321
|
+
for ( const { childNode } of this._getChildren() ) {
|
|
284
322
|
|
|
285
323
|
yield childNode;
|
|
286
324
|
|
|
@@ -322,19 +360,100 @@ class Node extends EventDispatcher {
|
|
|
322
360
|
|
|
323
361
|
}
|
|
324
362
|
|
|
363
|
+
/**
|
|
364
|
+
* Returns the child nodes of this node.
|
|
365
|
+
*
|
|
366
|
+
* @private
|
|
367
|
+
* @param {Set<Node>} [ignores=new Set()] - A set of nodes to ignore during the search to avoid circular references.
|
|
368
|
+
* @returns {Array<Object>} An array of objects describing the child nodes.
|
|
369
|
+
*/
|
|
370
|
+
_getChildren( ignores = new Set() ) {
|
|
371
|
+
|
|
372
|
+
const children = [];
|
|
373
|
+
|
|
374
|
+
// avoid circular references
|
|
375
|
+
ignores.add( this );
|
|
376
|
+
|
|
377
|
+
for ( const property of Object.getOwnPropertyNames( this ) ) {
|
|
378
|
+
|
|
379
|
+
const object = this[ property ];
|
|
380
|
+
|
|
381
|
+
// Ignore private properties and ignored nodes.
|
|
382
|
+
if ( property.startsWith( '_' ) === true || ignores.has( object ) ) continue;
|
|
383
|
+
|
|
384
|
+
if ( Array.isArray( object ) === true ) {
|
|
385
|
+
|
|
386
|
+
for ( let i = 0; i < object.length; i ++ ) {
|
|
387
|
+
|
|
388
|
+
const child = object[ i ];
|
|
389
|
+
|
|
390
|
+
if ( child && child.isNode === true ) {
|
|
391
|
+
|
|
392
|
+
children.push( { property, index: i, childNode: child } );
|
|
393
|
+
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
} else if ( object && object.isNode === true ) {
|
|
399
|
+
|
|
400
|
+
children.push( { property, childNode: object } );
|
|
401
|
+
|
|
402
|
+
} else if ( object && Object.getPrototypeOf( object ) === Object.prototype ) {
|
|
403
|
+
|
|
404
|
+
for ( const subProperty in object ) {
|
|
405
|
+
|
|
406
|
+
// Ignore private sub-properties.
|
|
407
|
+
if ( subProperty.startsWith( '_' ) === true ) continue;
|
|
408
|
+
|
|
409
|
+
const child = object[ subProperty ];
|
|
410
|
+
|
|
411
|
+
if ( child && child.isNode === true ) {
|
|
412
|
+
|
|
413
|
+
children.push( { property, index: subProperty, childNode: child } );
|
|
414
|
+
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
//
|
|
424
|
+
|
|
425
|
+
return children;
|
|
426
|
+
|
|
427
|
+
}
|
|
428
|
+
|
|
325
429
|
/**
|
|
326
430
|
* Returns the cache key for this node.
|
|
327
431
|
*
|
|
328
432
|
* @param {boolean} [force=false] - When set to `true`, a recomputation of the cache key is forced.
|
|
433
|
+
* @param {Set<Node>} [ignores=null] - A set of nodes to ignore during the computation of the cache key.
|
|
329
434
|
* @return {number} The cache key of the node.
|
|
330
435
|
*/
|
|
331
|
-
getCacheKey( force = false ) {
|
|
436
|
+
getCacheKey( force = false, ignores = null ) {
|
|
332
437
|
|
|
333
438
|
force = force || this.version !== this._cacheKeyVersion;
|
|
334
439
|
|
|
335
440
|
if ( force === true || this._cacheKey === null ) {
|
|
336
441
|
|
|
337
|
-
|
|
442
|
+
if ( ignores === null ) ignores = new Set();
|
|
443
|
+
|
|
444
|
+
//
|
|
445
|
+
|
|
446
|
+
const values = [];
|
|
447
|
+
|
|
448
|
+
for ( const { property, childNode } of this._getChildren( ignores ) ) {
|
|
449
|
+
|
|
450
|
+
values.push( hashString( property.slice( 0, - 4 ) ), childNode.getCacheKey( force, ignores ) );
|
|
451
|
+
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
//
|
|
455
|
+
|
|
456
|
+
this._cacheKey = hash( hashArray( values ), this.customCacheKey() );
|
|
338
457
|
this._cacheKeyVersion = this.version;
|
|
339
458
|
|
|
340
459
|
}
|
|
@@ -350,7 +469,7 @@ class Node extends EventDispatcher {
|
|
|
350
469
|
*/
|
|
351
470
|
customCacheKey() {
|
|
352
471
|
|
|
353
|
-
return
|
|
472
|
+
return this.id;
|
|
354
473
|
|
|
355
474
|
}
|
|
356
475
|
|
|
@@ -375,7 +494,7 @@ class Node extends EventDispatcher {
|
|
|
375
494
|
*/
|
|
376
495
|
getHash( /*builder*/ ) {
|
|
377
496
|
|
|
378
|
-
return this.
|
|
497
|
+
return String( this.id );
|
|
379
498
|
|
|
380
499
|
}
|
|
381
500
|
|
|
@@ -446,15 +565,61 @@ class Node extends EventDispatcher {
|
|
|
446
565
|
* Returns the node's type.
|
|
447
566
|
*
|
|
448
567
|
* @param {NodeBuilder} builder - The current node builder.
|
|
568
|
+
* @param {string} [output=null] - The output of the node.
|
|
449
569
|
* @return {string} The type of the node.
|
|
450
570
|
*/
|
|
451
|
-
getNodeType( builder ) {
|
|
571
|
+
getNodeType( builder, output = null ) {
|
|
572
|
+
|
|
573
|
+
const nodeData = builder.getDataFromNode( this );
|
|
574
|
+
|
|
575
|
+
let type;
|
|
576
|
+
|
|
577
|
+
if ( output !== null ) {
|
|
578
|
+
|
|
579
|
+
nodeData.typeFromOutput = nodeData.typeFromOutput || {};
|
|
580
|
+
|
|
581
|
+
type = nodeData.typeFromOutput[ output ];
|
|
582
|
+
|
|
583
|
+
if ( type === undefined ) {
|
|
584
|
+
|
|
585
|
+
type = this.generateNodeType( builder, output );
|
|
586
|
+
|
|
587
|
+
nodeData.typeFromOutput[ output ] = type;
|
|
588
|
+
|
|
589
|
+
}
|
|
590
|
+
|
|
591
|
+
} else {
|
|
592
|
+
|
|
593
|
+
type = nodeData.type;
|
|
594
|
+
|
|
595
|
+
if ( type === undefined ) {
|
|
596
|
+
|
|
597
|
+
type = this.generateNodeType( builder );
|
|
598
|
+
|
|
599
|
+
nodeData.type = type;
|
|
600
|
+
|
|
601
|
+
}
|
|
602
|
+
|
|
603
|
+
}
|
|
604
|
+
|
|
605
|
+
return type;
|
|
606
|
+
|
|
607
|
+
}
|
|
608
|
+
|
|
609
|
+
/**
|
|
610
|
+
* Returns the node's type.
|
|
611
|
+
*
|
|
612
|
+
* @param {NodeBuilder} builder - The current node builder.
|
|
613
|
+
* @param {string} [output=null] - The output of the node.
|
|
614
|
+
* @return {string} The type of the node.
|
|
615
|
+
*/
|
|
616
|
+
generateNodeType( builder, output = null ) {
|
|
452
617
|
|
|
453
618
|
const nodeProperties = builder.getNodeProperties( this );
|
|
454
619
|
|
|
455
620
|
if ( nodeProperties.outputNode ) {
|
|
456
621
|
|
|
457
|
-
return nodeProperties.outputNode.getNodeType( builder );
|
|
622
|
+
return nodeProperties.outputNode.getNodeType( builder, output );
|
|
458
623
|
|
|
459
624
|
}
|
|
460
625
|
|
|
@@ -563,7 +728,7 @@ class Node extends EventDispatcher {
|
|
|
563
728
|
* This state builds the output node and returns the resulting shader string.
|
|
564
729
|
*
|
|
565
730
|
* @param {NodeBuilder} builder - The current node builder.
|
|
566
|
-
* @param {?string} output - Can be used to define the output type.
|
|
731
|
+
* @param {?string} [output] - Can be used to define the output type.
|
|
567
732
|
* @return {?string} The generated shader string.
|
|
568
733
|
*/
|
|
569
734
|
generate( builder, output ) {
|
|
@@ -588,7 +753,7 @@ class Node extends EventDispatcher {
|
|
|
588
753
|
*/
|
|
589
754
|
updateBefore( /*frame*/ ) {
|
|
590
755
|
|
|
591
|
-
|
|
756
|
+
warn( 'Abstract function.' );
|
|
592
757
|
|
|
593
758
|
}
|
|
594
759
|
|
|
@@ -602,7 +767,7 @@ class Node extends EventDispatcher {
|
|
|
602
767
|
*/
|
|
603
768
|
updateAfter( /*frame*/ ) {
|
|
604
769
|
|
|
605
|
-
|
|
770
|
+
warn( 'Abstract function.' );
|
|
606
771
|
|
|
607
772
|
}
|
|
608
773
|
|
|
@@ -616,7 +781,17 @@ class Node extends EventDispatcher {
|
|
|
616
781
|
*/
|
|
617
782
|
update( /*frame*/ ) {
|
|
618
783
|
|
|
619
|
-
|
|
784
|
+
warn( 'Abstract function.' );
|
|
785
|
+
|
|
786
|
+
}
|
|
787
|
+
|
|
788
|
+
before( node ) {
|
|
789
|
+
|
|
790
|
+
if ( this._beforeNodes === null ) this._beforeNodes = [];
|
|
791
|
+
|
|
792
|
+
this._beforeNodes.push( node );
|
|
793
|
+
|
|
794
|
+
return this;
|
|
620
795
|
|
|
621
796
|
}
|
|
622
797
|
|
|
@@ -627,8 +802,8 @@ class Node extends EventDispatcher {
|
|
|
627
802
|
* - **generate**: Generates the shader code for the node. Returns the generated shader string.
|
|
628
803
|
*
|
|
629
804
|
* @param {NodeBuilder} builder - The current node builder.
|
|
630
|
-
* @param {string|Node
|
|
631
|
-
* @return {Node|string
|
|
805
|
+
* @param {?(string|Node)} [output=null] - Can be used to define the output type.
|
|
806
|
+
* @return {?(Node|string)} The result of the build process, depending on the build stage.
|
|
632
807
|
*/
|
|
633
808
|
build( builder, output = null ) {
|
|
634
809
|
|
|
@@ -642,6 +817,24 @@ class Node extends EventDispatcher {
|
|
|
642
817
|
|
|
643
818
|
//
|
|
644
819
|
|
|
820
|
+
if ( this._beforeNodes !== null ) {
|
|
821
|
+
|
|
822
|
+
const currentBeforeNodes = this._beforeNodes;
|
|
823
|
+
|
|
824
|
+
this._beforeNodes = null;
|
|
825
|
+
|
|
826
|
+
for ( const beforeNode of currentBeforeNodes ) {
|
|
827
|
+
|
|
828
|
+
beforeNode.build( builder, output );
|
|
829
|
+
|
|
830
|
+
}
|
|
831
|
+
|
|
832
|
+
this._beforeNodes = currentBeforeNodes;
|
|
833
|
+
|
|
834
|
+
}
|
|
835
|
+
|
|
836
|
+
//
|
|
837
|
+
|
|
645
838
|
const nodeData = builder.getDataFromNode( this );
|
|
646
839
|
nodeData.buildStages = nodeData.buildStages || {};
|
|
647
840
|
nodeData.buildStages[ builder.buildStage ] = true;
|
|
@@ -664,7 +857,6 @@ class Node extends EventDispatcher {
|
|
|
664
857
|
|
|
665
858
|
//
|
|
666
859
|
|
|
667
|
-
builder.addNode( this );
|
|
668
860
|
builder.addChain( this );
|
|
669
861
|
|
|
670
862
|
/* Build stages expected results:
|
|
@@ -678,6 +870,8 @@ class Node extends EventDispatcher {
|
|
|
678
870
|
|
|
679
871
|
if ( buildStage === 'setup' ) {
|
|
680
872
|
|
|
873
|
+
builder.addNode( this );
|
|
874
|
+
|
|
681
875
|
this.updateReference( builder );
|
|
682
876
|
|
|
683
877
|
const properties = builder.getNodeProperties( this );
|
|
@@ -714,6 +908,8 @@ class Node extends EventDispatcher {
|
|
|
714
908
|
|
|
715
909
|
}
|
|
716
910
|
|
|
911
|
+
builder.addSequentialNode( this );
|
|
912
|
+
|
|
717
913
|
}
|
|
718
914
|
|
|
719
915
|
result = properties.outputNode;
|
|
@@ -724,7 +920,12 @@ class Node extends EventDispatcher {
|
|
|
724
920
|
|
|
725
921
|
} else if ( buildStage === 'generate' ) {
|
|
726
922
|
|
|
727
|
-
|
|
923
|
+
// If generate has just one argument, it means the output type is not required.
|
|
924
|
+
// This means that the node does not handle output conversions internally,
|
|
925
|
+
// so the value is stored in a cache and the builder handles the conversion
|
|
926
|
+
// for all requested output types.
|
|
927
|
+
|
|
928
|
+
const isGenerateOnce = this.generate.length < 2;
|
|
728
929
|
|
|
729
930
|
if ( isGenerateOnce ) {
|
|
730
931
|
|
|
@@ -745,7 +946,7 @@ class Node extends EventDispatcher {
|
|
|
745
946
|
|
|
746
947
|
} else {
|
|
747
948
|
|
|
748
|
-
|
|
949
|
+
warn( 'Node: Recursion detected.', this );
|
|
749
950
|
|
|
750
951
|
result = '/* Recursion detected. */';
|
|
751
952
|
|
|
@@ -765,10 +966,19 @@ class Node extends EventDispatcher {
|
|
|
765
966
|
|
|
766
967
|
}
|
|
767
968
|
|
|
969
|
+
if ( result === '' && output !== null && output !== 'void' && output !== 'OutputType' ) {
|
|
970
|
+
|
|
971
|
+
// if no snippet is generated, return a default value
|
|
972
|
+
|
|
973
|
+
error( `TSL: Invalid generated code, expected a "${ output }".` );
|
|
974
|
+
|
|
975
|
+
result = builder.generateConst( output );
|
|
976
|
+
|
|
977
|
+
}
|
|
978
|
+
|
|
768
979
|
}
|
|
769
980
|
|
|
770
981
|
builder.removeChain( this );
|
|
771
|
-
builder.addSequentialNode( this );
|
|
772
982
|
|
|
773
983
|
return result;
|
|
774
984
|
|
|
@@ -777,11 +987,11 @@ class Node extends EventDispatcher {
|
|
|
777
987
|
/**
|
|
778
988
|
* Returns the child nodes as a JSON object.
|
|
779
989
|
*
|
|
780
|
-
* @return {
|
|
990
|
+
* @return {Generator<Object>} An iterable list of serialized child objects as JSON.
|
|
781
991
|
*/
|
|
782
992
|
getSerializeChildren() {
|
|
783
993
|
|
|
784
|
-
return
|
|
994
|
+
return this._getChildren();
|
|
785
995
|
|
|
786
996
|
}
|
|
787
997
|
|
|
@@ -959,4 +1169,12 @@ class Node extends EventDispatcher {
|
|
|
959
1169
|
|
|
960
1170
|
}
|
|
961
1171
|
|
|
1172
|
+
/**
|
|
1173
|
+
* Enables or disables the automatic capturing of stack traces for nodes.
|
|
1174
|
+
*
|
|
1175
|
+
* @type {boolean}
|
|
1176
|
+
* @default false
|
|
1177
|
+
*/
|
|
1178
|
+
Node.captureStackTrace = false;
|
|
1179
|
+
|
|
962
1180
|
export default Node;
|