From a59f24c29df3ccc51ec74cfa19fa81f8dbaf3204 Mon Sep 17 00:00:00 2001 From: Nathan Bierema Date: Sat, 18 May 2024 14:51:16 -0400 Subject: [PATCH] TSL: NormalNode - Improve tree shaking using TSL --- types/three/examples/jsm/nodes/Nodes.d.ts | 10 +------ .../jsm/nodes/accessors/NormalNode.d.ts | 26 +++++++------------ .../jsm/nodes/core/AttributeNode.d.ts | 8 ++++-- 3 files changed, 16 insertions(+), 28 deletions(-) diff --git a/types/three/examples/jsm/nodes/Nodes.d.ts b/types/three/examples/jsm/nodes/Nodes.d.ts index 6386a1e73..f8a8b7d98 100644 --- a/types/three/examples/jsm/nodes/Nodes.d.ts +++ b/types/three/examples/jsm/nodes/Nodes.d.ts @@ -266,15 +266,7 @@ export { modelWorldMatrix, } from "./accessors/ModelNode.js"; export { default as ModelViewProjectionNode, modelViewProjection } from "./accessors/ModelViewProjectionNode.js"; -export { - default as NormalNode, - normalGeometry, - normalLocal, - NormalNodeScope, - normalView, - normalWorld, - transformedNormalView, -} from "./accessors/NormalNode.js"; +export * from "./accessors/NormalNode.js"; export { default as Object3DNode, objectDirection, diff --git a/types/three/examples/jsm/nodes/accessors/NormalNode.d.ts b/types/three/examples/jsm/nodes/accessors/NormalNode.d.ts index 3eec445c7..cfd74c168 100644 --- a/types/three/examples/jsm/nodes/accessors/NormalNode.d.ts +++ b/types/three/examples/jsm/nodes/accessors/NormalNode.d.ts @@ -1,20 +1,12 @@ -import Node from "../core/Node.js"; +import AttributeNode from "../core/AttributeNode.js"; +import PropertyNode from "../core/PropertyNode.js"; import VarNode from "../core/VarNode.js"; +import MathNode from "../math/MathNode.js"; import { ShaderNodeObject } from "../shadernode/ShaderNode.js"; -export type NormalNodeScope = typeof NormalNode.GEOMETRY | typeof NormalNode.LOCAL | typeof NormalNode.VIEW; - -export default class NormalNode extends Node { - static GEOMETRY: "geometry"; - static LOCAL: "local"; - static VIEW: "view"; - scope: NormalNodeScope; - - constructor(scope?: NormalNodeScope); -} - -export const normalGeometry: ShaderNodeObject; -export const normalLocal: ShaderNodeObject; -export const normalView: ShaderNodeObject; -export const normalWorld: ShaderNodeObject; -export const transformedNormalView: ShaderNodeObject; +export const normalGeometry: ShaderNodeObject; +export const normalLocal: ShaderNodeObject; +export const normalView: ShaderNodeObject; +export const normalWorld: ShaderNodeObject; +export const transformedNormalView: ShaderNodeObject; +export const transformedClearcoatNormalView: ShaderNodeObject; diff --git a/types/three/examples/jsm/nodes/core/AttributeNode.d.ts b/types/three/examples/jsm/nodes/core/AttributeNode.d.ts index 5ac9a10f9..25155141f 100644 --- a/types/three/examples/jsm/nodes/core/AttributeNode.d.ts +++ b/types/three/examples/jsm/nodes/core/AttributeNode.d.ts @@ -1,4 +1,4 @@ -import { ShaderNodeObject } from "../shadernode/ShaderNode.js"; +import { NodeRepresentation, ShaderNodeObject } from "../shadernode/ShaderNode.js"; import { NodeTypeOption } from "./constants.js"; import Node from "./Node.js"; import NodeBuilder from "./NodeBuilder.js"; @@ -13,4 +13,8 @@ export default class AttributeNode extends Node { getAttributeName(builder: NodeBuilder): string; } -export const attribute: (name: string, nodeType: NodeTypeOption) => ShaderNodeObject; +export const attribute: ( + name: string, + nodeType?: NodeTypeOption | null, + defaultNode?: NodeRepresentation, +) => ShaderNodeObject;