@types/three 0.178.0 → 0.179.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 (57) hide show
  1. three/README.md +1 -1
  2. three/examples/jsm/Addons.d.ts +1 -2
  3. three/examples/jsm/exporters/USDZExporter.d.ts +1 -0
  4. three/examples/jsm/loaders/EXRLoader.d.ts +18 -5
  5. three/examples/jsm/loaders/USDLoader.d.ts +9 -0
  6. three/examples/jsm/loaders/USDZLoader.d.ts +11 -8
  7. three/examples/jsm/tsl/display/TRAANode.d.ts +22 -0
  8. three/package.json +4 -4
  9. three/src/Three.Core.d.ts +1 -0
  10. three/src/Three.TSL.d.ts +55 -13
  11. three/src/animation/KeyframeTrack.d.ts +7 -2
  12. three/src/animation/tracks/BooleanKeyframeTrack.d.ts +2 -2
  13. three/src/animation/tracks/StringKeyframeTrack.d.ts +2 -2
  14. three/src/cameras/Camera.d.ts +15 -8
  15. three/src/constants.d.ts +3 -1
  16. three/{examples/jsm/misc → src/core}/Timer.d.ts +3 -17
  17. three/src/helpers/SkeletonHelper.d.ts +7 -12
  18. three/src/loaders/FileLoader.d.ts +2 -2
  19. three/src/loaders/ImageBitmapLoader.d.ts +9 -9
  20. three/src/loaders/Loader.d.ts +1 -0
  21. three/src/loaders/LoadingManager.d.ts +23 -19
  22. three/src/materials/MeshPhysicalMaterial.d.ts +12 -0
  23. three/src/materials/nodes/Line2NodeMaterial.d.ts +0 -6
  24. three/src/materials/nodes/PointsNodeMaterial.d.ts +5 -0
  25. three/src/materials/nodes/manager/NodeMaterialObserver.d.ts +22 -1
  26. three/src/math/Frustum.d.ts +1 -1
  27. three/src/math/Line3.d.ts +1 -0
  28. three/src/math/Matrix4.d.ts +2 -0
  29. three/src/nodes/Nodes.d.ts +1 -0
  30. three/src/nodes/TSL.d.ts +1 -0
  31. three/src/nodes/accessors/TextureNode.d.ts +2 -0
  32. three/src/nodes/core/ContextNode.d.ts +7 -1
  33. three/src/nodes/core/Node.d.ts +9 -2
  34. three/src/nodes/core/UniformNode.d.ts +9 -0
  35. three/src/nodes/core/VarNode.d.ts +11 -1
  36. three/src/nodes/display/PassNode.d.ts +10 -0
  37. three/src/nodes/gpgpu/ComputeNode.d.ts +15 -6
  38. three/src/nodes/materialx/MaterialXNodes.d.ts +85 -20
  39. three/src/nodes/materialx/lib/mx_noise.d.ts +28 -0
  40. three/src/nodes/math/MathNode.d.ts +10 -2
  41. three/src/nodes/tsl/TSLCore.d.ts +16 -0
  42. three/src/nodes/utils/EventNode.d.ts +21 -0
  43. three/src/nodes/utils/RTTNode.d.ts +2 -0
  44. three/src/renderers/common/Color4.d.ts +2 -2
  45. three/src/renderers/common/Renderer.d.ts +16 -8
  46. three/src/renderers/common/SampledTexture.d.ts +2 -9
  47. three/src/renderers/common/Sampler.d.ts +9 -3
  48. three/src/renderers/common/Storage3DTexture.d.ts +2 -0
  49. three/src/renderers/common/StorageArrayTexture.d.ts +2 -0
  50. three/src/renderers/common/StorageTexture.d.ts +2 -0
  51. three/src/renderers/common/XRManager.d.ts +1 -0
  52. three/src/renderers/webgl/WebGLCapabilities.d.ts +2 -2
  53. three/src/renderers/webgpu/nodes/WGSLNodeBuilder.d.ts +0 -1
  54. three/src/renderers/webxr/WebXRDepthSensing.d.ts +4 -5
  55. three/src/renderers/webxr/WebXRManager.d.ts +4 -2
  56. three/src/textures/ExternalTexture.d.ts +11 -0
  57. three/examples/jsm/tsl/display/TRAAPassNode.d.ts +0 -15
