Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove deprecated code. #898

Merged
merged 3 commits into from
Apr 21, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading