Skip to content

Commit 5a74d41

Browse files
committed
Use ShaderNodeObject for Material Node properties
1 parent cf8707e commit 5a74d41

File tree

6 files changed

+69
-63
lines changed

6 files changed

+69
-63
lines changed

types/three/src/nodes/materials/MeshPhongNodeMaterial.d.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { Euler } from "../../math/Euler.js";
55
import { Vector2 } from "../../math/Vector2.js";
66
import { Texture } from "../../textures/Texture.js";
77
import Node from "../core/Node.js";
8+
import { ShaderNodeObject } from "../shadernode/ShaderNode.js";
89
import NodeMaterial, { NodeMaterialParameters } from "./NodeMaterial.js";
910

1011
export interface MeshPhongNodeMaterialParameters extends NodeMaterialParameters, MeshPhongMaterialParameters {
@@ -13,8 +14,8 @@ export interface MeshPhongNodeMaterialParameters extends NodeMaterialParameters,
1314
export default class MeshPhongNodeMaterial extends NodeMaterial {
1415
readonly isMeshPhongNodeMaterial: true;
1516

16-
shininessNode: Node | null;
17-
specularNode: Node | null;
17+
shininessNode: ShaderNodeObject<Node> | null;
18+
specularNode: ShaderNodeObject<Node> | null;
1819

1920
// Properties from MeshPhongMaterial
2021
readonly isMeshPhongMaterial: true;

types/three/src/nodes/materials/MeshPhysicalNodeMaterial.d.ts

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { Color } from "../../math/Color.js";
33
import { Vector2 } from "../../math/Vector2.js";
44
import { Texture } from "../../textures/Texture.js";
55
import Node from "../core/Node.js";
6+
import { ShaderNodeObject } from "../shadernode/ShaderNode.js";
67
import MeshStandardNodeMaterial, { MeshStandardNodeMaterialParameters } from "./MeshStandardNodeMaterial.js";
78

89
export interface MeshPhysicalNodeMaterialParameters
@@ -13,29 +14,29 @@ export interface MeshPhysicalNodeMaterialParameters
1314
export default class MeshPhysicalNodeMaterial extends MeshStandardNodeMaterial {
1415
readonly isMeshPhysicalNodeMaterial: true;
1516

16-
clearcoatNode: Node | null;
17-
clearcoatRoughnessNode: Node | null;
18-
clearcoatNormalNode: Node | null;
17+
clearcoatNode: ShaderNodeObject<Node> | null;
18+
clearcoatRoughnessNode: ShaderNodeObject<Node> | null;
19+
clearcoatNormalNode: ShaderNodeObject<Node> | null;
1920

20-
sheenNode: Node | null;
21-
sheenRoughnessNode: Node | null;
21+
sheenNode: ShaderNodeObject<Node> | null;
22+
sheenRoughnessNode: ShaderNodeObject<Node> | null;
2223

23-
iridescenceNode: Node | null;
24-
iridescenceIORNode: Node | null;
25-
iridescenceThicknessNode: Node | null;
24+
iridescenceNode: ShaderNodeObject<Node> | null;
25+
iridescenceIORNode: ShaderNodeObject<Node> | null;
26+
iridescenceThicknessNode: ShaderNodeObject<Node> | null;
2627

27-
iorNode: Node | null;
28+
iorNode: ShaderNodeObject<Node> | null;
2829

29-
specularIntensityNode: Node | null;
30-
specularColorNode: Node | null;
30+
specularIntensityNode: ShaderNodeObject<Node> | null;
31+
specularColorNode: ShaderNodeObject<Node> | null;
3132

32-
transmissionNode: Node | null;
33-
thicknessNode: Node | null;
34-
attenuationDistanceNode: Node | null;
35-
attenuationColorNode: Node | null;
36-
dispersionNode: Node | null;
33+
transmissionNode: ShaderNodeObject<Node> | null;
34+
thicknessNode: ShaderNodeObject<Node> | null;
35+
attenuationDistanceNode: ShaderNodeObject<Node> | null;
36+
attenuationColorNode: ShaderNodeObject<Node> | null;
37+
dispersionNode: ShaderNodeObject<Node> | null;
3738

38-
anisotropyNode: Node | null;
39+
anisotropyNode: ShaderNodeObject<Node> | null;
3940

4041
// Properties from MeshPhysicalMaterial
4142
readonly isMeshPhysicalMaterial: true;

types/three/src/nodes/materials/MeshSSSNodeMaterial.d.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
import ConstNode from "../core/ConstNode.js";
22
import Node from "../core/Node.js";
3+
import { ShaderNodeObject } from "../shadernode/ShaderNode.js";
34
import MeshPhysicalNodeMaterial, { MeshPhysicalNodeMaterialParameters } from "./MeshPhysicalNodeMaterial.js";
45

56
export default class MeshSSSNodeMaterial extends MeshPhysicalNodeMaterial {
6-
thicknessColorNode: Node | null;
7-
thicknessDistortionNode: ConstNode<number>;
8-
thicknessAmbientNode: ConstNode<number>;
9-
thicknessAttenuationNode: ConstNode<number>;
10-
thicknessPowerNode: ConstNode<number>;
11-
thicknessScaleNode: ConstNode<number>;
7+
thicknessColorNode: ShaderNodeObject<Node> | null;
8+
thicknessDistortionNode: ShaderNodeObject<ConstNode<number>>;
9+
thicknessAmbientNode: ShaderNodeObject<ConstNode<number>>;
10+
thicknessAttenuationNode: ShaderNodeObject<ConstNode<number>>;
11+
thicknessPowerNode: ShaderNodeObject<ConstNode<number>>;
12+
thicknessScaleNode: ShaderNodeObject<ConstNode<number>>;
1213

1314
constructor(parameters?: MeshPhysicalNodeMaterialParameters);
1415

types/three/src/nodes/materials/MeshStandardNodeMaterial.d.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { Euler } from "../../math/Euler.js";
55
import { Vector2 } from "../../math/Vector2.js";
66
import { Texture } from "../../textures/Texture.js";
77
import Node from "../core/Node.js";
8+
import { ShaderNodeObject } from "../shadernode/ShaderNode.js";
89
import NodeMaterial, { NodeMaterialParameters } from "./NodeMaterial.js";
910

1011
export interface MeshStandardNodeMaterialParameters extends NodeMaterialParameters, MeshStandardMaterialParameters {
@@ -13,10 +14,10 @@ export interface MeshStandardNodeMaterialParameters extends NodeMaterialParamete
1314
export default class MeshStandardNodeMaterial extends NodeMaterial {
1415
readonly isMeshStandardNodeMaterial: true;
1516

16-
emissiveNode: Node | null;
17+
emissiveNode: ShaderNodeObject<Node> | null;
1718

18-
metalnessNode: Node | null;
19-
roughnessNode: Node | null;
19+
metalnessNode: ShaderNodeObject<Node> | null;
20+
roughnessNode: ShaderNodeObject<Node> | null;
2021

2122
// Properties from MeshStandardMaterial
2223
readonly isMeshStandardMaterial: true;

types/three/src/nodes/materials/NodeMaterial.d.ts

Lines changed: 34 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import MRTNode from "../core/MRTNode.js";
1616
import Node from "../core/Node.js";
1717
import NodeBuilder from "../core/NodeBuilder.js";
1818
import LightsNode from "../lighting/LightsNode.js";
19+
import { ShaderNodeObject } from "../shadernode/ShaderNode.js";
1920
import LineBasicNodeMaterial from "./LineBasicNodeMaterial.js";
2021
import MeshBasicNodeMaterial from "./MeshBasicNodeMaterial.js";
2122
import MeshMatcapNodeMaterial from "./MeshMatcapNodeMaterial.js";
@@ -33,26 +34,26 @@ export interface NodeMaterialParameters extends MaterialParameters {
3334

3435
colorSpaced?: boolean | undefined;
3536

36-
lightsNode?: LightsNode | null | undefined;
37-
envNode?: Node | null | undefined;
38-
aoNode?: Node | null | undefined;
37+
lightsNode?: ShaderNodeObject<LightsNode> | null | undefined;
38+
envNode?: ShaderNodeObject<Node> | null | undefined;
39+
aoNode?: ShaderNodeObject<Node> | null | undefined;
3940

40-
colorNode?: Node | null | undefined;
41-
normalNode?: Node | null | undefined;
42-
opacityNode?: Node | null | undefined;
43-
backdropNode?: Node | null | undefined;
44-
backdropAlphaNode?: Node | null | undefined;
45-
alphaTestNode?: Node | null | undefined;
41+
colorNode?: ShaderNodeObject<Node> | null | undefined;
42+
normalNode?: ShaderNodeObject<Node> | null | undefined;
43+
opacityNode?: ShaderNodeObject<Node> | null | undefined;
44+
backdropNode?: ShaderNodeObject<Node> | null | undefined;
45+
backdropAlphaNode?: ShaderNodeObject<Node> | null | undefined;
46+
alphaTestNode?: ShaderNodeObject<Node> | null | undefined;
4647

47-
positionNode?: Node | null | undefined;
48+
positionNode?: ShaderNodeObject<Node> | null | undefined;
4849

49-
depthNode?: Node | null | undefined;
50-
shadowNode?: Node | null | undefined;
50+
depthNode?: ShaderNodeObject<Node> | null | undefined;
51+
shadowNode?: ShaderNodeObject<Node> | null | undefined;
5152

52-
outputNode?: Node | null | undefined;
53+
outputNode?: ShaderNodeObject<Node> | null | undefined;
5354

54-
fragmentNode?: Node | null | undefined;
55-
vertexNode?: Node | null | undefined;
55+
fragmentNode?: ShaderNodeObject<Node> | null | undefined;
56+
vertexNode?: ShaderNodeObject<Node> | null | undefined;
5657
}
5758

5859
export default class NodeMaterial extends Material {
@@ -62,34 +63,34 @@ export default class NodeMaterial extends Material {
6263
lights: boolean;
6364
normals: boolean;
6465

65-
lightsNode: LightsNode | null;
66-
envNode: Node | null;
67-
aoNode: Node | null;
66+
lightsNode: ShaderNodeObject<LightsNode> | null;
67+
envNode: ShaderNodeObject<Node> | null;
68+
aoNode: ShaderNodeObject<Node> | null;
6869

69-
colorNode: Node | null;
70-
normalNode: Node | null;
71-
opacityNode: Node | null;
72-
backdropNode: Node | null;
73-
backdropAlphaNode: Node | null;
74-
alphaTestNode: Node | null;
70+
colorNode: ShaderNodeObject<Node> | null;
71+
normalNode: ShaderNodeObject<Node> | null;
72+
opacityNode: ShaderNodeObject<Node> | null;
73+
backdropNode: ShaderNodeObject<Node> | null;
74+
backdropAlphaNode: ShaderNodeObject<Node> | null;
75+
alphaTestNode: ShaderNodeObject<Node> | null;
7576

76-
positionNode: Node | null;
77+
positionNode: ShaderNodeObject<Node> | null;
7778

78-
depthNode: Node | null;
79-
shadowNode: Node | null;
80-
shadowPositionNode: Node | null;
79+
depthNode: ShaderNodeObject<Node> | null;
80+
shadowNode: ShaderNodeObject<Node> | null;
81+
shadowPositionNode: ShaderNodeObject<Node> | null;
8182

82-
outputNode: Node | null;
83-
mrtNode: MRTNode | null;
83+
outputNode: ShaderNodeObject<Node> | null;
84+
mrtNode: ShaderNodeObject<MRTNode> | null;
8485

85-
fragmentNode: Node | null;
86-
vertexNode: Node | null;
86+
fragmentNode: ShaderNodeObject<Node> | null;
87+
vertexNode: ShaderNodeObject<Node> | null;
8788

8889
constructor();
8990

9091
build(builder: NodeBuilder): void;
9192
setup(builder: NodeBuilder): void;
92-
setupClipping(builder: NodeBuilder): ClippingNode | null;
93+
setupClipping(builder: NodeBuilder): ShaderNodeObject<ClippingNode> | null;
9394
setupDepth(builder: NodeBuilder): void;
9495
setupPosition(builder: NodeBuilder): Node;
9596
setupDiffuseColor(builder: NodeBuilder): void;

types/three/src/nodes/materials/SpriteNodeMaterial.d.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { SpriteMaterialParameters } from "../../materials/SpriteMaterial.js";
22
import { Color } from "../../math/Color.js";
33
import { Texture } from "../../textures/Texture.js";
44
import Node from "../core/Node.js";
5+
import { ShaderNodeObject } from "../shadernode/ShaderNode.js";
56
import NodeMaterial, { NodeMaterialParameters } from "./NodeMaterial.js";
67

78
export interface SpriteNodeMaterialParameters extends NodeMaterialParameters, SpriteMaterialParameters {
@@ -10,8 +11,8 @@ export interface SpriteNodeMaterialParameters extends NodeMaterialParameters, Sp
1011
export default class SpriteNodeMaterial extends NodeMaterial {
1112
isSpriteNodeMaterial: true;
1213

13-
rotationNode: Node | null;
14-
scaleNode: Node | null;
14+
rotationNode: ShaderNodeObject<Node> | null;
15+
scaleNode: ShaderNodeObject<Node> | null;
1516

1617
// Properties from SpriteMaterial
1718
readonly isSpriteMaterial: true;

0 commit comments

Comments
 (0)