@@ -2,21 +2,21 @@ import { Loader } from "./Loader.js";
2
2
  import { LoadingManager } from "./LoadingManager.js";
3
3
 
4
4
  export class ImageBitmapLoader extends Loader<ImageBitmap> {
5
+ readonly isImageBitmapLoader: true;
6
+
7
+ /**
8
+ * @default { premultiplyAlpha: 'none' }
9
+ */
10
+ options: ImageBitmapOptions;
11
+
5
12
  constructor(manager?: LoadingManager);
6
13
 
14
+ setOptions(options: ImageBitmapOptions): this;
15
+
7
16
  load(
8
17
  url: string,
9
18
  onLoad?: (data: ImageBitmap) => void,
10
19
  onProgress?: (event: ProgressEvent) => void,
11
20
  onError?: (err: unknown) => void,
12
21
  ): void;
13
-
14
- /**
15
- * @default { premultiplyAlpha: 'none' }
16
- */
17
- options: undefined | object;
18
-
19
- readonly isImageBitmapLoader: true;
20
-
21
- setOptions(options: object): ImageBitmapLoader;
22
22
  }
@@ -45,6 +45,7 @@ export class Loader<TData = unknown, TUrl = string> {
45
45
  setPath(path: string): this;
46
46
  setResourcePath(resourcePath: string): this;
47
47
  setRequestHeader(requestHeader: { [header: string]: string }): this;
48
+ abort(): this;
48
49
 
49
50
  static DEFAULT_MATERIAL_NAME: string;
50
51
  }
@@ -1,11 +1,9 @@
1
1
  import { Loader } from "./Loader.js";
2
2
 
3
- export const DefaultLoadingManager: LoadingManager;
4
-
5
3
  /**
6
4
  * Handles and keeps track of loaded and pending data.
7
5
  */
