three-stdlib 2.8.8 → 2.8.11
Sign up to get free protection for your applications and to get access to all the features.
- package/Nodes-607e9ed8.js +471 -0
- package/Nodes-627a8bdf.js +1 -0
- package/index.cjs.js +1 -1
- package/index.d.ts +0 -75
- package/index.js +70 -76
- package/loaders/NodeMaterialLoader.cjs.js +1 -1
- package/loaders/NodeMaterialLoader.js +2 -136
- package/loaders/RGBELoader.cjs.js +1 -1
- package/loaders/RGBELoader.js +3 -3
- package/loaders/RGBMLoader.cjs.js +1 -1
- package/loaders/RGBMLoader.js +190 -268
- package/nodes/Nodes.cjs.js +1 -1
- package/nodes/Nodes.js +203 -76
- package/nodes/ShaderNode.cjs.js +1 -0
- package/nodes/ShaderNode.js +308 -0
- package/nodes/accessors/BufferNode.cjs.js +1 -0
- package/nodes/accessors/BufferNode.js +18 -0
- package/nodes/accessors/CameraNode.cjs.js +1 -1
- package/nodes/accessors/CameraNode.js +32 -138
- package/nodes/accessors/CubeTextureNode.cjs.js +1 -0
- package/nodes/accessors/CubeTextureNode.js +53 -0
- package/nodes/accessors/MaterialNode.cjs.js +1 -0
- package/nodes/accessors/MaterialNode.js +80 -0
- package/nodes/accessors/MaterialReferenceNode.cjs.js +1 -0
- package/nodes/accessors/MaterialReferenceNode.js +16 -0
- package/nodes/accessors/ModelNode.cjs.js +1 -0
- package/nodes/accessors/ModelNode.js +10 -0
- package/nodes/accessors/ModelViewProjectionNode.cjs.js +1 -0
- package/nodes/accessors/ModelViewProjectionNode.js +22 -0
- package/nodes/accessors/NormalNode.cjs.js +1 -1
- package/nodes/accessors/NormalNode.js +48 -78
- package/nodes/accessors/Object3DNode.cjs.js +1 -0
- package/nodes/accessors/Object3DNode.js +85 -0
- package/nodes/accessors/PointUVNode.cjs.js +1 -0
- package/nodes/accessors/PointUVNode.js +16 -0
- package/nodes/accessors/PositionNode.cjs.js +1 -1
- package/nodes/accessors/PositionNode.js +49 -87
- package/nodes/accessors/ReferenceNode.cjs.js +1 -0
- package/nodes/accessors/ReferenceNode.js +43 -0
- package/nodes/accessors/ReflectNode.cjs.js +1 -1
- package/nodes/accessors/ReflectNode.js +35 -98
- package/nodes/accessors/SkinningNode.cjs.js +1 -0
- package/nodes/accessors/SkinningNode.js +59 -0
- package/nodes/accessors/TextureNode.cjs.js +1 -0
- package/nodes/accessors/TextureNode.js +68 -0
- package/nodes/accessors/UVNode.cjs.js +1 -1
- package/nodes/accessors/UVNode.js +20 -38
- package/nodes/core/ArrayUniformNode.cjs.js +1 -0
- package/nodes/core/ArrayUniformNode.js +17 -0
- package/nodes/core/AttributeNode.cjs.js +1 -1
- package/nodes/core/AttributeNode.js +31 -40
- package/nodes/core/BypassNode.cjs.js +1 -0
- package/nodes/core/BypassNode.js +28 -0
- package/nodes/core/CodeNode.cjs.js +1 -0
- package/nodes/core/CodeNode.js +35 -0
- package/nodes/core/ConstNode.cjs.js +1 -1
- package/nodes/core/ConstNode.js +10 -78
- package/nodes/core/ContextNode.cjs.js +1 -0
- package/nodes/core/ContextNode.js +26 -0
- package/nodes/core/ExpressionNode.cjs.js +1 -1
- package/nodes/core/ExpressionNode.js +19 -8
- package/nodes/core/FunctionCallNode.cjs.js +1 -1
- package/nodes/core/FunctionCallNode.js +31 -60
- package/nodes/core/FunctionNode.cjs.js +1 -1
- package/nodes/core/FunctionNode.js +45 -166
- package/nodes/core/InputNode.cjs.js +1 -1
- package/nodes/core/InputNode.js +43 -57
- package/nodes/core/Node.cjs.js +1 -1
- package/nodes/core/Node.js +155 -113
- package/nodes/core/NodeAttribute.cjs.js +1 -0
- package/nodes/core/NodeAttribute.js +11 -0
- package/nodes/core/NodeBuilder.cjs.js +1 -1
- package/nodes/core/NodeBuilder.js +422 -548
- package/nodes/core/NodeCode.cjs.js +1 -0
- package/nodes/core/NodeCode.js +13 -0
- package/nodes/core/NodeFrame.cjs.js +1 -1
- package/nodes/core/NodeFrame.js +34 -27
- package/nodes/core/NodeFunction.cjs.js +1 -0
- package/nodes/core/NodeFunction.js +17 -0
- package/nodes/core/NodeFunctionInput.cjs.js +1 -0
- package/nodes/core/NodeFunctionInput.js +14 -0
- package/nodes/core/NodeKeywords.cjs.js +1 -0
- package/nodes/core/NodeKeywords.js +54 -0
- package/nodes/core/NodeParser.cjs.js +1 -0
- package/nodes/core/NodeParser.js +8 -0
- package/nodes/core/NodeUniform.cjs.js +1 -1
- package/nodes/core/NodeUniform.js +18 -17
- package/nodes/core/NodeUtils.cjs.js +1 -1
- package/nodes/core/NodeUtils.js +55 -35
- package/nodes/core/NodeVar.cjs.js +1 -0
- package/nodes/core/NodeVar.js +11 -0
- package/nodes/core/NodeVary.cjs.js +1 -0
- package/nodes/core/NodeVary.js +11 -0
- package/nodes/core/PropertyNode.cjs.js +1 -0
- package/nodes/core/PropertyNode.js +26 -0
- package/nodes/core/TempNode.cjs.js +1 -1
- package/nodes/core/TempNode.js +21 -88
- package/nodes/core/UniformNode.cjs.js +1 -0
- package/nodes/core/UniformNode.js +28 -0
- package/nodes/core/VarNode.cjs.js +1 -1
- package/nodes/core/VarNode.js +28 -35
- package/nodes/core/VaryNode.cjs.js +1 -0
- package/nodes/core/VaryNode.js +38 -0
- package/nodes/core/constants.cjs.js +1 -0
- package/nodes/core/constants.js +11 -0
- package/nodes/display/ColorSpaceNode.cjs.js +1 -0
- package/nodes/display/ColorSpaceNode.js +67 -0
- package/nodes/display/NormalMapNode.cjs.js +1 -0
- package/nodes/display/NormalMapNode.js +71 -0
- package/nodes/fog/FogNode.cjs.js +1 -0
- package/nodes/fog/FogNode.js +18 -0
- package/nodes/fog/FogRangeNode.cjs.js +1 -0
- package/nodes/fog/FogRangeNode.js +20 -0
- package/nodes/functions/BSDFs.cjs.js +1 -0
- package/nodes/functions/BSDFs.js +121 -0
- package/nodes/functions/PhysicalMaterialFunctions.cjs.js +1 -0
- package/nodes/functions/PhysicalMaterialFunctions.js +57 -0
- package/nodes/lights/LightContextNode.cjs.js +1 -0
- package/nodes/lights/LightContextNode.js +43 -0
- package/nodes/lights/LightNode.cjs.js +1 -0
- package/nodes/lights/LightNode.js +61 -0
- package/nodes/lights/LightsNode.cjs.js +1 -0
- package/nodes/lights/LightsNode.js +77 -0
- package/nodes/loaders/NodeLoader.cjs.js +1 -0
- package/nodes/loaders/NodeLoader.js +80 -0
- package/nodes/loaders/NodeMaterialLoader.cjs.js +1 -0
- package/nodes/loaders/NodeMaterialLoader.js +29 -0
- package/nodes/loaders/NodeObjectLoader.cjs.js +1 -0
- package/nodes/loaders/NodeObjectLoader.js +49 -0
- package/nodes/materials/LineBasicNodeMaterial.cjs.js +1 -0
- package/nodes/materials/LineBasicNodeMaterial.js +31 -0
- package/nodes/materials/Materials.cjs.js +1 -0
- package/nodes/materials/Materials.js +27 -0
- package/nodes/materials/MeshBasicNodeMaterial.cjs.js +1 -0
- package/nodes/materials/MeshBasicNodeMaterial.js +32 -0
- package/nodes/materials/MeshStandardNodeMaterial.cjs.js +1 -1
- package/nodes/materials/MeshStandardNodeMaterial.js +41 -13
- package/nodes/materials/NodeMaterial.cjs.js +1 -1
- package/nodes/materials/NodeMaterial.js +67 -140
- package/nodes/materials/PointsNodeMaterial.cjs.js +1 -0
- package/nodes/materials/PointsNodeMaterial.js +34 -0
- package/nodes/math/CondNode.cjs.js +1 -1
- package/nodes/math/CondNode.js +33 -74
- package/nodes/math/MathNode.cjs.js +1 -1
- package/nodes/math/MathNode.js +193 -193
- package/nodes/math/OperatorNode.cjs.js +1 -1
- package/nodes/math/OperatorNode.js +116 -52
- package/nodes/parsers/GLSLNodeFunction.cjs.js +1 -0
- package/nodes/parsers/GLSLNodeFunction.js +101 -0
- package/nodes/parsers/GLSLNodeParser.cjs.js +1 -0
- package/nodes/parsers/GLSLNodeParser.js +13 -0
- package/nodes/parsers/WGSLNodeFunction.cjs.js +1 -0
- package/nodes/parsers/WGSLNodeFunction.js +71 -0
- package/nodes/parsers/WGSLNodeParser.cjs.js +1 -0
- package/nodes/parsers/WGSLNodeParser.js +13 -0
- package/nodes/procedural/CheckerNode.cjs.js +1 -1
- package/nodes/procedural/CheckerNode.js +22 -40
- package/nodes/utils/ArrayElementNode.cjs.js +1 -0
- package/nodes/utils/ArrayElementNode.js +22 -0
- package/nodes/utils/ConvertNode.cjs.js +1 -0
- package/nodes/utils/ConvertNode.js +29 -0
- package/nodes/utils/JoinNode.cjs.js +1 -1
- package/nodes/utils/JoinNode.js +19 -69
- package/nodes/utils/MatcapUVNode.cjs.js +1 -0
- package/nodes/utils/MatcapUVNode.js +18 -0
- package/nodes/utils/OscNode.cjs.js +1 -0
- package/nodes/utils/OscNode.js +55 -0
- package/nodes/utils/SplitNode.cjs.js +1 -0
- package/nodes/utils/SplitNode.js +58 -0
- package/nodes/utils/SpriteSheetUVNode.cjs.js +1 -0
- package/nodes/utils/SpriteSheetUVNode.js +39 -0
- package/nodes/utils/TimerNode.cjs.js +1 -1
- package/nodes/utils/TimerNode.js +38 -56
- package/package.json +2 -2
- package/Nodes-894ac9dc.js +0 -1
- package/Nodes-af575af7.js +0 -157
- package/nodes/accessors/ColorsNode.cjs.js +0 -1
- package/nodes/accessors/ColorsNode.d.ts +0 -10
- package/nodes/accessors/ColorsNode.js +0 -40
- package/nodes/accessors/LightNode.cjs.js +0 -1
- package/nodes/accessors/LightNode.d.ts +0 -12
- package/nodes/accessors/LightNode.js +0 -41
- package/nodes/accessors/ResolutionNode.cjs.js +0 -1
- package/nodes/accessors/ResolutionNode.d.ts +0 -14
- package/nodes/accessors/ResolutionNode.js +0 -41
- package/nodes/accessors/ScreenUVNode.cjs.js +0 -1
- package/nodes/accessors/ScreenUVNode.d.ts +0 -11
- package/nodes/accessors/ScreenUVNode.js +0 -43
- package/nodes/core/NodeLib.cjs.js +0 -1
- package/nodes/core/NodeLib.d.ts +0 -22
- package/nodes/core/NodeLib.js +0 -37
- package/nodes/core/StructNode.cjs.js +0 -1
- package/nodes/core/StructNode.d.ts +0 -19
- package/nodes/core/StructNode.js +0 -72
- package/nodes/effects/BlurNode.cjs.js +0 -1
- package/nodes/effects/BlurNode.d.ts +0 -31
- package/nodes/effects/BlurNode.js +0 -100
- package/nodes/effects/ColorAdjustmentNode.cjs.js +0 -1
- package/nodes/effects/ColorAdjustmentNode.d.ts +0 -27
- package/nodes/effects/ColorAdjustmentNode.js +0 -73
- package/nodes/effects/LuminanceNode.cjs.js +0 -1
- package/nodes/effects/LuminanceNode.d.ts +0 -18
- package/nodes/effects/LuminanceNode.js +0 -46
- package/nodes/inputs/BoolNode.cjs.js +0 -1
- package/nodes/inputs/BoolNode.d.ts +0 -19
- package/nodes/inputs/BoolNode.js +0 -36
- package/nodes/inputs/ColorNode.cjs.js +0 -1
- package/nodes/inputs/ColorNode.d.ts +0 -21
- package/nodes/inputs/ColorNode.js +0 -41
- package/nodes/inputs/CubeTextureNode.cjs.js +0 -1
- package/nodes/inputs/CubeTextureNode.d.ts +0 -17
- package/nodes/inputs/CubeTextureNode.js +0 -79
- package/nodes/inputs/FloatNode.cjs.js +0 -1
- package/nodes/inputs/FloatNode.d.ts +0 -19
- package/nodes/inputs/FloatNode.js +0 -36
- package/nodes/inputs/IntNode.cjs.js +0 -1
- package/nodes/inputs/IntNode.d.ts +0 -19
- package/nodes/inputs/IntNode.js +0 -36
- package/nodes/inputs/Matrix3Node.cjs.js +0 -1
- package/nodes/inputs/Matrix3Node.d.ts +0 -22
- package/nodes/inputs/Matrix3Node.js +0 -46
- package/nodes/inputs/Matrix4Node.cjs.js +0 -1
- package/nodes/inputs/Matrix4Node.d.ts +0 -22
- package/nodes/inputs/Matrix4Node.js +0 -46
- package/nodes/inputs/PropertyNode.cjs.js +0 -1
- package/nodes/inputs/PropertyNode.d.ts +0 -10
- package/nodes/inputs/PropertyNode.js +0 -35
- package/nodes/inputs/RTTNode.cjs.js +0 -1
- package/nodes/inputs/RTTNode.d.ts +0 -27
- package/nodes/inputs/RTTNode.js +0 -103
- package/nodes/inputs/ReflectorNode.cjs.js +0 -1
- package/nodes/inputs/ReflectorNode.d.ts +0 -21
- package/nodes/inputs/ReflectorNode.js +0 -60
- package/nodes/inputs/ScreenNode.cjs.js +0 -1
- package/nodes/inputs/ScreenNode.d.ts +0 -11
- package/nodes/inputs/ScreenNode.js +0 -20
- package/nodes/inputs/TextureNode.cjs.js +0 -1
- package/nodes/inputs/TextureNode.d.ts +0 -20
- package/nodes/inputs/TextureNode.js +0 -83
- package/nodes/inputs/Vector2Node.cjs.js +0 -1
- package/nodes/inputs/Vector2Node.d.ts +0 -21
- package/nodes/inputs/Vector2Node.js +0 -40
- package/nodes/inputs/Vector3Node.cjs.js +0 -1
- package/nodes/inputs/Vector3Node.d.ts +0 -21
- package/nodes/inputs/Vector3Node.js +0 -41
- package/nodes/inputs/Vector4Node.cjs.js +0 -1
- package/nodes/inputs/Vector4Node.d.ts +0 -21
- package/nodes/inputs/Vector4Node.js +0 -42
- package/nodes/materials/BasicNodeMaterial.cjs.js +0 -1
- package/nodes/materials/BasicNodeMaterial.d.ts +0 -11
- package/nodes/materials/BasicNodeMaterial.js +0 -15
- package/nodes/materials/PhongNodeMaterial.cjs.js +0 -1
- package/nodes/materials/PhongNodeMaterial.d.ts +0 -21
- package/nodes/materials/PhongNodeMaterial.js +0 -15
- package/nodes/materials/SpriteNodeMaterial.cjs.js +0 -1
- package/nodes/materials/SpriteNodeMaterial.d.ts +0 -12
- package/nodes/materials/SpriteNodeMaterial.js +0 -15
- package/nodes/materials/StandardNodeMaterial.cjs.js +0 -1
- package/nodes/materials/StandardNodeMaterial.d.ts +0 -25
- package/nodes/materials/StandardNodeMaterial.js +0 -15
- package/nodes/materials/nodes/BasicNode.cjs.js +0 -1
- package/nodes/materials/nodes/BasicNode.d.ts +0 -15
- package/nodes/materials/nodes/BasicNode.js +0 -91
- package/nodes/materials/nodes/MeshStandardNode.cjs.js +0 -1
- package/nodes/materials/nodes/MeshStandardNode.d.ts +0 -25
- package/nodes/materials/nodes/MeshStandardNode.js +0 -81
- package/nodes/materials/nodes/PhongNode.cjs.js +0 -1
- package/nodes/materials/nodes/PhongNode.d.ts +0 -14
- package/nodes/materials/nodes/PhongNode.js +0 -212
- package/nodes/materials/nodes/RawNode.cjs.js +0 -1
- package/nodes/materials/nodes/RawNode.d.ts +0 -10
- package/nodes/materials/nodes/RawNode.js +0 -42
- package/nodes/materials/nodes/SpriteNode.cjs.js +0 -1
- package/nodes/materials/nodes/SpriteNode.d.ts +0 -13
- package/nodes/materials/nodes/SpriteNode.js +0 -113
- package/nodes/materials/nodes/StandardNode.cjs.js +0 -1
- package/nodes/materials/nodes/StandardNode.d.ts +0 -15
- package/nodes/materials/nodes/StandardNode.js +0 -336
- package/nodes/misc/BumpMapNode.cjs.js +0 -1
- package/nodes/misc/BumpMapNode.d.ts +0 -21
- package/nodes/misc/BumpMapNode.js +0 -80
- package/nodes/misc/NormalMapNode.cjs.js +0 -1
- package/nodes/misc/NormalMapNode.d.ts +0 -19
- package/nodes/misc/NormalMapNode.js +0 -102
- package/nodes/misc/TextureCubeNode.cjs.js +0 -1
- package/nodes/misc/TextureCubeNode.d.ts +0 -21
- package/nodes/misc/TextureCubeNode.js +0 -52
- package/nodes/misc/TextureCubeUVNode.cjs.js +0 -1
- package/nodes/misc/TextureCubeUVNode.d.ts +0 -18
- package/nodes/misc/TextureCubeUVNode.js +0 -229
- package/nodes/postprocessing/NodePass.cjs.js +0 -1
- package/nodes/postprocessing/NodePass.d.ts +0 -15
- package/nodes/postprocessing/NodePass.js +0 -61
- package/nodes/postprocessing/NodePostProcessing.cjs.js +0 -1
- package/nodes/postprocessing/NodePostProcessing.d.ts +0 -26
- package/nodes/postprocessing/NodePostProcessing.js +0 -91
- package/nodes/procedural/NoiseNode.cjs.js +0 -1
- package/nodes/procedural/NoiseNode.d.ts +0 -17
- package/nodes/procedural/NoiseNode.js +0 -43
- package/nodes/utils/BypassNode.cjs.js +0 -1
- package/nodes/utils/BypassNode.d.ts +0 -11
- package/nodes/utils/BypassNode.js +0 -55
- package/nodes/utils/ColorSpaceNode.cjs.js +0 -1
- package/nodes/utils/ColorSpaceNode.d.ts +0 -55
- package/nodes/utils/ColorSpaceNode.js +0 -106
- package/nodes/utils/MaxMIPLevelNode.cjs.js +0 -1
- package/nodes/utils/MaxMIPLevelNode.d.ts +0 -11
- package/nodes/utils/MaxMIPLevelNode.js +0 -38
- package/nodes/utils/SpecularMIPLevelNode.cjs.js +0 -1
- package/nodes/utils/SpecularMIPLevelNode.d.ts +0 -17
- package/nodes/utils/SpecularMIPLevelNode.js +0 -61
- package/nodes/utils/SubSlotNode.cjs.js +0 -1
- package/nodes/utils/SubSlotNode.js +0 -53
- package/nodes/utils/SwitchNode.cjs.js +0 -1
- package/nodes/utils/SwitchNode.d.ts +0 -11
- package/nodes/utils/SwitchNode.js +0 -69
- package/nodes/utils/UVTransformNode.cjs.js +0 -1
- package/nodes/utils/UVTransformNode.d.ts +0 -15
- package/nodes/utils/UVTransformNode.js +0 -46
- package/nodes/utils/VelocityNode.cjs.js +0 -1
- package/nodes/utils/VelocityNode.d.ts +0 -28
- package/nodes/utils/VelocityNode.js +0 -115
@@ -1,152 +1,79 @@
|
|
1
|
-
import { ShaderMaterial,
|
2
|
-
import {
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
this.fragment = fragment || new RawNode(new ColorNode(0xff0000));
|
11
|
-
this.updaters = [];
|
12
|
-
}
|
1
|
+
import { ShaderMaterial, Material } from 'three';
|
2
|
+
import { getNodesKeys } from '../core/NodeUtils.js';
|
3
|
+
|
4
|
+
class NodeMaterial extends ShaderMaterial {
|
5
|
+
constructor() {
|
6
|
+
super();
|
7
|
+
this.type = this.constructor.name;
|
8
|
+
this.lights = true;
|
9
|
+
}
|
13
10
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
11
|
+
setDefaultValues(values) {
|
12
|
+
// This approach is to reuse the native refreshUniforms*
|
13
|
+
// and turn available the use of features like transmission and environment in core
|
14
|
+
let value;
|
15
|
+
|
16
|
+
for (const property in values) {
|
17
|
+
value = values[property];
|
18
|
+
|
19
|
+
if (this[property] === undefined) {
|
20
|
+
if (value && typeof value.clone === 'function') {
|
21
|
+
this[property] = value.clone();
|
22
|
+
} else {
|
23
|
+
this[property] = value;
|
24
|
+
}
|
25
|
+
}
|
22
26
|
}
|
23
|
-
|
24
|
-
|
25
|
-
set: function (value) {
|
26
|
-
if (value === true) this.version++;
|
27
|
-
this.needsCompile = value;
|
28
|
-
},
|
29
|
-
get: function () {
|
30
|
-
return this.needsCompile;
|
31
|
-
}
|
32
|
-
}
|
33
|
-
});
|
34
|
-
|
35
|
-
NodeMaterial.prototype.onBeforeCompile = function (shader, renderer) {
|
36
|
-
this.build({
|
37
|
-
renderer: renderer
|
38
|
-
});
|
39
|
-
shader.defines = this.defines;
|
40
|
-
shader.uniforms = this.uniforms;
|
41
|
-
shader.vertexShader = this.vertexShader;
|
42
|
-
shader.fragmentShader = this.fragmentShader;
|
43
|
-
shader.extensionDerivatives = this.extensions.derivatives === true;
|
44
|
-
shader.extensionFragDepth = this.extensions.fragDepth === true;
|
45
|
-
shader.extensionDrawBuffers = this.extensions.drawBuffers === true;
|
46
|
-
shader.extensionShaderTextureLOD = this.extensions.shaderTextureLOD === true;
|
47
|
-
};
|
48
|
-
|
49
|
-
NodeMaterial.prototype.customProgramCacheKey = function () {
|
50
|
-
var hash = this.getHash();
|
51
|
-
return hash;
|
52
|
-
};
|
53
|
-
|
54
|
-
NodeMaterial.prototype.getHash = function () {
|
55
|
-
var hash = '{';
|
56
|
-
hash += '"vertex":' + this.vertex.getHash() + ',';
|
57
|
-
hash += '"fragment":' + this.fragment.getHash();
|
58
|
-
hash += '}';
|
59
|
-
return hash;
|
60
|
-
};
|
61
|
-
|
62
|
-
NodeMaterial.prototype.updateFrame = function (frame) {
|
63
|
-
for (let i = 0; i < this.updaters.length; ++i) {
|
64
|
-
frame.updateNode(this.updaters[i]);
|
65
|
-
}
|
66
|
-
};
|
67
|
-
|
68
|
-
NodeMaterial.prototype.build = function (params) {
|
69
|
-
params = params || {};
|
70
|
-
var builder = params.builder || new NodeBuilder();
|
71
|
-
builder.setMaterial(this, params.renderer);
|
72
|
-
builder.build(this.vertex, this.fragment);
|
73
|
-
this.vertexShader = builder.getCode('vertex');
|
74
|
-
this.fragmentShader = builder.getCode('fragment');
|
75
|
-
this.defines = builder.defines;
|
76
|
-
this.uniforms = builder.uniforms;
|
77
|
-
this.extensions = builder.extensions;
|
78
|
-
this.updaters = builder.updaters;
|
79
|
-
this.fog = builder.requires.fog;
|
80
|
-
this.lights = builder.requires.lights;
|
81
|
-
this.transparent = builder.requires.transparent || this.blending > NormalBlending;
|
82
|
-
return this;
|
83
|
-
};
|
84
|
-
|
85
|
-
NodeMaterial.prototype.copy = function (source) {
|
86
|
-
var uuid = this.uuid;
|
87
|
-
|
88
|
-
for (let name in source) {
|
89
|
-
this[name] = source[name];
|
27
|
+
|
28
|
+
Object.assign(this.defines, values.defines);
|
90
29
|
}
|
91
30
|
|
92
|
-
|
31
|
+
toJSON(meta) {
|
32
|
+
const isRoot = meta === undefined || typeof meta === 'string';
|
93
33
|
|
94
|
-
|
95
|
-
|
96
|
-
|
34
|
+
if (isRoot) {
|
35
|
+
meta = {
|
36
|
+
textures: {},
|
37
|
+
images: {},
|
38
|
+
nodes: {}
|
39
|
+
};
|
40
|
+
}
|
97
41
|
|
98
|
-
|
99
|
-
|
42
|
+
const data = Material.prototype.toJSON.call(this, meta);
|
43
|
+
const nodeKeys = getNodesKeys(this);
|
44
|
+
data.inputNodes = {};
|
100
45
|
|
101
|
-
|
102
|
-
|
46
|
+
for (const name of nodeKeys) {
|
47
|
+
data.inputNodes[name] = this[name].toJSON(meta).uuid;
|
48
|
+
} // TODO: Copied from Object3D.toJSON
|
103
49
|
|
104
|
-
if (isRootObject) {
|
105
|
-
meta = {
|
106
|
-
nodes: {}
|
107
|
-
};
|
108
|
-
}
|
109
50
|
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
if (
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
if (this.wireframe === true) data.wireframe = this.wireframe;
|
133
|
-
if (this.wireframeLinewidth > 1) data.wireframeLinewidth = this.wireframeLinewidth;
|
134
|
-
if (this.wireframeLinecap !== 'round') data.wireframeLinecap = this.wireframeLinecap;
|
135
|
-
if (this.wireframeLinejoin !== 'round') data.wireframeLinejoin = this.wireframeLinejoin;
|
136
|
-
if (this.alphaTest > 0) data.alphaTest = this.alphaTest;
|
137
|
-
if (this.premultipliedAlpha === true) data.premultipliedAlpha = this.premultipliedAlpha;
|
138
|
-
if (this.morphTargets === true) data.morphTargets = true;
|
139
|
-
if (this.skinning === true) data.skinning = true;
|
140
|
-
if (this.visible === false) data.visible = false;
|
141
|
-
if (JSON.stringify(this.userData) !== '{}') data.userData = this.userData;
|
142
|
-
data.fog = this.fog;
|
143
|
-
data.lights = this.lights;
|
144
|
-
data.vertex = this.vertex.toJSON(meta).uuid;
|
145
|
-
data.fragment = this.fragment.toJSON(meta).uuid;
|
51
|
+
function extractFromCache(cache) {
|
52
|
+
const values = [];
|
53
|
+
|
54
|
+
for (const key in cache) {
|
55
|
+
const data = cache[key];
|
56
|
+
delete data.metadata;
|
57
|
+
values.push(data);
|
58
|
+
}
|
59
|
+
|
60
|
+
return values;
|
61
|
+
}
|
62
|
+
|
63
|
+
if (isRoot) {
|
64
|
+
const textures = extractFromCache(meta.textures);
|
65
|
+
const images = extractFromCache(meta.images);
|
66
|
+
const nodes = extractFromCache(meta.nodes);
|
67
|
+
if (textures.length > 0) data.textures = textures;
|
68
|
+
if (images.length > 0) data.images = images;
|
69
|
+
if (nodes.length > 0) data.nodes = nodes;
|
70
|
+
}
|
71
|
+
|
72
|
+
return data;
|
146
73
|
}
|
147
74
|
|
148
|
-
|
149
|
-
|
150
|
-
|
75
|
+
}
|
76
|
+
|
77
|
+
NodeMaterial.prototype.isNodeMaterial = true;
|
151
78
|
|
152
|
-
export
|
79
|
+
export default NodeMaterial;
|
@@ -0,0 +1 @@
|
|
1
|
+
"use strict";var e=require("./NodeMaterial.cjs.js"),t=require("three");require("../core/NodeUtils.cjs.js");const o=new t.PointsMaterial;class s extends e{constructor(e){super(),this.transparent=!0,this.colorNode=null,this.opacityNode=null,this.alphaTestNode=null,this.lightNode=null,this.sizeNode=null,this.positionNode=null,this.setDefaultValues(o),this.setValues(e)}copy(e){return this.colorNode=e.colorNode,this.opacityNode=e.opacityNode,this.alphaTestNode=e.alphaTestNode,this.lightNode=e.lightNode,this.sizeNode=e.sizeNode,this.positionNode=e.positionNode,super.copy(e)}}s.prototype.isPointsNodeMaterial=!0,module.exports=s;
|
@@ -0,0 +1,34 @@
|
|
1
|
+
import NodeMaterial from './NodeMaterial.js';
|
2
|
+
import { PointsMaterial } from 'three';
|
3
|
+
|
4
|
+
const defaultValues = new PointsMaterial();
|
5
|
+
|
6
|
+
class PointsNodeMaterial extends NodeMaterial {
|
7
|
+
constructor(parameters) {
|
8
|
+
super();
|
9
|
+
this.transparent = true;
|
10
|
+
this.colorNode = null;
|
11
|
+
this.opacityNode = null;
|
12
|
+
this.alphaTestNode = null;
|
13
|
+
this.lightNode = null;
|
14
|
+
this.sizeNode = null;
|
15
|
+
this.positionNode = null;
|
16
|
+
this.setDefaultValues(defaultValues);
|
17
|
+
this.setValues(parameters);
|
18
|
+
}
|
19
|
+
|
20
|
+
copy(source) {
|
21
|
+
this.colorNode = source.colorNode;
|
22
|
+
this.opacityNode = source.opacityNode;
|
23
|
+
this.alphaTestNode = source.alphaTestNode;
|
24
|
+
this.lightNode = source.lightNode;
|
25
|
+
this.sizeNode = source.sizeNode;
|
26
|
+
this.positionNode = source.positionNode;
|
27
|
+
return super.copy(source);
|
28
|
+
}
|
29
|
+
|
30
|
+
}
|
31
|
+
|
32
|
+
PointsNodeMaterial.prototype.isPointsNodeMaterial = true;
|
33
|
+
|
34
|
+
export default PointsNodeMaterial;
|
@@ -1 +1 @@
|
|
1
|
-
"use strict";
|
1
|
+
"use strict";var e=require("../core/Node.cjs.js"),t=require("../core/PropertyNode.cjs.js"),s=require("../core/ContextNode.cjs.js");require("../core/constants.cjs.js"),require("../core/NodeUtils.cjs.js"),require("three");module.exports=class extends e{constructor(e,t,s){super(),this.node=e,this.ifNode=t,this.elseNode=s}getNodeType(e){const t=this.ifNode.getNodeType(e),s=this.elseNode.getNodeType(e);return e.getTypeLength(s)>e.getTypeLength(t)?s:t}generate(e){const o=this.getNodeType(e),r={temp:!1},n=new t(null,o).build(e),d=new s(this.node).build(e,"bool"),i=new s(this.ifNode,r).build(e,o),c=new s(this.elseNode,r).build(e,o);return e.addFlowCode(`if ( ${d} ) {\n\n\t\t${n} = ${i};\n\n\t} else {\n\n\t\t${n} = ${c};\n\n\t}`),n}};
|
package/nodes/math/CondNode.js
CHANGED
@@ -1,30 +1,18 @@
|
|
1
|
-
import
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
CondNode.EQUAL = '==';
|
13
|
-
CondNode.NOT_EQUAL = '!=';
|
14
|
-
CondNode.GREATER = '>';
|
15
|
-
CondNode.GREATER_EQUAL = '>=';
|
16
|
-
CondNode.LESS = '<';
|
17
|
-
CondNode.LESS_EQUAL = '<=';
|
18
|
-
CondNode.AND = '&&';
|
19
|
-
CondNode.OR = '||';
|
20
|
-
CondNode.prototype = Object.create(TempNode.prototype);
|
21
|
-
CondNode.prototype.constructor = CondNode;
|
22
|
-
CondNode.prototype.nodeType = 'Cond';
|
1
|
+
import Node from '../core/Node.js';
|
2
|
+
import PropertyNode from '../core/PropertyNode.js';
|
3
|
+
import ContextNode from '../core/ContextNode.js';
|
4
|
+
|
5
|
+
class CondNode extends Node {
|
6
|
+
constructor(node, ifNode, elseNode) {
|
7
|
+
super();
|
8
|
+
this.node = node;
|
9
|
+
this.ifNode = ifNode;
|
10
|
+
this.elseNode = elseNode;
|
11
|
+
}
|
23
12
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
var elseType = this.elseNode.getType(builder);
|
13
|
+
getNodeType(builder) {
|
14
|
+
const ifType = this.ifNode.getNodeType(builder);
|
15
|
+
const elseType = this.elseNode.getNodeType(builder);
|
28
16
|
|
29
17
|
if (builder.getTypeLength(elseType) > builder.getTypeLength(ifType)) {
|
30
18
|
return elseType;
|
@@ -33,58 +21,29 @@ CondNode.prototype.getType = function (builder) {
|
|
33
21
|
return ifType;
|
34
22
|
}
|
35
23
|
|
36
|
-
|
37
|
-
|
24
|
+
generate(builder) {
|
25
|
+
const type = this.getNodeType(builder);
|
26
|
+
const context = {
|
27
|
+
temp: false
|
28
|
+
};
|
29
|
+
const nodeProperty = new PropertyNode(null, type).build(builder);
|
30
|
+
const nodeSnippet = new ContextNode(this.node
|
31
|
+
/*, context*/
|
32
|
+
).build(builder, 'bool'),
|
33
|
+
ifSnippet = new ContextNode(this.ifNode, context).build(builder, type),
|
34
|
+
elseSnippet = new ContextNode(this.elseNode, context).build(builder, type);
|
35
|
+
builder.addFlowCode(`if ( ${nodeSnippet} ) {
|
38
36
|
|
39
|
-
|
40
|
-
if (builder.getTypeLength(this.b.getType(builder)) > builder.getTypeLength(this.a.getType(builder))) {
|
41
|
-
return this.b.getType(builder);
|
42
|
-
}
|
37
|
+
\t\t${nodeProperty} = ${ifSnippet};
|
43
38
|
|
44
|
-
|
45
|
-
};
|
39
|
+
\t} else {
|
46
40
|
|
47
|
-
|
48
|
-
var type = this.getType(builder),
|
49
|
-
condType = this.getCondType(builder),
|
50
|
-
a = this.a.build(builder, condType),
|
51
|
-
b = this.b.build(builder, condType),
|
52
|
-
code;
|
41
|
+
\t\t${nodeProperty} = ${elseSnippet};
|
53
42
|
|
54
|
-
|
55
|
-
|
56
|
-
elseCode = this.elseNode.build(builder, type);
|
57
|
-
code = '( ' + [a, this.op, b, '?', ifCode, ':', elseCode].join(' ') + ' )';
|
58
|
-
} else {
|
59
|
-
code = '( ' + a + ' ' + this.op + ' ' + b + ' )';
|
43
|
+
\t}`);
|
44
|
+
return nodeProperty;
|
60
45
|
}
|
61
46
|
|
62
|
-
|
63
|
-
};
|
64
|
-
|
65
|
-
CondNode.prototype.copy = function (source) {
|
66
|
-
TempNode.prototype.copy.call(this, source);
|
67
|
-
this.a = source.a;
|
68
|
-
this.b = source.b;
|
69
|
-
this.op = source.op;
|
70
|
-
this.ifNode = source.ifNode;
|
71
|
-
this.elseNode = source.elseNode;
|
72
|
-
return this;
|
73
|
-
};
|
74
|
-
|
75
|
-
CondNode.prototype.toJSON = function (meta) {
|
76
|
-
var data = this.getJSONNode(meta);
|
77
|
-
|
78
|
-
if (!data) {
|
79
|
-
data = this.createJSONNode(meta);
|
80
|
-
data.a = this.a.toJSON(meta).uuid;
|
81
|
-
data.b = this.b.toJSON(meta).uuid;
|
82
|
-
data.op = this.op;
|
83
|
-
if (data.ifNode) data.ifNode = this.ifNode.toJSON(meta).uuid;
|
84
|
-
if (data.elseNode) data.elseNode = this.elseNode.toJSON(meta).uuid;
|
85
|
-
}
|
86
|
-
|
87
|
-
return data;
|
88
|
-
};
|
47
|
+
}
|
89
48
|
|
90
|
-
export
|
49
|
+
export default CondNode;
|
@@ -1 +1 @@
|
|
1
|
-
"use strict";
|
1
|
+
"use strict";var e=require("@babel/runtime/helpers/defineProperty"),t=require("../core/TempNode.cjs.js"),d=require("../core/ExpressionNode.cjs.js"),u=require("../utils/JoinNode.cjs.js"),r=require("../utils/SplitNode.cjs.js"),l=require("./OperatorNode.cjs.js");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("../core/Node.cjs.js"),require("../core/constants.cjs.js"),require("../core/NodeUtils.cjs.js"),require("three"),require("../core/NodeBuilder.cjs.js"),require("../core/NodeUniform.cjs.js"),require("../core/NodeAttribute.cjs.js"),require("../core/NodeVary.cjs.js"),require("../core/NodeVar.cjs.js"),require("../core/NodeCode.cjs.js"),require("../core/NodeKeywords.cjs.js");var i=s(e);class o extends t{constructor(e,t,d=null,u=null){super(),this.method=e,this.aNode=t,this.bNode=d,this.cNode=u}getInputType(e){const t=this.aNode.getNodeType(e),d=this.bNode?this.bNode.getNodeType(e):null,u=this.cNode?this.cNode.getNodeType(e):null,r=e.getTypeLength(t),l=e.getTypeLength(d),s=e.getTypeLength(u);return r>l&&r>s?t:l>s?d:s>r?u:t}getNodeType(e){const t=this.method;return t===o.LENGTH||t===o.DISTANCE||t===o.DOT?"float":t===o.CROSS?"vec3":this.getInputType(e)}generate(e,t){const s=this.method,i=this.getNodeType(e),a=this.getInputType(e),n=this.aNode,f=this.bNode,c=this.cNode,N=!0===e.renderer.isWebGLRenderer;if(!N||s!==o.DFDX&&s!==o.DFDY||"vec3"!==t){if(s===o.TRANSFORM_DIRECTION){let t=n,u=f;e.isMatrix(t.getNodeType(e))?u=new d(`${e.getType("vec4")}( ${u.build(e,"vec3")}, 0.0 )`,"vec4"):t=new d(`${e.getType("vec4")}( ${t.build(e,"vec3")}, 0.0 )`,"vec4");const s=new r(new l("*",t,u),"xyz");return new o(o.NORMALIZE,s).build(e)}if(s===o.SATURATE)return e.format(`clamp( ${n.build(e,a)}, 0.0, 1.0 )`,i,t);if(s===o.NEGATE)return e.format("( -"+n.build(e,a)+" )",i,t);if(s===o.INVERT)return e.format("( 1.0 - "+n.build(e,a)+" )",i,t);{const d=[];return s===o.CROSS?d.push(n.build(e,i),f.build(e,i)):s===o.STEP?d.push(n.build(e,1===e.getTypeLength(n.getNodeType(e))?"float":a),f.build(e,a)):N&&(s===o.MIN||s===o.MAX)||s===o.MOD?d.push(n.build(e,a),f.build(e,1===e.getTypeLength(f.getNodeType(e))?"float":a)):s===o.REFRACT?d.push(n.build(e,a),f.build(e,a),c.build(e,"float")):s===o.MIX?d.push(n.build(e,a),f.build(e,a),c.build(e,1===e.getTypeLength(c.getNodeType(e))?"float":a)):(d.push(n.build(e,a)),null!==c?d.push(f.build(e,a),c.build(e,a)):null!==f&&d.push(f.build(e,a))),e.format(`${e.getMethod(s)}( ${d.join(", ")} )`,i,t)}}return new u([new o(s,new r(n,"x")),new o(s,new r(n,"y")),new o(s,new r(n,"z"))]).build(e)}serialize(e){super.serialize(e),e.method=this.method}deserialize(e){super.deserialize(e),this.method=e.method}}i.default(o,"RAD","radians"),i.default(o,"DEG","degrees"),i.default(o,"EXP","exp"),i.default(o,"EXP2","exp2"),i.default(o,"LOG","log"),i.default(o,"LOG2","log2"),i.default(o,"SQRT","sqrt"),i.default(o,"INV_SQRT","inversesqrt"),i.default(o,"FLOOR","floor"),i.default(o,"CEIL","ceil"),i.default(o,"NORMALIZE","normalize"),i.default(o,"FRACT","fract"),i.default(o,"SIN","sin"),i.default(o,"COS","cos"),i.default(o,"TAN","tan"),i.default(o,"ASIN","asin"),i.default(o,"ACOS","acos"),i.default(o,"ATAN","atan"),i.default(o,"ABS","abs"),i.default(o,"SIGN","sign"),i.default(o,"LENGTH","length"),i.default(o,"NEGATE","negate"),i.default(o,"INVERT","invert"),i.default(o,"DFDX","dFdx"),i.default(o,"DFDY","dFdy"),i.default(o,"SATURATE","saturate"),i.default(o,"ROUND","round"),i.default(o,"MIN","min"),i.default(o,"MAX","max"),i.default(o,"MOD","mod"),i.default(o,"STEP","step"),i.default(o,"REFLECT","reflect"),i.default(o,"DISTANCE","distance"),i.default(o,"DOT","dot"),i.default(o,"CROSS","cross"),i.default(o,"POW","pow"),i.default(o,"TRANSFORM_DIRECTION","transformDirection"),i.default(o,"MIX","mix"),i.default(o,"CLAMP","clamp"),i.default(o,"REFRACT","refract"),i.default(o,"SMOOTHSTEP","smoothstep"),i.default(o,"FACEFORWARD","faceforward"),module.exports=o;
|