Skip to content

Commit

Permalink
Remove deprecated code. (#898)
Browse files Browse the repository at this point in the history
* Remove deprecated code.

* More

* Fix test
  • Loading branch information
Methuselah96 authored Apr 21, 2024
1 parent 4aa818f commit 1c91bbf
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 15 deletions.
4 changes: 2 additions & 2 deletions types/three/examples/jsm/nodes/Nodes.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -365,10 +365,10 @@ export { default as ViewportTextureNode, viewportMipTexture, viewportTexture } f
export { default as PassNode, depthPass, pass, PassNodeScope } from "./display/PassNode.js";

// code
export { code, CodeNodeInclude, default as CodeNode } from "./code/CodeNode.js";
export { code, CodeNodeInclude, default as CodeNode, glsl, js, wgsl } from "./code/CodeNode.js";
export { default as ExpressionNode, expression } from "./code/ExpressionNode.js";
export { call, default as FunctionCallNode } from "./code/FunctionCallNode.js";
export { default as FunctionNode, Fn, fn, func, FunctionNodeArguments } from "./code/FunctionNode.js";
export { default as FunctionNode, Fn, FunctionNodeArguments, glslFn, wgslFn } from "./code/FunctionNode.js";

// fog
export { default as FogExp2Node, densityFog } from "./fog/FogExp2Node.js";
Expand Down
9 changes: 7 additions & 2 deletions types/three/examples/jsm/nodes/code/CodeNode.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,15 @@ export interface CodeNodeInclude {
export default class CodeNode extends Node {
isCodeNode: true;
code: string;
constructor(code?: string, includes?: CodeNodeInclude[]);
language: string;

constructor(code?: string, includes?: CodeNodeInclude[], language?: string);

setIncludes(includes: CodeNodeInclude[]): this;
getIncludes(builder: NodeBuilder): CodeNodeInclude[];
}

export const code: (code: string, nodeType?: NodeTypeOption) => ShaderNodeObject<CodeNode>;
export const code: (code: string, includes?: CodeNodeInclude[], language?: string) => ShaderNodeObject<CodeNode>;
export const js: (src: string, includes?: CodeNodeInclude[]) => ShaderNodeObject<CodeNode>;
export const wgsl: (src: string, includes?: CodeNodeInclude[]) => ShaderNodeObject<CodeNode>;
export const glsl: (src: string, includes?: CodeNodeInclude[]) => ShaderNodeObject<CodeNode>;
14 changes: 10 additions & 4 deletions types/three/examples/jsm/nodes/code/FunctionNode.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ export type FunctionNodeArguments = Node[] | { [name: string]: Node };

export default class FunctionNode<P extends Node[] | { [name: string]: Node }> extends CodeNode {
keywords: { [key: string]: Node };
constructor(code?: string, includes?: CodeNodeInclude[]);
constructor(code?: string, includes?: CodeNodeInclude[], language?: string);

getInputs(builder: NodeBuilder): NodeFunctionInput[];
getNodeFunction(builder: NodeBuilder): NodeFunction;
Expand All @@ -20,13 +20,19 @@ export default class FunctionNode<P extends Node[] | { [name: string]: Node }> e
export type Fn<P extends FunctionNodeArguments> = P extends readonly [...unknown[]] ? ProxiedTuple<P>
: readonly [ProxiedObject<P>];

export const func: <P extends FunctionNodeArguments>(
export const nativeFn: <P extends FunctionNodeArguments>(
code: string,
includes?: CodeNodeInclude[],
language?: string,
// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
) => { call: (...params: Fn<P>) => ShaderNodeObject<Node> };
) => (...params: Fn<P>) => ShaderNodeObject<Node>;

export const fn: <P extends FunctionNodeArguments>(
export const glslFn: <P extends FunctionNodeArguments>(
code: string,
includes?: CodeNodeInclude[],
// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
) => (...params: Fn<P>) => ShaderNodeObject<Node>;
export const wgslFn: <P extends FunctionNodeArguments>(
code: string,
includes?: CodeNodeInclude[],
// eslint-disable-next-line @definitelytyped/no-unnecessary-generics
Expand Down
24 changes: 17 additions & 7 deletions types/three/test/unit/examples/jsm/nodes/core/FunctionNode.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,17 @@
* Various tests of func, fn and call
*/

import { call, code, fn, func, FunctionCallNode, FunctionNode, Node, Swizzable, uv } from "three/addons/nodes/Nodes.js";
import {
call,
code,
FunctionCallNode,
FunctionNode,
glslFn,
Node,
Swizzable,
uv,
wgslFn,
} from "three/addons/nodes/Nodes.js";

import { ProxiedObject } from "three/addons/nodes/shadernode/ShaderNode.js";

Expand All @@ -24,23 +34,23 @@ assertSwizzable<FunctionCallNode<{ a: Node }>>(call(someFunc2, { a: 1 }));
assertSwizzable<FunctionCallNode<{ a: Node }>>(call(someFunc2, { a: uv() }));
assertSwizzable<FunctionCallNode<{ a: Node }>>(call(someFunc2, { a: uv().xy }));

export const mx_cell_noise_float_call = func<[Node]>("float mx_cell_noise_float( vec3 p )", includes);
export const mx_worley_noise_float_call = func<[Node, Node, Node]>(
export const mx_cell_noise_float_call = wgslFn<[Node]>("float mx_cell_noise_float( vec3 p )", includes);
export const mx_worley_noise_float_call = wgslFn<[Node, Node, Node]>(
"float mx_worley_noise_float( vec3 p, float jitter, int metric )",
includes,
);
export const ab_call = func<{ a: Node; b: Node }>("float mx_cell_noise_float( vec3 p )", includes);
export const ab_call = wgslFn<{ a: Node; b: Node }>("float mx_cell_noise_float( vec3 p )", includes);

assertSwizzable<Node>(mx_cell_noise_float_call.call(uv()));
assertSwizzable<Node>(mx_worley_noise_float_call.call(uv(), 1, 1));
assertSwizzable<Node>(ab_call.call({ a: 1, b: uv() }));

export const mx_cell_noise_float = fn<[Node]>("float mx_cell_noise_float( vec3 p )", includes);
export const mx_worley_noise_float = fn<[Node, Node, Node]>(
export const mx_cell_noise_float = glslFn<[Node]>("float mx_cell_noise_float( vec3 p )", includes);
export const mx_worley_noise_float = glslFn<[Node, Node, Node]>(
"float mx_worley_noise_float( vec3 p, float jitter, int metric )",
includes,
);
export const ab = fn<{ a: Node; b: Node }>("float mx_cell_noise_float( vec3 p )", includes);
export const ab = glslFn<{ a: Node; b: Node }>("float mx_cell_noise_float( vec3 p )", includes);

assertSwizzable<Node>(mx_cell_noise_float(uv()));
assertSwizzable<Node>(mx_worley_noise_float(uv(), 1, 1));
Expand Down

0 comments on commit 1c91bbf

Please sign in to comment.