8
- export class LoadingManager {
6
+ declare class LoadingManager {
9
7
  constructor(
10
8
  onLoad?: () => void,
11
9
  onProgress?: (url: string, loaded: number, total: number) => void,
@@ -18,7 +16,7 @@ export class LoadingManager {
18
16
  * @param loaded The number of items already loaded so far.
19
17
  * @param total The total amount of items to be loaded.
20
18
  */
21
- onStart?: ((url: string, loaded: number, total: number) => void) | undefined;
19
+ onStart: ((url: string, loaded: number, total: number) => void) | undefined;
22
20
 
23
21
  /**
24
22
  * Will be called when all items finish loading.
@@ -42,28 +40,34 @@ export class LoadingManager {
42
40
  */
43
41
  onError: (url: string) => void;
44
42
 
45
- /**
46
- * If provided, the callback will be passed each resource URL before a request is sent.
47
- * The callback may return the original URL, or a new URL to override loading behavior.
48
- * This behavior can be used to load assets from .ZIP files, drag-and-drop APIs, and Data URIs.
49
- * @param callback URL modifier callback. Called with url argument, and must return resolvedURL.
50
- */
51
- setURLModifier(callback?: (url: string) => string): this;
43
+ abortController: AbortController;
44
+
45
+ itemStart: (url: string) => void;
46
+ itemEnd: (url: string) => void;
47
+ itemError: (url: string) => void;
52
48
 
53
49
  /**
54
50
  * Given a URL, uses the URL modifier callback (if any) and returns a resolved URL.
55
51
  * If no URL modifier is set, returns the original URL.
56
52
  * @param url the url to load
57
53
  */
58
- resolveURL(url: string): string;
54
+ resolveURL: (url: string) => string;
59
55
 
60
- itemStart(url: string): void;
61
- itemEnd(url: string): void;
62
- itemError(url: string): void;
56
+ /**
57
+ * If provided, the callback will be passed each resource URL before a request is sent.
58
+ * The callback may return the original URL, or a new URL to override loading behavior.
59
+ * This behavior can be used to load assets from .ZIP files, drag-and-drop APIs, and Data URIs.
60
+ * @param callback URL modifier callback. Called with url argument, and must return resolvedURL.
61
+ */
62
+ setURLModifier: (callback?: (url: string) => string) => this;
63
63
 
64
- // handlers
64
+ addHandler: (regex: RegExp, loader: Loader) => this;
65
+ removeHandler: (regex: RegExp) => this;
66
+ getHandler: (file: string) => Loader | null;
65
67
 
66
- addHandler(regex: RegExp, loader: Loader): this;
67
- removeHandler(regex: RegExp): this;
68
- getHandler(file: string): Loader | null;
68
+ abort: () => this;
69
69
  }
70
+
71
+ declare const DefaultLoadingManager: LoadingManager;
72
+
73
+ export { DefaultLoadingManager, LoadingManager };
@@ -60,6 +60,18 @@ export interface MeshPhysicalMaterialProperties extends MeshStandardMaterialProp
60
60
  * @default 1.5
61
61
  */
62
62
  ior: number;
63
+ /**
64
+ * Degree of reflectivity, from `0.0` to `1.0`. Default is `0.5`, which
65
+ * corresponds to an index-of-refraction of `1.5`.
66
+ *
67
+ * This models the reflectivity of non-metallic materials. It has no effect
68
+ * when `metalness` is `1.0`
69
+ *
70
+ * @name MeshPhysicalMaterial#reflectivity
71
+ * @default 0.5
72
+ */
73
+ get reflectivity(): number;
74
+ set reflectivity(reflectivity: number);
63
75
  /**
64
76
  * The red channel of this texture is multiplied against `iridescence`, for per-pixel
65
77
  * control over iridescence.
@@ -16,12 +16,6 @@ export interface Line2NodeMaterialNodeProperties extends NodeMaterialNodePropert
16
16
  * @default 0
17
17
  */
18
18
  dashOffset: number;
19
- /**
20
- * The line width.
21
- *
22
- * @default 0
23
- */
24
- lineWidth: number;
25
19
  /**
26
20
  * Defines the lines color.
27
21
  *
@@ -7,6 +7,11 @@ export interface PointsNodeMaterialNodeProperties extends SpriteNodeMaterialNode
7
7
  /**
8
8
  * This node property provides an additional way to set the point size.
9
9
  *
10
+ * Note that WebGPU only supports point primitives with 1 pixel size. Consequently,
11
+ * this node has no effect when the material is used with {@link Points} and a WebGPU
12
+ * backend. If an application wants to render points with a size larger than 1 pixel,
13
+ * the material should be used with {@link Sprite} and instancing.
14
+ *
10
15
  * @default null
11
16
  */
12
17
  sizeNode: Node;
@@ -1,7 +1,9 @@
1
1
  import { BufferAttribute } from "../../../core/BufferAttribute.js";
2
+ import { Light } from "../../../lights/Light.js";
2
3
  import { Matrix4 } from "../../../math/Matrix4.js";
3
4
  import NodeBuilder from "../../../nodes/core/NodeBuilder.js";
4
5
  import NodeFrame from "../../../nodes/core/NodeFrame.js";
6
+ import LightsNode from "../../../nodes/lighting/LightsNode.js";
5
7
  import Renderer from "../../../renderers/common/Renderer.js";
6
8
  import RenderObject from "../../../renderers/common/RenderObject.js";
7
9
  import { Material } from "../../Material.js";
@@ -84,6 +86,9 @@ interface RenderObjectData {
84
86
  worldMatrix: Matrix4;
85
87
  version?: number;
86
88
  }
89
+ interface LightData {
90
+ map: number;
91
+ }
87
92
  /**
88
93
  * This class is used by {@link WebGPURenderer} as management component.
89
94
  * It's primary purpose is to determine whether render objects require a
@@ -150,9 +155,25 @@ declare class NodeMaterialObserver {
150
155
  * Returns `true` if the given render object has not changed its state.
151
156
  *
152
157
  * @param {RenderObject} renderObject - The render object.
158
+ * @param {Array<Light>} lightsData - The current material lights.
153
159
  * @return {boolean} Whether the given render object has changed its state or not.
154
160
  */
155
- equals(renderObject: RenderObject): boolean;
161
+ equals(renderObject: RenderObject, lightsData: Light[]): boolean;
162
+ /**
163
+ * Returns the lights data for the given material lights.
164
+ *
165
+ * @param {Array<Light>} materialLights - The material lights.
166
+ * @return {Array<Object>} The lights data for the given material lights.
167
+ */
168
+ getLightsData(materialLights: Light[]): LightData[];
169
+ /**
170
+ * Returns the lights for the given lights node and render ID.
171
+ *
172
+ * @param {LightsNode} lightsNode - The lights node.
173
+ * @param {number} renderId - The render ID.
174
+ * @return {Array} The lights for the given lights node and render ID.
175
+ */
176
+ getLights(lightsNode: LightsNode, renderId: number): LightData[];
156
177
  /**
157
178
  * Checks if the given render object requires a refresh.
158
179
  *
@@ -21,7 +21,7 @@ export class Frustum {
21
21
  set(p0: Plane, p1: Plane, p2: Plane, p3: Plane, p4: Plane, p5: Plane): Frustum;
22
22
  clone(): this;
23
23
  copy(frustum: Frustum): this;
24
- setFromProjectionMatrix(m: Matrix4, coordinateSystem?: CoordinateSystem): this;
24
+ setFromProjectionMatrix(m: Matrix4, coordinateSystem?: CoordinateSystem, reversedDepth?: boolean): this;
25
25
  intersectsObject(object: Object3D): boolean;
26
26
  intersectsSprite(sprite: Sprite): boolean;
27
27
  intersectsSphere(sphere: Sphere): boolean;
three/src/math/Line3.d.ts CHANGED
@@ -24,6 +24,7 @@ export class Line3 {
24
24
  at(t: number, target: Vector3): Vector3;
25
25
  closestPointToPointParameter(point: Vector3, clampToLine?: boolean): number;
26
26
  closestPointToPoint(point: Vector3, clampToLine: boolean, target: Vector3): Vector3;
27
+ distanceSqToLine3(line: Line3, c1?: Vector3, c2?: Vector3): number;
27
28
  applyMatrix4(matrix: Matrix4): Line3;
28
29
  equals(line: Line3): boolean;
29
30
  }
@@ -246,6 +246,7 @@ export class Matrix4 {
246
246
  near: number,
247
247
  far: number,
248
248
  coordinateSystem?: CoordinateSystem,
249
+ reversedDepth?: boolean,
249
250
  ): this;
250
251
 
251
252
  /**
@@ -259,6 +260,7 @@ export class Matrix4 {
259
260
  near: number,
260
261
  far: number,
261
262
  coordinateSystem?: CoordinateSystem,
263
+ reversedDepth?: boolean,
262
264
  ): this;
263
265
 
264
266
  equals(matrix: Matrix4): boolean;
@@ -53,6 +53,7 @@ export { NodeUtils };
53
53
  export { default as ArrayElementNode } from "./utils/ArrayElementNode.js";
54
54
  export { default as ConvertNode } from "./utils/ConvertNode.js";
55
55
  export { default as DebugNode } from "./utils/DebugNode.js";
56
+ export { default as EventNode } from "./utils/EventNode.js";
56
57
  export { default as FunctionOverloadingNode } from "./utils/FunctionOverloadingNode.js";
57
58
  export { default as JoinNode } from "./utils/JoinNode.js";
58
59
  export { default as LoopNode } from "./utils/LoopNode.js";
three/src/nodes/TSL.d.ts CHANGED
@@ -25,6 +25,7 @@ export * from "./math/TriNoise3D.js";
25
25
 
26
26
  // utils
27
27
  export * from "./utils/EquirectUV.js";
28
+ export * from "./utils/EventNode.js";
28
29
  export * from "./utils/FunctionOverloadingNode.js";
29
30
  export * from "./utils/LoopNode.js";
30
31
  export * from "./utils/MatcapUV.js";
@@ -38,6 +38,8 @@ export default class TextureNode extends UniformNode<Texture> {
38
38
 
39
39
  sample(uvNode: Node): ShaderNodeObject<Node>;
40
40
 
41
+ load(uvNode: Node): ShaderNodeObject<Node>;
42
+
41
43
  blur(amountNode: Node): ShaderNodeObject<Node>;
42
44
 
43
45
  level(levelNode: Node): ShaderNodeObject<Node>;
@@ -14,11 +14,17 @@ declare class ContextNode extends Node {
14
14
  export default ContextNode;
15
15
 
16
16
  export const context: (node: Node, context?: NodeBuilderContext) => ShaderNodeObject<ContextNode>;
17
- export const label: (node: Node, label: string) => ShaderNodeObject<ContextNode>;
17
+ export const setName: (node: Node, label: string) => ShaderNodeObject<ContextNode>;
18
+
19
+ /**
20
+ * @deprecated "label()" has been deprecated. Use "setName()" instead.
21
+ */
22
+ export function label(node: Node, label: string): ShaderNodeObject<ContextNode>;
18
23
 
19
24
  declare module "../tsl/TSLCore.js" {
20
25
  interface NodeElements {
21
26
  context: typeof context;
22
27
  label: typeof label;
28
+ setName: typeof setName;
23
29
  }
24
30
  }
@@ -267,10 +267,17 @@ declare class Node extends EventDispatcher<{
267
267
  * @return {Node} The shared node if possible. Otherwise `this` is returned.
268
268
  */
269
269
  getShared(builder: NodeBuilder): Node;
270
+ /**
271
+ * Returns the number of elements in the node array.
272
+ *
273
+ * @param {NodeBuilder} builder - The current node builder.
274
+ * @return {?number} The number of elements in the node array.
275
+ */
276
+ getArrayCount(builder: NodeBuilder): number | null;
270
277
  /**
271
278
  * Represents the setup stage which is the first step of the build process, see {@link Node#build} method.
272
- * This method is often overwritten in derived modules to prepare the node which is used as the output/result.
273
- * The output node must be returned in the `return` statement.
279
+ * This method is often overwritten in derived modules to prepare the node which is used as a node's output/result.
280
+ * If an output node is prepared, then it must be returned in the `return` statement of the derived module's setup function.
274
281
  *
275
282
  * @param {NodeBuilder} builder - The current node builder.
276
283
  * @return {?Node} The output node.
@@ -27,6 +27,14 @@ declare class UniformNode<TValue> extends InputNode<TValue> {
27
27
  * @param {string} name - The name of the uniform.
28
28
  * @return {UniformNode} A reference to this node.
29
29
  */
30
+ setName(name: string): this;
31
+ /**
32
+ * Sets the {@link UniformNode#name} property.
33
+ *
34
+ * @deprecated
35
+ * @param {string} name - The name of the uniform.
36
+ * @return {UniformNode} A reference to this node.
37
+ */
30
38
  label(name: string): this;
31
39
  /**
32
40
  * Sets the {@link UniformNode#groupNode} property.
@@ -50,6 +58,7 @@ declare class UniformNode<TValue> extends InputNode<TValue> {
50
58
  */
51
59
  getUniformHash(builder: NodeBuilder): string;
52
60
  onUpdate(callback: (frame: NodeFrame, self: this) => TValue | undefined, updateType: NodeUpdateType): this;
61
+ getInputType(builder: NodeBuilder): string | null;
53
62
  generate(builder: NodeBuilder, output: string | null): string;
54
63
  }
55
64
  export default UniformNode;
@@ -1,7 +1,7 @@
1
1
  import { ShaderNodeObject } from "../tsl/TSLCore.js";
2
2
  import Node from "./Node.js";
3
3
 
4
- export default class VarNode extends Node {
4
+ declare class VarNode extends Node {
5
5
  node: Node;
6
6
  name: string | null;
7
7
 
@@ -9,17 +9,27 @@ export default class VarNode extends Node {
9
9
 
10
10
  readOnly: boolean;
11
11
 
12
+ intent: boolean;
13
+
12
14
  constructor(node: Node, name?: string | null, readOnly?: boolean);
15
+
16
+ setIntent(value: boolean): this;
17
+ getIntent(): boolean;
13
18
  }
14
19
 
20
+ export default VarNode;
21
+
15
22
  export const Var: (node: Node, name?: string | null) => ShaderNodeObject<VarNode>;
16
23
 
17
24
  export const Const: (node: Node, name?: string | null) => ShaderNodeObject<VarNode>;
18
25
 
26
+ export const VarIntent: (node: Node) => Node;
27
+
19
28
  declare module "../tsl/TSLCore.js" {
20
29
  interface NodeElements {
21
30
  toVar: (node: Node, name?: string | null) => ShaderNodeObject<VarNode>;
22
31
  toConst: (node: Node, name?: string | null) => ShaderNodeObject<VarNode>;
32
+ toVarIntent: (node: Node) => Node;
23
33
  }
24
34
  }
25
35
 
@@ -1,6 +1,8 @@
1
1
  import { Camera } from "../../cameras/Camera.js";
2
2
  import { Layers } from "../../core/Layers.js";
3
3
  import { RenderTarget, RenderTargetOptions } from "../../core/RenderTarget.js";
4
+ import { Vector4 } from "../../math/Vector4.js";
5
+ import Renderer from "../../renderers/common/Renderer.js";
4
6
  import { Scene } from "../../scenes/Scene.js";
5
7
  import { Texture } from "../../textures/Texture.js";
6
8
  import TextureNode from "../accessors/TextureNode.js";
@@ -61,8 +63,16 @@ declare class PassNode extends TempNode {
61
63
 
62
64
  getLinearDepthNode(name?: string): ShaderNodeObject<Node>;
63
65
 
66
+ compileAsync(renderer: Renderer): Promise<void>;
67
+
64
68
  setSize(width: number, height: number): void;
65
69
 
70
+ setScissor(x: number, y: number, width: number, height: number): void;
71
+ setScissor(x: Vector4): void;
72
+
73
+ setViewport(x: number, y: number, width: number, height: number): void;
74
+ setViewport(x: Vector4): void;
75
+
66
76
  setPixelRatio(pixelRatio: number): void;
67
77
 
68
78
  dispose(): void;
@@ -3,24 +3,32 @@ import Node from "../core/Node.js";
3
3
  import { ShaderNodeObject } from "../tsl/TSLCore.js";
4
4
 
5
5
  export default class ComputeNode extends Node {
6
- isComputeNode: true;
6
+ readonly isComputeNode: true;
7
7
 
8
- count: number;
8
+ computeNode: Node;
9
9
  workgroupSize: number[];
10
- dispatchCount: number;
10
+ count: number | null;
11
11
  name: string;
12
12
 
13
13
  onInitFunction: ((args: { renderer: Renderer }) => void) | null;
14
14
 
15
- constructor(computeNode: Node, count: number, workgroupSize?: number[]);
15
+ constructor(computeNode: Node, workgroupSize: number[]);
16
16
 
17
- label(name: string): void;
17
+ setCount(count: number): this;
18
+ getCount(): number | null;
18
19
 
19
- updateDispatchCount(): void;
20
+ setName(name: string): this;
21
+
22
+ /**
23
+ * @deprecated "label()" has been deprecated. Use "setName()" instead.
24
+ */
25
+ label(name: string): this;
20
26
 
21
27
  onInit(callback: ((args: { renderer: Renderer }) => void) | null): void;
22
28
  }
23
29
 
30
+ export const computeKernel: (node: Node, workgroupSize?: number[]) => ShaderNodeObject<ComputeNode>;
31
+
24
32
  export const compute: (
25
33
  node: Node,
26
34
  count: number,
@@ -30,5 +38,6 @@ export const compute: (
30
38
  declare module "../tsl/TSLCore.js" {
31
39
  interface NodeElements {
32
40
  compute: typeof compute;
41
+ computeKernel: typeof computeKernel;
33
42
  }
34
43
  }
@@ -4,61 +4,96 @@ import { ShaderNodeObject } from "../tsl/TSLCore.js";
4
4
  import { mx_hsvtorgb, mx_rgbtohsv } from "./lib/mx_hsv.js";
5
5
  import { mx_srgb_texture_to_lin_rec709 } from "./lib/mx_transform_color.js";
6
6
 
7
- export function mx_aastep(threshold: Node | number, value: Node | number): ShaderNodeObject<MathNode>;
7
+ export const mx_aastep: (threshold: Node | number, value: Node | number) => ShaderNodeObject<MathNode>;
8
8
 
9
- export function mx_ramplr(
9
+ export const mx_ramplr: (
10
10
  valuel: Node | number,
11
11
  valuer: Node | number,
12
12
  texcoord?: Node,
13
- ): ShaderNodeObject<MathNode>;
14
- export function mx_ramptb(
13
+ ) => ShaderNodeObject<MathNode>;
14
+ export const mx_ramptb: (
15
15
  valuet: Node | number,
16
16
  valueb: Node | number,
17
17
  texcoord?: Node,
18
- ): ShaderNodeObject<MathNode>;
18
+ ) => ShaderNodeObject<MathNode>;
19
19
 
20
- export function mx_splitlr(
20
+ export const mx_ramp4: (
21
+ valuetl: Node | number,
22
+ valuetr: Node | number,
23
+ valuebl: Node | number,
24
+ valuebr: Node | number,
25
+ texcoord?: Node,
26
+ ) => ShaderNodeObject<MathNode>;
27
+
28
+ export const mx_splitlr: (
21
29
  valuel: Node | number,
22
30
  valuer: Node | number,
23
31
  center: Node | number,
24
32
  texcoord?: Node,
25
- ): ShaderNodeObject<MathNode>;
26
- export function mx_splittb(
33
+ ) => ShaderNodeObject<MathNode>;
34
+ export const mx_splittb: (
27
35
  valuet: Node | number,
28
36
  valueb: Node | number,
29
37
  center: Node | number,
30
38
  texcoord?: Node,
31
- ): ShaderNodeObject<MathNode>;
39
+ ) => ShaderNodeObject<MathNode>;
32
40
 
33
- export function mx_transform_uv(
41
+ export const mx_transform_uv: (
34
42
  uv_scale?: Node | number,
35
43
  uv_offset?: Node | number,
36
44
  uv_geo?: Node,
37
- ): ShaderNodeObject<Node>;
45
+ ) => ShaderNodeObject<Node>;
38
46
 
39
- export function mx_safepower(in1: Node | number, in2?: Node | number): ShaderNodeObject<Node>;
47
+ export const mx_safepower: (in1: Node | number, in2?: Node | number) => ShaderNodeObject<Node>;
40
48
 
41
- export function mx_contrast(
49
+ export const mx_contrast: (
42
50
  input: Node | number,
43
51
  amount?: Node | number,
44
52
  pivot?: Node | number,
45
- ): ShaderNodeObject<Node>;
53
+ ) => ShaderNodeObject<Node>;
46
54
 
47
- export function mx_noise_float(
55
+ export const mx_noise_float: (
48
56
  texcoord?: Node,
49
57
  amplitude?: Node | number,
50
58
  pivot?: Node | number,
51
- ): ShaderNodeObject<Node>;
52
- export function mx_noise_vec3(
59
+ ) => ShaderNodeObject<Node>;
60
+ export const mx_noise_vec3: (
53
61
  texcoord?: Node,
54
62
  amplitude?: Node | number,
55
63
  pivot?: Node | number,
56
- ): ShaderNodeObject<Node>;
57
- export function mx_noise_vec4(
64
+ ) => ShaderNodeObject<Node>;
65
+ export const mx_noise_vec4: (
58
66
  texcoord?: Node,
59
67
  amplitude?: Node | number,
60
68
  pivot?: Node | number,
61
- ): ShaderNodeObject<Node>;
69
+ ) => ShaderNodeObject<Node>;
70
+
71
+ export const mx_unifiednoise2d: (
72
+ noiseType: Node,
73
+ texcoord?: Node,
74
+ freq?: Node,
75
+ offset?: Node,
76
+ jitter?: Node | number,
77
+ outmin?: Node | number,
78
+ outmax?: Node | number,
79
+ clampoutput?: Node | boolean,
80
+ octaves?: Node | number,
81
+ lacunarity?: Node | number,
82
+ diminish?: Node | number,
83
+ ) => ShaderNodeObject<Node>;
84
+ export const mx_unifiednoise3d: (
85
+ noiseType: Node,
86
+ texcoord?: Node,
87
+ freq?: Node,
88
+ offset?: Node,
89
+ jitter?: Node | number,
90
+ outmin?: Node | number,
91
+ outmax?: Node | number,
92
+ clampoutput?: Node | boolean,
93
+ octaves?: Node | number,
94
+ lacunarity?: Node | number,
95
+ diminish?: Node | number,
96
+ ) => ShaderNodeObject<Node>;
62
97
 
63
98
  export function mx_worley_noise_float(
64
99
  texcoord?: Node,
@@ -105,3 +140,33 @@ export function mx_fractal_noise_vec4(
105
140
  ): ShaderNodeObject<Node>;
106
141
 
107
142
  export { mx_hsvtorgb, mx_rgbtohsv, mx_srgb_texture_to_lin_rec709 };
143
+
144
+ export const mx_add: (in1: Node, in2?: Node) => ShaderNodeObject<Node>;
145
+ export const mx_subtract: (in1: Node, in2?: Node) => ShaderNodeObject<Node>;
146
+ export const mx_multiply: (in1: Node, in2?: Node) => ShaderNodeObject<Node>;
147
+ export const mx_divide: (in1: Node, in2?: Node) => ShaderNodeObject<Node>;
148
+ export const mx_modulo: (in1: Node, in2?: Node) => ShaderNodeObject<Node>;
149
+ export const mx_power: (in1: Node, in2?: Node) => ShaderNodeObject<Node>;
150
+ export const mx_atan2: (in1?: Node, in2?: Node) => ShaderNodeObject<Node>;
151
+ export const mx_timer: () => ShaderNodeObject<Node>;
152
+ export const mx_frame: () => ShaderNodeObject<Node>;
153
+ export const mx_invert: (in1: Node, amount?: Node) => ShaderNodeObject<Node>;
154
+ export const mx_ifgreater: (value1: Node, value2: Node, in1: Node, in2: Node) => ShaderNodeObject<Node>;
155
+ export const mx_ifgreatereq: (value1: Node, value2: Node, in1: Node, in2: Node) => ShaderNodeObject<Node>;
156
+ export const mx_ifequal: (value1: Node, value2: Node, in1: Node, in2: Node) => ShaderNodeObject<Node>;
157
+
158
+ export const mx_separate: (in1: Node, channelOrOut?: string | number) => ShaderNodeObject<Node>;
159
+
160
+ export const mx_place2d: (
161
+ texcoord: Node,
162
+ pivot?: Node,
163
+ scale?: Node,
164
+ rotate?: Node,
165
+ offset?: Node,
166
+ ) => ShaderNodeObject<Node>;
167
+
168
+ export const mx_rotate2d: (input: Node, amount: Node) => ShaderNodeObject<Node>;
169
+
170
+ export const mx_rotate3d: (input: Node, amount: Node, axis: Node) => ShaderNodeObject<Node>;
171
+
172
+ export const mx_heighttonormal: (input: Node, scale: Node) => ShaderNodeObject<Node>;
@@ -357,3 +357,31 @@ export const mx_worley_noise_vec3: (
357
357
  jitter_immutable: Node | number,
358
358
  metric_immutable: Node | number,
359
359
  ) => ShaderNodeObject<Node>;
360
+
361
+ export const mx_unifiednoise2d: (
362
+ noiseType_immutable: Node,
363
+ texcoord_immutable: Node,
364
+ freq_immutable: Node,
365
+ offset_immutable: Node,
366
+ jitter_immutable: Node,
367
+ outmin_immutable: Node,
368
+ outmax_immutable: Node,
369
+ clampoutput_immutable: Node,
370
+ octaves_immutable: Node,
371
+ lacunarity_immutable: Node,
372
+ diminish_immutable: Node,
373
+ ) => ShaderNodeObject<Node>;
374
+
375
+ export const mx_unifiednoise3d: (
376
+ noiseType_immutable: Node,
377
+ position_immutable: Node,
378
+ freq_immutable: Node,
379
+ offset_immutable: Node,
380
+ jitter_immutable: Node,
381
+ outmin_immutable: Node,
382
+ outmax_immutable: Node,
383
+ clampoutput_immutable: Node,
384
+ octaves_immutable: Node,
385
+ lacunarity_immutable: Node,
386
+ diminish_immutable: Node,
387
+ ) => ShaderNodeObject<Node>;