@types/three 0.182.0 → 0.183.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (313) hide show
  1. three/README.md +1 -1
  2. three/examples/jsm/Addons.d.ts +0 -3
  3. three/examples/jsm/controls/OrbitControls.d.ts +39 -0
  4. three/examples/jsm/effects/AnaglyphEffect.d.ts +4 -0
  5. three/examples/jsm/environments/ColorEnvironment.d.ts +9 -0
  6. three/examples/jsm/gpgpu/BitonicSort.d.ts +5 -5
  7. three/examples/jsm/helpers/AnimationPathHelper.d.ts +38 -0
  8. three/examples/jsm/helpers/ViewHelper.d.ts +4 -1
  9. three/examples/jsm/inspector/tabs/Parameters.d.ts +3 -0
  10. three/examples/jsm/inspector/ui/Item.d.ts +5 -0
  11. three/examples/jsm/libs/meshopt_decoder.module.d.ts +1 -1
  12. three/examples/jsm/lights/LightProbeGenerator.d.ts +11 -5
  13. three/examples/jsm/loaders/ColladaLoader.d.ts +27 -4
  14. three/examples/jsm/objects/SkyMesh.d.ts +11 -6
  15. three/examples/jsm/objects/Water2Mesh.d.ts +7 -7
  16. three/examples/jsm/objects/WaterMesh.d.ts +6 -6
  17. three/examples/jsm/postprocessing/EffectComposer.d.ts +9 -10
  18. three/examples/jsm/postprocessing/UnrealBloomPass.d.ts +4 -9
  19. three/examples/jsm/tsl/display/AnaglyphPassNode.d.ts +30 -0
  20. three/examples/jsm/tsl/display/AnamorphicNode.d.ts +1 -1
  21. three/examples/jsm/tsl/display/BilateralBlurNode.d.ts +27 -0
  22. three/examples/jsm/tsl/display/BloomNode.d.ts +5 -5
  23. three/examples/jsm/tsl/display/CRT.d.ts +22 -0
  24. three/examples/jsm/tsl/display/DenoiseNode.d.ts +5 -5
  25. three/examples/jsm/tsl/display/DotScreenNode.d.ts +4 -6
  26. three/examples/jsm/tsl/display/GTAONode.d.ts +8 -8
  27. three/examples/jsm/tsl/display/GaussianBlurNode.d.ts +4 -2
  28. three/examples/jsm/tsl/display/GodraysNode.d.ts +20 -0
  29. three/examples/jsm/tsl/display/LensflareNode.d.ts +6 -6
  30. three/examples/jsm/tsl/display/Lut3DNode.d.ts +5 -5
  31. three/examples/jsm/tsl/display/MotionBlur.d.ts +1 -1
  32. three/examples/jsm/tsl/display/OutlineNode.d.ts +6 -6
  33. three/examples/jsm/tsl/display/PixelationPassNode.d.ts +10 -10
  34. three/examples/jsm/tsl/display/RGBShiftNode.d.ts +2 -2
  35. three/examples/jsm/tsl/display/RetroPassNode.d.ts +17 -0
  36. three/examples/jsm/tsl/display/SSAAPassNode.d.ts +1 -1
  37. three/examples/jsm/tsl/display/SSGINode.d.ts +11 -11
  38. three/examples/jsm/tsl/display/SSRNode.d.ts +6 -6
  39. three/examples/jsm/tsl/display/SSSNode.d.ts +5 -5
  40. three/examples/jsm/tsl/display/Shape.d.ts +3 -0
  41. three/examples/jsm/tsl/display/TransitionNode.d.ts +3 -3
  42. three/examples/jsm/tsl/display/boxBlur.d.ts +1 -1
  43. three/examples/jsm/tsl/display/depthAwareBlend.d.ts +15 -0
  44. three/examples/jsm/tsl/display/hashBlur.d.ts +1 -1
  45. three/examples/jsm/tsl/math/Bayer.d.ts +2 -0
  46. three/examples/jsm/tsl/utils/Raymarching.d.ts +2 -2
  47. three/package.json +3 -3
  48. three/src/Three.Core.d.ts +1 -1
  49. three/src/Three.TSL.d.ts +6 -11
  50. three/src/Three.WebGPU.Nodes.d.ts +2 -0
  51. three/src/Three.WebGPU.d.ts +3 -0
  52. three/src/Three.d.ts +2 -2
  53. three/src/animation/AnimationClip.d.ts +1 -1
  54. three/src/animation/KeyframeTrack.d.ts +19 -5
  55. three/src/animation/PropertyMixer.d.ts +5 -4
  56. three/src/audio/Audio.d.ts +224 -157
  57. three/src/audio/AudioAnalyser.d.ts +32 -27
  58. three/src/audio/AudioContext.d.ts +12 -12
  59. three/src/audio/AudioListener.d.ts +44 -65
  60. three/src/audio/PositionalAudio.d.ts +69 -62
  61. three/src/cameras/ArrayCamera.d.ts +21 -24
  62. three/src/cameras/Camera.d.ts +14 -53
  63. three/src/cameras/CubeCamera.d.ts +32 -28
  64. three/src/cameras/OrthographicCamera.d.ts +70 -100
  65. three/src/cameras/PerspectiveCamera.d.ts +133 -146
  66. three/src/cameras/StereoCamera.d.ts +24 -30
  67. three/src/constants.d.ts +14 -2
  68. three/src/core/Clock.d.ts +3 -0
  69. three/src/core/Object3D.d.ts +31 -7
  70. three/src/geometries/TorusGeometry.d.ts +22 -3
  71. three/src/helpers/ArrowHelper.d.ts +34 -50
  72. three/src/helpers/AxesHelper.d.ts +22 -36
  73. three/src/helpers/Box3Helper.d.ts +14 -25
  74. three/src/helpers/BoxHelper.d.ts +28 -39
  75. three/src/helpers/CameraHelper.d.ts +31 -52
  76. three/src/helpers/DirectionalLightHelper.d.ts +32 -53
  77. three/src/helpers/GridHelper.d.ts +15 -29
  78. three/src/helpers/HemisphereLightHelper.d.ts +26 -49
  79. three/src/helpers/PlaneHelper.d.ts +21 -33
  80. three/src/helpers/PointLightHelper.d.ts +25 -50
  81. three/src/helpers/PolarGridHelper.d.ts +19 -32
  82. three/src/helpers/SkeletonHelper.d.ts +26 -50
  83. three/src/helpers/SpotLightHelper.d.ts +28 -55
  84. three/src/lights/AmbientLight.d.ts +15 -23
  85. three/src/lights/DirectionalLight.d.ts +40 -82
  86. three/src/lights/DirectionalLightShadow.d.ts +6 -61
  87. three/src/lights/HemisphereLight.d.ts +20 -47
  88. three/src/lights/Light.d.ts +18 -48
  89. three/src/lights/LightProbe.d.ts +24 -29
  90. three/src/lights/LightShadow.d.ts +107 -91
  91. three/src/lights/PointLight.d.ts +36 -77
  92. three/src/lights/PointLightShadow.d.ts +9 -6
  93. three/src/lights/RectAreaLight.d.ts +39 -59
  94. three/src/lights/SpotLight.d.ts +62 -116
  95. three/src/lights/SpotLightShadow.d.ts +17 -59
  96. three/src/lights/webgpu/IESSpotLight.d.ts +13 -1
  97. three/src/lights/webgpu/ProjectorLight.d.ts +9 -10
  98. three/src/materials/MeshLambertMaterial.d.ts +6 -0
  99. three/src/materials/MeshPhongMaterial.d.ts +6 -0
  100. three/src/materials/nodes/Line2NodeMaterial.d.ts +0 -6
  101. three/src/materials/nodes/LineBasicNodeMaterial.d.ts +0 -4
  102. three/src/materials/nodes/MeshBasicNodeMaterial.d.ts +1 -2
  103. three/src/materials/nodes/MeshLambertNodeMaterial.d.ts +0 -2
  104. three/src/materials/nodes/MeshNormalNodeMaterial.d.ts +0 -2
  105. three/src/materials/nodes/MeshSSSNodeMaterial.d.ts +5 -8
  106. three/src/materials/nodes/MeshToonNodeMaterial.d.ts +0 -4
  107. three/src/materials/nodes/NodeMaterial.d.ts +9 -3
  108. three/src/materials/nodes/SpriteNodeMaterial.d.ts +0 -3
  109. three/src/materials/nodes/VolumeNodeMaterial.d.ts +0 -2
  110. three/src/materials/nodes/manager/NodeMaterialObserver.d.ts +39 -93
  111. three/src/math/Color.d.ts +1 -0
  112. three/src/math/Vector3.d.ts +2 -2
  113. three/src/math/interpolants/BezierInterpolant.d.ts +7 -0
  114. three/src/nodes/Nodes.d.ts +55 -35
  115. three/src/nodes/TSL.d.ts +2 -5
  116. three/src/nodes/accessors/Arrays.d.ts +19 -10
  117. three/src/nodes/accessors/BufferAttributeNode.d.ts +99 -33
  118. three/src/nodes/accessors/BufferNode.d.ts +21 -7
  119. three/src/nodes/accessors/Camera.d.ts +10 -10
  120. three/src/nodes/accessors/CubeTextureNode.d.ts +1 -1
  121. three/src/nodes/accessors/InstanceNode.d.ts +6 -0
  122. three/src/nodes/accessors/Lights.d.ts +9 -6
  123. three/src/nodes/accessors/MaterialNode.d.ts +1 -3
  124. three/src/nodes/accessors/MaterialProperties.d.ts +4 -4
  125. three/src/nodes/accessors/MaterialReferenceNode.d.ts +1 -1
  126. three/src/nodes/accessors/ModelNode.d.ts +34 -17
  127. three/src/nodes/accessors/MorphNode.d.ts +1 -1
  128. three/src/nodes/accessors/Normal.d.ts +13 -15
  129. three/src/nodes/accessors/Object3DNode.d.ts +35 -16
  130. three/src/nodes/accessors/Position.d.ts +9 -7
  131. three/src/nodes/accessors/ReferenceNode.d.ts +16 -7
  132. three/src/nodes/accessors/ReflectVector.d.ts +4 -5
  133. three/src/nodes/accessors/RendererReferenceNode.d.ts +1 -1
  134. three/src/nodes/accessors/SceneProperties.d.ts +5 -0
  135. three/src/nodes/accessors/SkinningNode.d.ts +5 -3
  136. three/src/nodes/accessors/StorageBufferNode.d.ts +49 -22
  137. three/src/nodes/accessors/StorageTextureNode.d.ts +1 -1
  138. three/src/nodes/accessors/Tangent.d.ts +5 -7
  139. three/src/nodes/accessors/Texture3DNode.d.ts +1 -1
  140. three/src/nodes/accessors/TextureBicubic.d.ts +3 -2
  141. three/src/nodes/accessors/TextureNode.d.ts +19 -18
  142. three/src/nodes/accessors/UV.d.ts +1 -1
  143. three/src/nodes/accessors/UniformArrayNode.d.ts +10 -8
  144. three/src/nodes/accessors/UserDataNode.d.ts +1 -1
  145. three/src/nodes/accessors/VelocityNode.d.ts +3 -3
  146. three/src/nodes/accessors/VertexColorNode.d.ts +1 -1
  147. three/src/nodes/code/FunctionCallNode.d.ts +0 -1
  148. three/src/nodes/code/FunctionNode.d.ts +7 -3
  149. three/src/nodes/core/ArrayNode.d.ts +2 -3
  150. three/src/nodes/core/AttributeNode.d.ts +12 -6
  151. three/src/nodes/core/BypassNode.d.ts +2 -3
  152. three/src/nodes/core/ConstNode.d.ts +10 -3
  153. three/src/nodes/core/ContextNode.d.ts +23 -28
  154. three/src/nodes/core/IndexNode.d.ts +1 -1
  155. three/src/nodes/core/InputNode.d.ts +12 -4
  156. three/src/nodes/core/InspectorNode.d.ts +2 -3
  157. three/src/nodes/core/IsolateNode.d.ts +2 -7
  158. three/src/nodes/core/MRTNode.d.ts +7 -0
  159. three/src/nodes/core/Node.d.ts +258 -39
  160. three/src/nodes/core/NodeAttribute.d.ts +30 -5
  161. three/src/nodes/core/NodeBuilder.d.ts +5 -3
  162. three/src/nodes/core/NodeCache.d.ts +24 -48
  163. three/src/nodes/core/NodeError.d.ts +9 -0
  164. three/src/nodes/core/NodeParser.d.ts +2 -0
  165. three/src/nodes/core/NodeUniform.d.ts +33 -9
  166. three/src/nodes/core/NodeVar.d.ts +33 -5
  167. three/src/nodes/core/NodeVarying.d.ts +32 -4
  168. three/src/nodes/core/ParameterNode.d.ts +11 -4
  169. three/src/nodes/core/PropertyNode.d.ts +45 -35
  170. three/src/nodes/core/StackTrace.d.ts +9 -0
  171. three/src/nodes/core/StructType.d.ts +3 -1
  172. three/src/nodes/core/StructTypeNode.d.ts +19 -5
  173. three/src/nodes/core/TempNode.d.ts +9 -3
  174. three/src/nodes/core/UniformNode.d.ts +53 -15
  175. three/src/nodes/core/VarNode.d.ts +15 -14
  176. three/src/nodes/core/VaryingNode.d.ts +14 -19
  177. three/src/nodes/core/constants.d.ts +9 -4
  178. three/src/nodes/display/BlendModes.d.ts +7 -27
  179. three/src/nodes/display/ColorAdjustment.d.ts +8 -9
  180. three/src/nodes/display/ColorSpaceNode.d.ts +2 -8
  181. three/src/nodes/display/FrontFacingNode.d.ts +1 -1
  182. three/src/nodes/display/PassNode.d.ts +9 -5
  183. three/src/nodes/display/RenderOutputNode.d.ts +3 -7
  184. three/src/nodes/display/ScreenNode.d.ts +25 -17
  185. three/src/nodes/display/ToneMappingNode.d.ts +3 -7
  186. three/src/nodes/display/ViewportDepthNode.d.ts +11 -7
  187. three/src/nodes/display/ViewportTextureNode.d.ts +2 -0
  188. three/src/nodes/fog/Fog.d.ts +5 -3
  189. three/src/nodes/geometry/RangeNode.d.ts +51 -9
  190. three/src/nodes/gpgpu/AtomicFunctionNode.d.ts +2 -0
  191. three/src/nodes/gpgpu/BarrierNode.d.ts +2 -0
  192. three/src/nodes/gpgpu/ComputeNode.d.ts +2 -7
  193. three/src/nodes/lighting/AnalyticLightNode.d.ts +1 -1
  194. three/src/nodes/lighting/HemisphereLightNode.d.ts +3 -2
  195. three/src/nodes/lighting/LightProbeNode.d.ts +1 -1
  196. three/src/nodes/lighting/LightUtils.d.ts +1 -1
  197. three/src/nodes/lighting/LightingContextNode.d.ts +1 -1
  198. three/src/nodes/lighting/SpotLightNode.d.ts +0 -6
  199. three/src/nodes/materialx/MaterialXNodes.d.ts +11 -11
  200. three/src/nodes/math/BitcountNode.d.ts +2 -0
  201. three/src/nodes/math/ConditionalNode.d.ts +43 -22
  202. three/src/nodes/math/Hash.d.ts +1 -1
  203. three/src/nodes/math/MathNode.d.ts +603 -267
  204. three/src/nodes/math/MathUtils.d.ts +9 -5
  205. three/src/nodes/math/OperatorNode.d.ts +490 -227
  206. three/src/nodes/math/TriNoise3D.d.ts +3 -3
  207. three/src/nodes/pmrem/PMREMNode.d.ts +1 -1
  208. three/src/nodes/procedural/Checker.d.ts +1 -1
  209. three/src/nodes/tsl/TSLCore.d.ts +1683 -224
  210. three/src/nodes/utils/ArrayElementNode.d.ts +9 -4
  211. three/src/nodes/utils/DebugNode.d.ts +2 -5
  212. three/src/nodes/utils/Discard.d.ts +2 -3
  213. three/src/nodes/utils/FlipNode.d.ts +11 -0
  214. three/src/nodes/utils/LoopNode.d.ts +17 -13
  215. three/src/nodes/utils/MaxMipLevelNode.d.ts +1 -1
  216. three/src/nodes/utils/Oscillators.d.ts +4 -4
  217. three/src/nodes/utils/Packing.d.ts +3 -3
  218. three/src/nodes/utils/PostProcessingUtils.d.ts +5 -5
  219. three/src/nodes/utils/RemapNode.d.ts +33 -39
  220. three/src/nodes/utils/RotateNode.d.ts +17 -8
  221. three/src/nodes/utils/SplitNode.d.ts +1 -2
  222. three/src/nodes/utils/SpriteSheetUV.d.ts +7 -0
  223. three/src/nodes/utils/StorageArrayElementNode.d.ts +18 -9
  224. three/src/nodes/utils/Timer.d.ts +4 -4
  225. three/src/nodes/utils/TriplanarTextures.d.ts +2 -2
  226. three/src/nodes/utils/UVUtils.d.ts +6 -4
  227. three/src/objects/BatchedMesh.d.ts +6 -4
  228. three/src/objects/InstancedMesh.d.ts +32 -24
  229. three/src/renderers/WebGLRenderer.d.ts +4 -93
  230. three/src/renderers/common/Animation.d.ts +46 -9
  231. three/src/renderers/common/Attributes.d.ts +11 -13
  232. three/src/renderers/common/Backend.d.ts +0 -2
  233. three/src/renderers/common/Background.d.ts +17 -15
  234. three/src/renderers/common/BindGroup.d.ts +27 -13
  235. three/src/renderers/common/Binding.d.ts +15 -3
  236. three/src/renderers/common/Bindings.d.ts +41 -17
  237. three/src/renderers/common/BlendMode.d.ts +22 -0
  238. three/src/renderers/common/Buffer.d.ts +35 -11
  239. three/src/renderers/common/BufferUtils.d.ts +3 -4
  240. three/src/renderers/common/BundleGroup.d.ts +16 -6
  241. three/src/renderers/common/CanvasTarget.d.ts +76 -13
  242. three/src/renderers/common/ChainMap.d.ts +12 -9
  243. three/src/renderers/common/ClippingContext.d.ts +61 -10
  244. three/src/renderers/common/Color4.d.ts +10 -5
  245. three/src/renderers/common/ComputePipeline.d.ts +16 -2
  246. three/src/renderers/common/Constants.d.ts +5 -3
  247. three/src/renderers/common/CubeRenderTarget.d.ts +24 -7
  248. three/src/renderers/common/DataMap.d.ts +10 -18
  249. three/src/renderers/common/Geometries.d.ts +39 -20
  250. three/src/renderers/common/Info.d.ts +62 -9
  251. three/src/renderers/common/InspectorBase.d.ts +19 -7
  252. three/src/renderers/common/Lighting.d.ts +2 -6
  253. three/src/renderers/common/Pipeline.d.ts +14 -2
  254. three/src/renderers/common/Pipelines.d.ts +58 -60
  255. three/src/renderers/common/PostProcessing.d.ts +14 -17
  256. three/src/renderers/common/ProgrammableStage.d.ts +48 -8
  257. three/src/renderers/common/RenderBundle.d.ts +4 -2
  258. three/src/renderers/common/RenderBundles.d.ts +6 -3
  259. three/src/renderers/common/RenderContext.d.ts +175 -7
  260. three/src/renderers/common/RenderContexts.d.ts +20 -25
  261. three/src/renderers/common/RenderList.d.ts +77 -11
  262. three/src/renderers/common/RenderLists.d.ts +16 -4
  263. three/src/renderers/common/RenderObject.d.ts +223 -47
  264. three/src/renderers/common/RenderObjectPipeline.d.ts +33 -0
  265. three/src/renderers/common/RenderObjects.d.ts +55 -22
  266. three/src/renderers/common/RenderPipeline.d.ts +20 -17
  267. three/src/renderers/common/Renderer.d.ts +625 -207
  268. three/src/renderers/common/Textures.d.ts +24 -46
  269. three/src/renderers/common/TimestampQueryPool.d.ts +62 -8
  270. three/src/renderers/common/Uniform.d.ts +143 -58
  271. three/src/renderers/common/UniformBuffer.d.ts +7 -5
  272. three/src/renderers/common/UniformsGroup.d.ts +50 -35
  273. three/src/renderers/common/XRManager.d.ts +321 -83
  274. three/src/renderers/common/XRRenderTarget.d.ts +49 -6
  275. three/src/renderers/common/nodes/NodeBuilderState.d.ts +75 -15
  276. three/src/renderers/common/nodes/NodeLibrary.d.ts +25 -5
  277. three/src/renderers/common/nodes/{Nodes.d.ts → NodeManager.d.ts} +54 -73
  278. three/src/renderers/common/nodes/NodeUniform.d.ts +60 -70
  279. three/src/renderers/common/nodes/NodeUniformsGroup.d.ts +23 -4
  280. three/src/renderers/shaders/UniformsLib.d.ts +0 -3
  281. three/src/renderers/webgl/WebGLAttributes.d.ts +9 -7
  282. three/src/renderers/webgl/WebGLEnvironments.d.ts +8 -0
  283. three/src/renderers/webgl/WebGLExtensions.d.ts +1 -1
  284. three/src/renderers/webgl/WebGLIndexedBufferRenderer.d.ts +9 -5
  285. three/src/renderers/webgl/WebGLLights.d.ts +19 -18
  286. three/src/renderers/webgl/WebGLObjects.d.ts +15 -2
  287. three/src/renderers/webgl/WebGLProgram.d.ts +2 -10
  288. three/src/renderers/webgl/WebGLPrograms.d.ts +2 -2
  289. three/src/renderers/webgl/WebGLRenderLists.d.ts +1 -3
  290. three/src/renderers/webgl/WebGLShadowMap.d.ts +0 -5
  291. three/src/renderers/webgl/WebGLState.d.ts +305 -28
  292. three/src/renderers/webgl/WebGLTextures.d.ts +10 -9
  293. three/src/renderers/webgl/WebGLUniforms.d.ts +0 -7
  294. three/src/renderers/webgpu/WebGPUBackend.d.ts +0 -1
  295. three/src/renderers/webgpu/nodes/BasicNodeLibrary.d.ts +2 -4
  296. three/src/renderers/webgpu/nodes/StandardNodeLibrary.d.ts +15 -4
  297. three/src/renderers/webgpu/nodes/WGSLNodeBuilder.d.ts +1 -1
  298. three/src/scenes/Fog.d.ts +31 -37
  299. three/src/scenes/FogExp2.d.ts +26 -31
  300. three/src/scenes/Scene.d.ts +51 -65
  301. three/src/textures/CompressedArrayTexture.d.ts +1 -1
  302. three/src/textures/DataArrayTexture.d.ts +1 -1
  303. three/src/utils.d.ts +5 -0
  304. three/examples/jsm/materials/MeshGouraudMaterial.d.ts +0 -18
  305. three/examples/jsm/materials/MeshPostProcessingMaterial.d.ts +0 -13
  306. three/examples/jsm/shaders/GodRaysShader.d.ts +0 -44
  307. three/src/nodes/accessors/SceneNode.d.ts +0 -21
  308. three/src/nodes/code/ScriptableNode.d.ts +0 -21
  309. three/src/nodes/code/ScriptableValueNode.d.ts +0 -9
  310. three/src/nodes/display/PosterizeNode.d.ts +0 -13
  311. three/src/nodes/utils/SpriteSheetUVNode.d.ts +0 -15
  312. three/src/renderers/webgl/WebGLCubeMaps.d.ts +0 -8
  313. three/src/renderers/webgl/WebGLCubeUVMaps.d.ts +0 -9
