@types/three 0.150.2 → 0.152.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.
Files changed (118) hide show
  1. three/README.md +2 -2
  2. three/build/three.min.d.ts +2 -0
  3. three/build/three.module.min.d.ts +2 -0
  4. three/examples/jsm/controls/MapControls.d.ts +21 -0
  5. three/examples/jsm/controls/OrbitControls.d.ts +1 -5
  6. three/examples/jsm/controls/PointerLockControls.d.ts +3 -0
  7. three/examples/jsm/controls/TrackballControls.d.ts +2 -0
  8. three/examples/jsm/helpers/ViewHelper.d.ts +3 -4
  9. three/examples/jsm/libs/tween.module.d.ts +2 -0
  10. three/examples/jsm/loaders/GLTFLoader.d.ts +2 -4
  11. three/examples/jsm/loaders/SVGLoader.d.ts +15 -3
  12. three/examples/jsm/nodes/Nodes.d.ts +131 -226
  13. three/examples/jsm/nodes/{core → code}/CodeNode.d.ts +2 -3
  14. three/examples/jsm/nodes/{core → code}/ExpressionNode.d.ts +2 -2
  15. three/examples/jsm/nodes/{core → code}/FunctionCallNode.d.ts +2 -2
  16. three/examples/jsm/nodes/{core → code}/FunctionNode.d.ts +4 -4
  17. three/examples/jsm/nodes/core/InputNode.d.ts +4 -0
  18. three/examples/jsm/nodes/core/NodeBuilder.d.ts +1 -11
  19. three/examples/jsm/nodes/core/NodeUtils.d.ts +8 -2
  20. three/examples/jsm/nodes/core/{VaryNode.d.ts → VaryingNode.d.ts} +1 -1
  21. three/examples/jsm/nodes/core/constants.d.ts +1 -0
  22. three/examples/jsm/nodes/fog/FogNode.d.ts +1 -1
  23. three/examples/jsm/nodes/geometry/RangeNode.d.ts +2 -1
  24. three/examples/jsm/nodes/lighting/LightUtils.d.ts +4 -0
  25. three/examples/jsm/nodes/lighting/PointLightNode.d.ts +10 -0
  26. three/examples/jsm/nodes/lighting/SpotLightNode.d.ts +15 -0
  27. three/examples/jsm/nodes/materials/LineBasicNodeMaterial.d.ts +0 -7
  28. three/examples/jsm/nodes/materials/MeshBasicNodeMaterial.d.ts +0 -9
  29. three/examples/jsm/nodes/materials/MeshStandardNodeMaterial.d.ts +0 -9
  30. three/examples/jsm/nodes/materials/NodeMaterial.d.ts +17 -1
  31. three/examples/jsm/nodes/math/MathNode.d.ts +2 -2
  32. three/examples/jsm/nodes/shadernode/ShaderNodeBaseElements.d.ts +2 -2
  33. three/examples/jsm/nodes/shadernode/ShaderNodeElements.d.ts +0 -2
  34. three/examples/jsm/objects/{GroundProjectedEnv.d.ts → GroundProjectedSkybox.d.ts} +1 -1
  35. three/examples/jsm/postprocessing/Pass.d.ts +2 -0
  36. three/examples/jsm/renderers/CSS2DRenderer.d.ts +2 -1
  37. three/examples/jsm/renderers/CSS3DRenderer.d.ts +2 -2
  38. three/examples/jsm/renderers/webgl/nodes/WebGLNodeBuilder.d.ts +1 -21
  39. three/examples/jsm/utils/BufferGeometryUtils.d.ts +12 -2
  40. three/examples/jsm/utils/SkeletonUtils.d.ts +3 -19
  41. three/index.d.ts +1 -1
  42. three/package.json +3 -2
  43. three/src/Three.d.ts +1 -0
  44. three/src/constants.d.ts +3 -23
  45. three/src/core/BufferGeometry.d.ts +60 -33
  46. three/src/core/Raycaster.d.ts +2 -1
  47. three/src/extras/DataUtils.d.ts +13 -0
  48. three/src/extras/Earcut.d.ts +12 -0
  49. three/src/extras/ImageUtils.d.ts +20 -20
  50. three/src/extras/PMREMGenerator.d.ts +66 -0
  51. three/src/extras/ShapeUtils.d.ts +19 -1
  52. three/src/extras/core/Curve.d.ts +86 -31
  53. three/src/extras/core/CurvePath.d.ts +46 -4
  54. three/src/extras/core/Interpolations.d.ts +36 -0
  55. three/src/extras/core/Path.d.ts +122 -15
  56. three/src/extras/core/Shape.d.ts +56 -6
  57. three/src/extras/core/ShapePath.d.ts +73 -8
  58. three/src/extras/curves/ArcCurve.d.ts +35 -3
  59. three/src/extras/curves/CatmullRomCurve3.d.ts +62 -15
  60. three/src/extras/curves/CubicBezierCurve.d.ts +48 -7
  61. three/src/extras/curves/CubicBezierCurve3.d.ts +48 -7
  62. three/src/extras/curves/EllipseCurve.d.ts +73 -18
  63. three/src/extras/curves/LineCurve.d.ts +26 -5
  64. three/src/extras/curves/LineCurve3.d.ts +26 -5
  65. three/src/extras/curves/QuadraticBezierCurve.d.ts +44 -6
  66. three/src/extras/curves/QuadraticBezierCurve3.d.ts +44 -6
  67. three/src/extras/curves/SplineCurve.d.ts +39 -3
  68. three/src/helpers/ArrowHelper.d.ts +47 -16
  69. three/src/helpers/AxesHelper.d.ts +35 -3
  70. three/src/helpers/Box3Helper.d.ts +28 -4
  71. three/src/helpers/BoxHelper.d.ts +44 -4
  72. three/src/helpers/CameraHelper.d.ts +38 -19
  73. three/src/helpers/DirectionalLightHelper.d.ts +57 -10
  74. three/src/helpers/GridHelper.d.ts +32 -6
  75. three/src/helpers/HemisphereLightHelper.d.ts +56 -3
  76. three/src/helpers/PlaneHelper.d.ts +31 -8
  77. three/src/helpers/PointLightHelper.d.ts +54 -6
  78. three/src/helpers/PolarGridHelper.d.ts +35 -8
  79. three/src/helpers/SkeletonHelper.d.ts +56 -8
  80. three/src/helpers/SpotLightHelper.d.ts +59 -4
  81. three/src/lights/AmbientLight.d.ts +23 -10
  82. three/src/lights/AmbientLightProbe.d.ts +18 -0
  83. three/src/lights/DirectionalLight.d.ts +75 -20
  84. three/src/lights/DirectionalLightShadow.d.ts +68 -2
  85. three/src/lights/HemisphereLight.d.ts +45 -12
  86. three/src/lights/HemisphereLightProbe.d.ts +19 -0
  87. three/src/lights/Light.d.ts +40 -43
  88. three/src/lights/LightProbe.d.ts +32 -5
  89. three/src/lights/LightShadow.d.ts +100 -18
  90. three/src/lights/PointLight.d.ts +57 -12
  91. three/src/lights/PointLightShadow.d.ts +18 -2
  92. three/src/lights/RectAreaLight.d.ts +60 -8
  93. three/src/lights/SpotLight.d.ts +105 -20
  94. three/src/lights/SpotLightShadow.d.ts +63 -3
  95. three/src/materials/LineBasicMaterial.d.ts +7 -1
  96. three/src/materials/MeshDistanceMaterial.d.ts +0 -15
  97. three/src/materials/ShaderMaterial.d.ts +1 -1
  98. three/src/math/Color.d.ts +23 -2
  99. three/src/math/Quaternion.d.ts +6 -0
  100. three/src/math/Triangle.d.ts +40 -0
  101. three/src/math/Vector2.d.ts +5 -0
  102. three/src/math/Vector3.d.ts +10 -3
  103. three/src/objects/InstancedMesh.d.ts +22 -30
  104. three/src/objects/LineSegments.d.ts +2 -0
  105. three/src/objects/Points.d.ts +7 -6
  106. three/src/objects/Skeleton.d.ts +5 -1
  107. three/src/objects/SkinnedMesh.d.ts +37 -25
  108. three/src/renderers/WebGLRenderTarget.d.ts +3 -0
  109. three/src/renderers/WebGLRenderer.d.ts +25 -1
  110. three/src/renderers/shaders/ShaderChunk.d.ts +58 -37
  111. three/src/renderers/shaders/UniformsLib.d.ts +88 -57
  112. three/src/textures/CanvasTexture.d.ts +0 -1
  113. three/src/textures/CompressedTexture.d.ts +3 -2
  114. three/src/textures/CubeTexture.d.ts +3 -4
  115. three/src/textures/DataTexture.d.ts +3 -3
  116. three/src/textures/Texture.d.ts +37 -24
  117. three/examples/jsm/nodes/functions/light/getDistanceAttenuation.d.ts +0 -5
  118. three/examples/jsm/nodes/lighting/PunctualLightNode.d.ts +0 -12
three/README.md CHANGED
@@ -8,8 +8,8 @@ This package contains type definitions for three (https://threejs.org/).
8
8
  Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/three.
9
9
 
10
10
  ### Additional Details
11
- * Last updated: Tue, 18 Apr 2023 23:32:45 GMT
12
- * Dependencies: [@types/fflate](https://npmjs.com/package/@types/fflate), [@types/lil-gui](https://npmjs.com/package/@types/lil-gui), [@types/stats.js](https://npmjs.com/package/@types/stats.js), [@types/webxr](https://npmjs.com/package/@types/webxr)
11
+ * Last updated: Thu, 04 May 2023 00:02:50 GMT
12
+ * Dependencies: [@types/fflate](https://npmjs.com/package/@types/fflate), [@types/lil-gui](https://npmjs.com/package/@types/lil-gui), [@types/stats.js](https://npmjs.com/package/@types/stats.js), [@types/tweenjs__tween.js](https://npmjs.com/package/@types/tweenjs__tween.js), [@types/webxr](https://npmjs.com/package/@types/webxr)
13
13
  * Global values: `THREE`
14
14
 
15
15
  # Credits
@@ -0,0 +1,2 @@
1
+ export * from '../src/Three';
2
+ export as namespace THREE;
@@ -0,0 +1,2 @@
1
+ export * from '../src/Three';
2
+ export as namespace THREE;
@@ -0,0 +1,21 @@
1
+ import { OrbitControls } from './OrbitControls';
2
+ import { Camera } from '../../../src/Three';
3
+
4
+ /**
5
+ * MapControls performs orbiting, dollying (zooming), and panning.
6
+ * Unlike TrackballControls, it maintains the "up" direction
7
+ * object.up (+Y by default).
8
+ *
9
+ * Orbit - right mouse, or left mouse + ctrl/meta/shiftKey / touch:
10
+ * two-finger rotate
11
+ * Zoom - middle mouse, or mousewheel / touch: two-finger spread or squish
12
+ * Pan - left mouse, or arrow keys / touch: one-finger move
13
+ *
14
+ * @param object - The camera to be controlled. The camera must not
15
+ * be a child of another object, unless that object is the scene itself.
16
+ * @param domElement - The HTML element used for
17
+ * event listeners.
18
+ */
19
+ export class MapControls extends OrbitControls {
20
+ constructor(object: Camera, domElement?: HTMLElement);
21
+ }
@@ -214,7 +214,7 @@ export class OrbitControls {
214
214
  /**
215
215
  * Used internally by the .saveState and .reset methods.
216
216
  */
217
- zoomO: number;
217
+ zoom0: number;
218
218
 
219
219
  /**
220
220
  * Update the controls. Must be called after any manual changes
@@ -276,7 +276,3 @@ export class OrbitControls {
276
276
 
277
277
  dispatchEvent(event: { type: string; target: any }): void;
278
278
  }
279
-
280
- export class MapControls extends OrbitControls {
281
- constructor(object: Camera, domElement?: HTMLElement);
282
- }
@@ -3,6 +3,7 @@ import { Camera, EventDispatcher, Vector3 } from '../../../src/Three';
3
3
  export class PointerLockControls extends EventDispatcher {
4
4
  constructor(camera: Camera, domElement?: HTMLElement);
5
5
 
6
+ camera: Camera;
6
7
  domElement: HTMLElement;
7
8
 
8
9
  // API
@@ -12,6 +13,8 @@ export class PointerLockControls extends EventDispatcher {
12
13
  minPolarAngle: number;
13
14
  maxPolarAngle: number;
14
15
 
16
+ pointerSpeed: number;
17
+
15
18
  connect(): void;
16
19
  disconnect(): void;
17
20
  dispose(): void;
@@ -20,6 +20,8 @@ export class TrackballControls extends EventDispatcher {
20
20
  dynamicDampingFactor: number;
21
21
  minDistance: number;
22
22
  maxDistance: number;
23
+ minZoom: number;
24
+ maxZoom: number;
23
25
  keys: string[];
24
26
  mouseButtons: { LEFT: MOUSE; MIDDLE: MOUSE; RIGHT: MOUSE };
25
27
 
@@ -1,5 +1,4 @@
1
- import { Object3D, Vector3, WebGLRenderer } from '../../../src/Three';
2
- import { Octree } from '../math/Octree';
1
+ import { Camera, Object3D, Vector3, WebGLRenderer } from '../../../src/Three';
3
2
 
4
3
  export class ViewHelper extends Object3D {
5
4
  animating: boolean;
@@ -7,10 +6,10 @@ export class ViewHelper extends Object3D {
7
6
 
8
7
  readonly isViewHelper: true;
9
8
 
10
- constructor(camera: Octree, domElement: HTMLElement);
9
+ constructor(camera: Camera, domElement: HTMLElement);
11
10
 
12
11
  render(renderer: WebGLRenderer): void;
13
- handleClick(event: PointerEvent): boolean;
12
+ handleClick(event: MouseEvent): boolean;
14
13
  update(delta: number): void;
15
14
  dispose(): void;
16
15
  }
@@ -0,0 +1,2 @@
1
+ export * from '@tweenjs/tween.js';
2
+ export { default } from '@tweenjs/tween.js';
@@ -16,6 +16,7 @@ import {
16
16
  TextureLoader,
17
17
  FileLoader,
18
18
  ImageBitmapLoader,
19
+ Skeleton,
19
20
  } from '../../../src/Three';
20
21
 
21
22
  import { DRACOLoader } from './DRACOLoader';
@@ -131,10 +132,7 @@ export class GLTFParser {
131
132
  ) => Promise<BufferGeometry[]>;
132
133
  loadMesh: (meshIndex: number) => Promise<Group | Mesh | SkinnedMesh>;
133
134
  loadCamera: (cameraIndex: number) => Promise<Camera>;
134
- loadSkin: (skinIndex: number) => Promise<{
135
- joints: number[];
136
- inverseBindMatrices?: BufferAttribute | InterleavedBufferAttribute | undefined;
137
- }>;
135
+ loadSkin: (skinIndex: number) => Promise<Skeleton>;
138
136
  loadAnimation: (animationIndex: number) => Promise<AnimationClip>;
139
137
  loadNode: (nodeIndex: number) => Promise<Object3D>;
140
138
  loadScene: () => Promise<Group>;
@@ -1,4 +1,4 @@
1
- import { Loader, LoadingManager, ShapePath, BufferGeometry, Vector3, Shape } from '../../../src/Three';
1
+ import { Loader, LoadingManager, ShapePath, BufferGeometry, Vector3, Shape, Vector2 } from '../../../src/Three';
2
2
 
3
3
  export interface SVGResultPaths extends ShapePath {
4
4
  userData?:
@@ -43,14 +43,25 @@ export class SVGLoader extends Loader {
43
43
  lineCap?: string,
44
44
  miterLimit?: number,
45
45
  ): StrokeStyle;
46
+
47
+ /**
48
+ * Generates a stroke with some witdh around the given path.
49
+ * @remarks The path can be open or closed (last point equals to first point)
50
+ * @param points Array of Vector2D (the path). Minimum 2 points.
51
+ * @param style Object with SVG properties as returned by SVGLoader.getStrokeStyle(), or SVGLoader.parse() in the path.userData.style object
52
+ * @param arcDivisions Arc divisions for round joins and endcaps. (Optional)
53
+ * @param minDistance Points closer to this distance will be merged. (Optional)
54
+ * @returns BufferGeometry with stroke triangles (In plane z = 0). UV coordinates are generated ('u' along path. 'v' across it, from left to right)
55
+ */
46
56
  static pointsToStroke(
47
- points: Vector3[],
57
+ points: Vector2[],
48
58
  style: StrokeStyle,
49
59
  arcDivisions?: number,
50
60
  minDistance?: number,
51
61
  ): BufferGeometry;
62
+
52
63
  static pointsToStrokeWithBuffers(
53
- points: Vector3[],
64
+ points: Vector2[],
54
65
  style: StrokeStyle,
55
66
  arcDivisions?: number,
56
67
  minDistance?: number,
@@ -59,5 +70,6 @@ export class SVGLoader extends Loader {
59
70
  uvs?: number[],
60
71
  vertexOffset?: number,
61
72
  ): number;
73
+
62
74
  static createShapes(shapePath: ShapePath): Shape[];
63
75
  }
@@ -1,245 +1,150 @@
1
+ // constants
2
+ export * from './core/constants';
3
+
1
4
  // core
2
- import ArrayUniformNode from './core/ArrayUniformNode';
3
- import AttributeNode from './core/AttributeNode';
4
- import BypassNode from './core/BypassNode';
5
- import CacheNode from './core/CacheNode';
6
- import CodeNode, { CodeNodeInclude } from './core/CodeNode';
7
- import ConstNode from './core/ConstNode';
8
- import ContextNode from './core/ContextNode';
9
- import ExpressionNode from './core/ExpressionNode';
10
- import FunctionCallNode from './core/FunctionCallNode';
11
- import FunctionNode, { FunctionNodeArguments } from './core/FunctionNode';
12
- import InstanceIndexNode from './core/InstanceIndexNode';
13
- import Node from './core/Node';
14
- import NodeAttribute from './core/NodeAttribute';
15
- import NodeBuilder from './core/NodeBuilder';
16
- import NodeCache from './core/NodeCache';
17
- import NodeCode from './core/NodeCode';
18
- import NodeFrame from './core/NodeFrame';
19
- import NodeFunctionInput from './core/NodeFunctionInput';
20
- import NodeKeywords from './core/NodeKeywords';
21
- import NodeUniform from './core/NodeUniform';
22
- import NodeVar from './core/NodeVar';
23
- import NodeVarying from './core/NodeVarying';
24
- import PropertyNode from './core/PropertyNode';
25
- import StackNode from './core/StackNode';
26
- import TempNode from './core/TempNode';
27
- import UniformNode from './core/UniformNode';
28
- import VarNode from './core/VarNode';
29
- import VaryNode from './core/VaryNode';
5
+ export { default as ArrayUniformNode } from './core/ArrayUniformNode';
6
+ export { default as AttributeNode } from './core/AttributeNode';
7
+ export { default as BypassNode } from './core/BypassNode';
8
+ export { default as CacheNode } from './core/CacheNode';
9
+ export { default as ConstNode } from './core/ConstNode';
10
+ export { default as ContextNode } from './core/ContextNode';
11
+ export { default as InstanceIndexNode } from './core/InstanceIndexNode';
12
+ export { default as Node } from './core/Node';
13
+ export { default as NodeAttribute } from './core/NodeAttribute';
14
+ export { default as NodeBuilder } from './core/NodeBuilder';
15
+ export { default as NodeCache } from './core/NodeCache';
16
+ export { default as NodeCode } from './core/NodeCode';
17
+ export { default as NodeFrame } from './core/NodeFrame';
18
+ export { default as NodeFunctionInput } from './core/NodeFunctionInput';
19
+ export { default as NodeKeywords } from './core/NodeKeywords';
20
+ export { default as NodeUniform } from './core/NodeUniform';
21
+ export { default as NodeVar } from './core/NodeVar';
22
+ export { default as NodeVarying } from './core/NodeVarying';
23
+ export { default as PropertyNode } from './core/PropertyNode';
24
+ export { default as StackNode } from './core/StackNode';
25
+ export { default as TempNode } from './core/TempNode';
26
+ export { default as UniformNode } from './core/UniformNode';
27
+ export { default as VarNode } from './core/VarNode';
28
+ export { default as VaryingNode } from './core/VaryingNode';
30
29
 
31
- // accessors
32
- import BitangentNode, { BitangentNodeScope } from './accessors/BitangentNode';
33
- import BufferNode from './accessors/BufferNode';
34
- import CameraNode, { CameraNodeScope } from './accessors/CameraNode';
35
- import CubeTextureNode from './accessors/CubeTextureNode';
36
- import InstanceNode from './accessors/InstanceNode';
37
- import MaterialNode, { MaterialNodeScope } from './accessors/MaterialNode';
38
- import MaterialReferenceNode from './accessors/MaterialReferenceNode';
39
- import ModelNode from './accessors/ModelNode';
40
- import ModelViewProjectionNode from './accessors/ModelViewProjectionNode';
41
- import NormalNode, { NormalNodeScope } from './accessors/NormalNode';
42
- import Object3DNode, { Object3DNodeScope } from './accessors/Object3DNode';
43
- import PointUVNode from './accessors/PointUVNode';
44
- import PositionNode, { PositionNodeScope } from './accessors/PositionNode';
45
- import ReferenceNode from './accessors/ReferenceNode';
46
- import ReflectVectorNode from './accessors/ReflectVectorNode';
47
- import SkinningNode from './accessors/SkinningNode';
48
- import TangentNode, { TangentNodeScope } from './accessors/TangentNode';
49
- import TextureNode from './accessors/TextureNode';
50
- import UVNode from './accessors/UVNode';
51
- import UserDataNode from './accessors/UserDataNode';
30
+ import * as NodeUtils from './core/NodeUtils.js';
31
+ export { NodeUtils };
52
32
 
53
- // geometry
54
- import RangeNode, { RangeModeBound } from './geometry/RangeNode';
33
+ // math
34
+ export {
35
+ default as MathNode,
36
+ MathNodeMethod1,
37
+ MathNodeMethod2,
38
+ MathNodeMethod3,
39
+ MathNodeMethod,
40
+ } from './math/MathNode';
41
+ export { default as OperatorNode, OperatorNodeOp } from './math/OperatorNode';
42
+ export { default as CondNode } from './math/CondNode';
55
43
 
56
- // gpgpu
57
- import ComputeNode from './gpgpu/ComputeNode';
44
+ // utils
45
+ export { default as ArrayElementNode } from './utils/ArrayElementNode';
46
+ export { default as ConvertNode } from './utils/ConvertNode';
47
+ export { default as EquirectUVNode } from './utils/EquirectUVNode';
48
+ export { default as JoinNode } from './utils/JoinNode';
49
+ export { default as MatcapUVNode } from './utils/MatcapUVNode';
50
+ export { default as MaxMipLevelNode } from './utils/MaxMipLevelNode';
51
+ export { default as OscNode, OscNodeMethod } from './utils/OscNode';
52
+ export { default as RemapNode } from './utils/RemapNode';
53
+ export { default as RotateUVNode } from './utils/RotateUVNode';
54
+ export { default as SpecularMIPLevelNode } from './utils/SpecularMIPLevelNode';
55
+ export { default as SplitNode } from './utils/SplitNode';
56
+ export { default as SpriteSheetUVNode } from './utils/SpriteSheetUVNode';
57
+ export { default as TimerNode, TimerNodeScope } from './utils/TimerNode';
58
+ export { default as TriplanarTexturesNode } from './utils/TriplanarTexturesNode';
59
+
60
+ // shader node
61
+ export * from './shadernode/ShaderNodeElements';
62
+
63
+ // accessors
64
+ export { default as BitangentNode, BitangentNodeScope } from './accessors/BitangentNode';
65
+ export { default as BufferNode } from './accessors/BufferNode';
66
+ export { default as CameraNode, CameraNodeScope } from './accessors/CameraNode';
67
+ export { default as CubeTextureNode } from './accessors/CubeTextureNode';
68
+ export { default as InstanceNode } from './accessors/InstanceNode';
69
+ export { default as MaterialNode, MaterialNodeScope } from './accessors/MaterialNode';
70
+ export { default as MaterialReferenceNode } from './accessors/MaterialReferenceNode';
71
+ export { default as ModelNode } from './accessors/ModelNode';
72
+ export { default as ModelViewProjectionNode } from './accessors/ModelViewProjectionNode';
73
+ export { default as NormalNode, NormalNodeScope } from './accessors/NormalNode';
74
+ export { default as Object3DNode, Object3DNodeScope as OObject3DNodeScope } from './accessors/Object3DNode';
75
+ export { default as PointUVNode } from './accessors/PointUVNode';
76
+ export { default as PositionNode, PositionNodeScope } from './accessors/PositionNode';
77
+ export { default as ReferenceNode } from './accessors/ReferenceNode';
78
+ export { default as ReflectVectorNode } from './accessors/ReflectVectorNode';
79
+ export { default as SkinningNode } from './accessors/SkinningNode';
80
+ export { default as TangentNode, TangentNodeScope } from './accessors/TangentNode';
81
+ export { default as TextureNode } from './accessors/TextureNode';
82
+ export { default as UVNode } from './accessors/UVNode';
83
+ export { default as UserDataNode } from './accessors/UserDataNode';
58
84
 
59
85
  // display
60
- import BlendModeNode, { BlendMode } from './display/BlendModeNode';
61
- import ColorAdjustmentNode, { ColorAdjustmentMethod } from './display/ColorAdjustmentNode';
62
- import ColorSpaceNode, { ColorSpaceNodeMethod } from './display/ColorSpaceNode';
63
- import FrontFacingNode from './display/FrontFacingNode';
64
- import NormalMapNode from './display/NormalMapNode';
65
- import PosterizeNode from './display/PosterizeNode';
66
- import ToneMappingNode from './display/ToneMappingNode';
67
- import ViewportNode from './display/ViewportNode';
86
+ export { default as BlendModeNode, BlendMode } from './display/BlendModeNode';
87
+ export { default as ColorAdjustmentNode, ColorAdjustmentMethod } from './display/ColorAdjustmentNode';
88
+ export { default as ColorSpaceNode, ColorSpaceNodeMethod } from './display/ColorSpaceNode';
89
+ export { default as FrontFacingNode } from './display/FrontFacingNode';
90
+ export { default as NormalMapNode } from './display/NormalMapNode';
91
+ export { default as PosterizeNode } from './display/PosterizeNode';
92
+ export { default as ToneMappingNode } from './display/ToneMappingNode';
93
+ export { default as ViewportNode } from './display/ViewportNode';
68
94
 
69
- // math
70
- import MathNode, { MathNodeMethod1, MathNodeMethod2, MathNodeMethod3, MathNodeMethod } from './math/MathNode';
71
- import OperatorNode, { OperatorNodeOp } from './math/OperatorNode';
72
- import CondNode from './math/CondNode';
95
+ // code
96
+ export { default as ExpressionNode } from './code/ExpressionNode';
97
+ export { default as CodeNode, CodeNodeInclude } from './code/CodeNode';
98
+ export { default as FunctionCallNode } from './code/FunctionCallNode';
99
+ export { default as FunctionNode, FunctionNodeArguments } from './code/FunctionNode';
73
100
 
74
- // lighting
75
- import PunctualLightNode from './lighting/PunctualLightNode';
76
- import LightsNode from './lighting/LightsNode';
77
- import LightingNode from './lighting/LightingNode';
78
- import LightingContextNode, { LightingModelNode } from './lighting/LightingContextNode';
79
- import HemisphereLightNode from './lighting/HemisphereLightNode';
80
- import EnvironmentNode from './lighting/EnvironmentNode';
81
- import AONode from './lighting/AONode';
82
- import AnalyticLightNode from './lighting/AnalyticLightNode';
101
+ // fog
102
+ export { default as FogNode } from './fog/FogNode';
103
+ export { default as FogRangeNode } from './fog/FogRangeNode';
104
+ export { default as FogExp2Node } from './fog/FogExp2Node';
83
105
 
84
- // utils
106
+ // geometry
107
+ export { default as RangeNode, RangeModeBound } from './geometry/RangeNode';
85
108
 
86
- import ArrayElementNode from './utils/ArrayElementNode';
87
- import ConvertNode from './utils/ConvertNode';
88
- import EquirectUVNode from './utils/EquirectUVNode';
89
- import JoinNode from './utils/JoinNode';
90
- import MatcapUVNode from './utils/MatcapUVNode';
91
- import MaxMipLevelNode from './utils/MaxMipLevelNode';
92
- import OscNode, { OscNodeMethod } from './utils/OscNode';
93
- import RemapNode from './utils/RemapNode';
94
- import RotateUVNode from './utils/RotateUVNode';
95
- import SpecularMIPLevelNode from './utils/SpecularMIPLevelNode';
96
- import SplitNode from './utils/SplitNode';
97
- import SpriteSheetUVNode from './utils/SpriteSheetUVNode';
98
- import TimerNode, { TimerNodeScope } from './utils/TimerNode';
99
- import TriplanarTexturesNode from './utils/TriplanarTexturesNode';
109
+ // gpgpu
110
+ export { default as ComputeNode } from './gpgpu/ComputeNode';
100
111
 
101
- // loaders
102
- import NodeLoader from './loaders/NodeLoader';
103
- import NodeObjectLoader from './loaders/NodeObjectLoader';
104
- import NodeMaterialLoader from './loaders/NodeMaterialLoader';
112
+ // lighting
113
+ export { default as PointLightNode } from './lighting/PointLightNode';
114
+ export { default as SpotLightNode } from './lighting/SpotLightNode';
115
+ export { default as LightsNode } from './lighting/LightsNode';
116
+ export { default as LightingNode } from './lighting/LightingNode';
117
+ export { default as LightingContextNode, LightingModelNode } from './lighting/LightingContextNode';
118
+ export { default as HemisphereLightNode } from './lighting/HemisphereLightNode';
119
+ export { default as EnvironmentNode } from './lighting/EnvironmentNode';
120
+ export { default as AONode } from './lighting/AONode';
121
+ export { default as AnalyticLightNode } from './lighting/AnalyticLightNode';
105
122
 
106
123
  // procedural
107
- import CheckerNode from './procedural/CheckerNode';
108
- // fog
109
- import FogNode from './fog/FogNode';
110
- import FogRangeNode from './fog/FogRangeNode';
111
- import FogExp2Node from './fog/FogExp2Node';
124
+ export { default as CheckerNode } from './procedural/CheckerNode';
112
125
 
113
- // core
114
- export * from './core/constants';
126
+ // loaders
127
+ export { default as NodeLoader } from './loaders/NodeLoader';
128
+ export { default as NodeObjectLoader } from './loaders/NodeObjectLoader';
129
+ export { default as NodeMaterialLoader } from './loaders/NodeMaterialLoader';
115
130
 
116
131
  // materials
117
132
  export * from './materials/Materials';
118
133
 
119
- // shader node
120
- export * from './shadernode/ShaderNodeElements';
134
+ // materialX
135
+ export * from './materialx/MaterialXNodes';
121
136
 
122
- export {
123
- // core
124
- ArrayUniformNode,
125
- AttributeNode,
126
- BypassNode,
127
- CacheNode,
128
- CodeNode,
129
- CodeNodeInclude,
130
- ContextNode,
131
- ConstNode,
132
- ExpressionNode,
133
- FunctionCallNode,
134
- FunctionNode,
135
- FunctionNodeArguments,
136
- InstanceIndexNode,
137
- Node,
138
- NodeAttribute,
139
- NodeBuilder,
140
- NodeCache,
141
- NodeCode,
142
- NodeFrame,
143
- NodeFunctionInput,
144
- NodeKeywords,
145
- NodeUniform,
146
- NodeVar,
147
- NodeVarying,
148
- PropertyNode,
149
- StackNode,
150
- TempNode,
151
- UniformNode,
152
- VarNode,
153
- VaryNode,
154
- // geometry
155
- RangeNode,
156
- RangeModeBound,
157
- // gpgpu
158
- ComputeNode,
159
- // accessors
160
- BitangentNode,
161
- BitangentNodeScope,
162
- BufferNode,
163
- CameraNode,
164
- CameraNodeScope,
165
- CubeTextureNode,
166
- InstanceNode,
167
- MaterialNode,
168
- MaterialNodeScope,
169
- MaterialReferenceNode,
170
- ModelNode,
171
- ModelViewProjectionNode,
172
- NormalNode,
173
- NormalNodeScope,
174
- Object3DNode,
175
- Object3DNodeScope as OObject3DNodeScope,
176
- PointUVNode,
177
- PositionNode,
178
- PositionNodeScope,
179
- ReferenceNode,
180
- ReflectVectorNode,
181
- SkinningNode,
182
- TangentNode,
183
- TangentNodeScope,
184
- TextureNode,
185
- UVNode,
186
- UserDataNode,
187
- // display
188
- BlendModeNode,
189
- BlendMode,
190
- ColorAdjustmentNode,
191
- ColorAdjustmentMethod,
192
- ColorSpaceNode,
193
- ColorSpaceNodeMethod,
194
- FrontFacingNode,
195
- NormalMapNode,
196
- PosterizeNode,
197
- ToneMappingNode,
198
- ViewportNode,
199
- // math
200
- MathNode,
201
- MathNodeMethod1,
202
- MathNodeMethod2,
203
- MathNodeMethod3,
204
- MathNodeMethod,
205
- OperatorNode,
206
- OperatorNodeOp,
207
- CondNode,
208
- // lighting
209
- PunctualLightNode,
210
- LightsNode,
211
- LightingNode,
212
- LightingContextNode,
213
- LightingModelNode,
214
- HemisphereLightNode,
215
- EnvironmentNode,
216
- AONode,
217
- AnalyticLightNode,
218
- // utils
219
- ArrayElementNode,
220
- ConvertNode,
221
- EquirectUVNode,
222
- JoinNode,
223
- MatcapUVNode,
224
- MaxMipLevelNode,
225
- OscNode,
226
- OscNodeMethod,
227
- RemapNode,
228
- RotateUVNode,
229
- SpecularMIPLevelNode,
230
- SplitNode,
231
- SpriteSheetUVNode,
232
- TimerNode,
233
- TimerNodeScope,
234
- TriplanarTexturesNode,
235
- // procedural
236
- CheckerNode,
237
- // fog
238
- FogNode,
239
- FogRangeNode,
240
- FogExp2Node,
241
- // loaders
242
- NodeLoader,
243
- NodeObjectLoader,
244
- NodeMaterialLoader,
245
- };
137
+ // functions
138
+ export { default as BRDF_GGX } from './functions/BSDF/BRDF_GGX';
139
+ export { default as BRDF_Lambert } from './functions/BSDF/BRDF_Lambert';
140
+ export { default as D_GGX } from './functions/BSDF/D_GGX';
141
+ export { default as DFGApprox } from './functions/BSDF/DFGApprox';
142
+ export { default as F_Schlick } from './functions/BSDF/F_Schlick';
143
+ export { default as V_GGX_SmithCorrelated } from './functions/BSDF/V_GGX_SmithCorrelated';
144
+
145
+ export { getDistanceAttenuation } from './lighting/LightUtils';
146
+
147
+ export { default as getGeometryRoughness } from './functions/material/getGeometryRoughness';
148
+ export { default as getRoughness } from './functions/material/getRoughness';
149
+
150
+ export { default as physicalLightingModel } from './functions/PhysicalLightingModel';
@@ -1,6 +1,5 @@
1
- import { NodeTypeOption } from './constants';
2
- import Node from './Node';
3
- import NodeBuilder from './NodeBuilder';
1
+ import Node from '../core/Node';
2
+ import NodeBuilder from '../core/NodeBuilder';
4
3
 
5
4
  export interface CodeNodeInclude {
6
5
  build(builder: NodeBuilder): void;
@@ -1,5 +1,5 @@
1
- import { NodeTypeOption } from './constants';
2
- import TempNode from './TempNode';
1
+ import { NodeTypeOption } from '../core/constants';
2
+ import TempNode from '../core/TempNode';
3
3
 
4
4
  export default class ExpressionNode extends TempNode {
5
5
  snipped: string; /* sic */
@@ -1,6 +1,6 @@
1
1
  import FunctionNode from './FunctionNode';
2
- import TempNode from './TempNode';
3
- import Node from './Node';
2
+ import TempNode from '../core/TempNode';
3
+ import Node from '../core/Node';
4
4
 
5
5
  export default class FunctionCallNode<P extends Node[] | { [name: string]: Node }> extends TempNode {
6
6
  functionNode: FunctionNode<P>;
@@ -1,9 +1,9 @@
1
1
  import CodeNode, { CodeNodeInclude } from './CodeNode';
2
2
  import FunctionCallNode from './FunctionCallNode';
3
- import NodeBuilder from './NodeBuilder';
4
- import NodeFunction from './NodeFunction';
5
- import NodeFunctionInput from './NodeFunctionInput';
6
- import Node from './Node';
3
+ import NodeBuilder from '../core/NodeBuilder';
4
+ import NodeFunction from '../core/NodeFunction';
5
+ import NodeFunctionInput from '../core/NodeFunctionInput';
6
+ import Node from '../core/Node';
7
7
 
8
8
  export type FunctionNodeArguments = Node[] | { [name: string]: Node };
9
9
 
@@ -2,11 +2,15 @@ import { NodeTypeOption, NodeValueOption } from './constants';
2
2
  import Node from './Node';
3
3
  import NodeBuilder from './NodeBuilder';
4
4
 
5
+ export type Precision = 'low' | 'medium' | 'high';
6
+
5
7
  export default abstract class InputNode extends Node {
6
8
  isInputNode: true;
7
9
  value: NodeValueOption;
10
+ precision: Precision | null;
8
11
 
9
12
  constructor(value: NodeValueOption, nodeType?: NodeTypeOption | null);
10
13
 
11
14
  getInputType(builder: NodeBuilder): string | null;
15
+ setPrecision(precision: Precision): this;
12
16
  }
@@ -45,7 +45,6 @@ export default abstract class NodeBuilder {
45
45
  updateNodes: Node[];
46
46
  hashNodes: { [hash: string]: Node };
47
47
 
48
- scene: Scene;
49
48
  lightsNode: LightsNode;
50
49
  fogNode: FogNode;
51
50
 
@@ -64,12 +63,10 @@ export default abstract class NodeBuilder {
64
63
  shaderStage: NodeShaderStageOption | null;
65
64
  buildStage: BuildStageOption | null;
66
65
  stack: Node[];
67
- get node(): Node;
68
66
 
69
- addStack(node: Node): void;
70
- removeStack(node: Node): void;
71
67
  setHashNode(node: Node, hash: string): void;
72
68
  addNode(node: Node): void;
69
+ get currentNode(): Node;
73
70
  getMethod(method: string): string;
74
71
  getNodeFromHash(hash: string): Node;
75
72
 
@@ -87,13 +84,6 @@ export default abstract class NodeBuilder {
87
84
 
88
85
  isFlipY(): boolean;
89
86
 
90
- abstract getTexture(textureProperty: string, uvSnippet: string): string;
91
-
92
- abstract getTextureLevel(textureProperty: string, uvSnippet: string, levelSnippet: string): string;
93
-
94
- abstract getCubeTexture(textureProperty: string, uvSnippet: string): string;
95
- abstract getCubeTextureLevel(textureProperty: string, uvSnippet: string, levelSnippet: string): string;
96
-
97
87
  // @TODO: rename to .generateConst()
98
88
  getConst(type: NodeTypeOption, value?: unknown): Node;
99
89
  getType(type: NodeTypeOption): NodeTypeOption;