@@ -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 Node extends EventDispatcher<{
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
- uuid: string;
79
- version: number;
80
- name: string | null;
81
- _cacheKey: number | null;
82
- _cacheKeyVersion: number;
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
- * Constructs a new node.
153
+ * This flag can be used for type testing.
90
154
  *
91
- * @param {?string} nodeType - The node type.
155
+ * @type {boolean}
156
+ * @readonly
157
+ * @default true
92
158
  */
93
- constructor(nodeType?: string | null);
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 | undefined;
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, void, unknown>;
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(ignores?: Set<Node>): NodeChild[];
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> | null): number;
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): "bool" | "int" | "float" | "vec2" | "vec3" | "vec4" | "uint" | null;
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 | null;
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): unknown;
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): void;
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): void;
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 | null, node?: Node | null);
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 type NodeBuilderContext = { [key: string]: unknown };
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<TValue>(node: NodeVar | NodeUniform<TValue>, shaderStage: NodeShaderStage): string;
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
- import NodeAttribute from "./NodeAttribute.js";
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): NodeData | undefined;
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: NodeData): void;
72
- setData(node: TypedArray | InterleavedBuffer | BufferAttribute, data: BufferAttributeData): void;
47
+ setData(node: Node, data: unknown): void;
73
48
  }
49
+
74
50
  export default NodeCache;
@@ -0,0 +1,9 @@
1
+ import StackTrace from "./StackTrace.js";
2
+
3
+ declare class NodeError extends Error {
4
+ stackTrace: StackTrace | null;
5
+
6
+ constructor(message?: string, stackTrace?: StackTrace | null);
7
+ }
8
+
9
+ export default NodeError;
@@ -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;