three-stdlib 2.8.7 → 2.8.10
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
@@ -0,0 +1 @@
|
|
1
|
+
"use strict";module.exports=class{constructor(e,t,s=""){this.name=e,this.type=t,this.code=s,Object.defineProperty(this,"isNodeCode",{value:!0})}};
|
@@ -1 +1 @@
|
|
1
|
-
"use strict";
|
1
|
+
"use strict";var e=require("./constants.cjs.js");module.exports=class{constructor(){this.time=0,this.deltaTime=0,this.frameId=0,this.startTime=null,this.updateMap=new WeakMap,this.renderer=null,this.material=null,this.camera=null,this.object=null}updateNode(t){t.updateType===e.NodeUpdateType.Frame?this.updateMap.get(t)!==this.frameId&&(this.updateMap.set(t,this.frameId),t.update(this)):t.updateType===e.NodeUpdateType.Object&&t.update(this)}update(){this.frameId++,void 0===this.lastTime&&(this.lastTime=performance.now()),this.deltaTime=(performance.now()-this.lastTime)/1e3,this.lastTime=performance.now(),this.time+=this.deltaTime}};
|
package/nodes/core/NodeFrame.js
CHANGED
@@ -1,30 +1,37 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
1
|
+
import { NodeUpdateType } from './constants.js';
|
2
|
+
|
3
|
+
class NodeFrame {
|
4
|
+
constructor() {
|
5
|
+
this.time = 0;
|
6
|
+
this.deltaTime = 0;
|
7
|
+
this.frameId = 0;
|
8
|
+
this.startTime = null;
|
9
|
+
this.updateMap = new WeakMap();
|
10
|
+
this.renderer = null;
|
11
|
+
this.material = null;
|
12
|
+
this.camera = null;
|
13
|
+
this.object = null;
|
14
|
+
}
|
5
15
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
this.renderer = renderer;
|
16
|
-
return this;
|
17
|
-
},
|
18
|
-
setRenderTexture: function (renderTexture) {
|
19
|
-
this.renderTexture = renderTexture;
|
20
|
-
return this;
|
21
|
-
},
|
22
|
-
updateNode: function (node) {
|
23
|
-
if (node.frameId === this.id) return this;
|
24
|
-
node.updateFrame(this);
|
25
|
-
node.frameId = this.id;
|
26
|
-
return this;
|
16
|
+
updateNode(node) {
|
17
|
+
if (node.updateType === NodeUpdateType.Frame) {
|
18
|
+
if (this.updateMap.get(node) !== this.frameId) {
|
19
|
+
this.updateMap.set(node, this.frameId);
|
20
|
+
node.update(this);
|
21
|
+
}
|
22
|
+
} else if (node.updateType === NodeUpdateType.Object) {
|
23
|
+
node.update(this);
|
24
|
+
}
|
27
25
|
}
|
28
|
-
};
|
29
26
|
|
30
|
-
|
27
|
+
update() {
|
28
|
+
this.frameId++;
|
29
|
+
if (this.lastTime === undefined) this.lastTime = performance.now();
|
30
|
+
this.deltaTime = (performance.now() - this.lastTime) / 1000;
|
31
|
+
this.lastTime = performance.now();
|
32
|
+
this.time += this.deltaTime;
|
33
|
+
}
|
34
|
+
|
35
|
+
}
|
36
|
+
|
37
|
+
export default NodeFrame;
|
@@ -0,0 +1 @@
|
|
1
|
+
"use strict";class t{constructor(t,s,i="",o=""){this.type=t,this.inputs=s,this.name=i,this.presicion=o}getCode(){console.warn("Abstract function.")}}t.isNodeFunction=!0,module.exports=t;
|
@@ -0,0 +1,17 @@
|
|
1
|
+
class NodeFunction {
|
2
|
+
constructor(type, inputs, name = '', presicion = '') {
|
3
|
+
this.type = type;
|
4
|
+
this.inputs = inputs;
|
5
|
+
this.name = name;
|
6
|
+
this.presicion = presicion;
|
7
|
+
}
|
8
|
+
|
9
|
+
getCode() {
|
10
|
+
console.warn('Abstract function.');
|
11
|
+
}
|
12
|
+
|
13
|
+
}
|
14
|
+
|
15
|
+
NodeFunction.isNodeFunction = true;
|
16
|
+
|
17
|
+
export default NodeFunction;
|
@@ -0,0 +1 @@
|
|
1
|
+
"use strict";class t{constructor(t,s,i=null,n="",o=!1){this.type=t,this.name=s,this.count=i,this.qualifier=n,this.isConst=o}}t.isNodeFunctionInput=!0,module.exports=t;
|
@@ -0,0 +1,14 @@
|
|
1
|
+
class NodeFunctionInput {
|
2
|
+
constructor(type, name, count = null, qualifier = '', isConst = false) {
|
3
|
+
this.type = type;
|
4
|
+
this.name = name;
|
5
|
+
this.count = count;
|
6
|
+
this.qualifier = qualifier;
|
7
|
+
this.isConst = isConst;
|
8
|
+
}
|
9
|
+
|
10
|
+
}
|
11
|
+
|
12
|
+
NodeFunctionInput.isNodeFunctionInput = true;
|
13
|
+
|
14
|
+
export default NodeFunctionInput;
|
@@ -0,0 +1 @@
|
|
1
|
+
"use strict";module.exports=class{constructor(){this.keywords=[],this.nodes=[],this.keywordsCallback={}}getNode(s){let o=this.nodes[s];return void 0===o&&void 0!==this.keywordsCallback[s]&&(o=this.keywordsCallback[s](s),this.nodes[s]=o),o}addKeyword(s,o){return this.keywords.push(s),this.keywordsCallback[s]=o,this}parse(s){const o=this.keywords,t=new RegExp(`\\b${o.join("\\b|\\b")}\\b`,"g"),e=s.match(t),d=[];if(null!==e)for(const s of e){const o=this.getNode(s);void 0!==o&&-1===d.indexOf(o)&&d.push(o)}return d}include(s,o){const t=this.parse(o);for(const o of t)o.build(s)}};
|
@@ -0,0 +1,54 @@
|
|
1
|
+
class NodeKeywords {
|
2
|
+
constructor() {
|
3
|
+
this.keywords = [];
|
4
|
+
this.nodes = [];
|
5
|
+
this.keywordsCallback = {};
|
6
|
+
}
|
7
|
+
|
8
|
+
getNode(name) {
|
9
|
+
let node = this.nodes[name];
|
10
|
+
|
11
|
+
if (node === undefined && this.keywordsCallback[name] !== undefined) {
|
12
|
+
node = this.keywordsCallback[name](name);
|
13
|
+
this.nodes[name] = node;
|
14
|
+
}
|
15
|
+
|
16
|
+
return node;
|
17
|
+
}
|
18
|
+
|
19
|
+
addKeyword(name, callback) {
|
20
|
+
this.keywords.push(name);
|
21
|
+
this.keywordsCallback[name] = callback;
|
22
|
+
return this;
|
23
|
+
}
|
24
|
+
|
25
|
+
parse(code) {
|
26
|
+
const keywordNames = this.keywords;
|
27
|
+
const regExp = new RegExp(`\\b${keywordNames.join('\\b|\\b')}\\b`, 'g');
|
28
|
+
const codeKeywords = code.match(regExp);
|
29
|
+
const keywordNodes = [];
|
30
|
+
|
31
|
+
if (codeKeywords !== null) {
|
32
|
+
for (const keyword of codeKeywords) {
|
33
|
+
const node = this.getNode(keyword);
|
34
|
+
|
35
|
+
if (node !== undefined && keywordNodes.indexOf(node) === -1) {
|
36
|
+
keywordNodes.push(node);
|
37
|
+
}
|
38
|
+
}
|
39
|
+
}
|
40
|
+
|
41
|
+
return keywordNodes;
|
42
|
+
}
|
43
|
+
|
44
|
+
include(builder, code) {
|
45
|
+
const keywordNodes = this.parse(code);
|
46
|
+
|
47
|
+
for (const keywordNode of keywordNodes) {
|
48
|
+
keywordNode.build(builder);
|
49
|
+
}
|
50
|
+
}
|
51
|
+
|
52
|
+
}
|
53
|
+
|
54
|
+
export default NodeKeywords;
|
@@ -0,0 +1 @@
|
|
1
|
+
"use strict";module.exports=class{parseFunction(){console.warn("Abstract function.")}};
|
@@ -1 +1 @@
|
|
1
|
-
"use strict";
|
1
|
+
"use strict";class e{constructor(e,t,s,o){this.name=e,this.type=t,this.node=s,this.needsUpdate=o}get value(){return this.node.value}set value(e){this.node.value=e}}e.prototype.isNodeUniform=!0,module.exports=e;
|
@@ -1,20 +1,21 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
}
|
1
|
+
class NodeUniform {
|
2
|
+
constructor(name, type, node, needsUpdate = undefined) {
|
3
|
+
this.name = name;
|
4
|
+
this.type = type;
|
5
|
+
this.node = node;
|
6
|
+
this.needsUpdate = needsUpdate;
|
7
|
+
}
|
8
|
+
|
9
|
+
get value() {
|
10
|
+
return this.node.value;
|
11
|
+
}
|
8
12
|
|
9
|
-
|
10
|
-
|
11
|
-
get: function () {
|
12
|
-
return this.node.value;
|
13
|
-
},
|
14
|
-
set: function (val) {
|
15
|
-
this.node.value = val;
|
16
|
-
}
|
13
|
+
set value(val) {
|
14
|
+
this.node.value = val;
|
17
15
|
}
|
18
|
-
});
|
19
16
|
|
20
|
-
|
17
|
+
}
|
18
|
+
|
19
|
+
NodeUniform.prototype.isNodeUniform = true;
|
20
|
+
|
21
|
+
export default NodeUniform;
|
@@ -1 +1 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three");exports.getNodesKeys=e=>{const o=[];for(const t in e){const l=e[t];l&&!0===l.isNode&&o.push(t)}return o},exports.getValueFromType=(o,...t)=>{const l=null==o?void 0:o.slice(-4);return"color"===o?new e.Color(...t):"vec2"===l?new e.Vector2(...t):"vec3"===l?new e.Vector3(...t):"vec4"===l?new e.Vector4(...t):"mat3"===l?new e.Matrix3(...t):"mat4"===l?new e.Matrix4(...t):"bool"!==o&&("float"===o||"int"===o||"uint"===o?0:null)},exports.getValueType=e=>"number"==typeof e?"float":"boolean"==typeof e?"bool":!0===(null==e?void 0:e.isVector2)?"vec2":!0===(null==e?void 0:e.isVector3)?"vec3":!0===(null==e?void 0:e.isVector4)?"vec4":!0===(null==e?void 0:e.isMatrix3)?"mat3":!0===(null==e?void 0:e.isMatrix4)?"mat4":!0===(null==e?void 0:e.isColor)?"color":null;
|
package/nodes/core/NodeUtils.js
CHANGED
@@ -1,41 +1,61 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
this[proxy][property][subProperty] = val;
|
12
|
-
}
|
13
|
-
};
|
14
|
-
} else {
|
15
|
-
return {
|
16
|
-
get: function () {
|
17
|
-
return this[proxy][property];
|
18
|
-
},
|
19
|
-
set: function (val) {
|
20
|
-
this[proxy][property] = val;
|
21
|
-
}
|
22
|
-
};
|
23
|
-
}
|
1
|
+
import { Color, Vector2, Vector3, Vector4, Matrix3, Matrix4 } from 'three';
|
2
|
+
|
3
|
+
const getNodesKeys = object => {
|
4
|
+
const props = [];
|
5
|
+
|
6
|
+
for (const name in object) {
|
7
|
+
const value = object[name];
|
8
|
+
|
9
|
+
if (value && value.isNode === true) {
|
10
|
+
props.push(name);
|
24
11
|
}
|
12
|
+
}
|
25
13
|
|
26
|
-
|
27
|
-
|
14
|
+
return props;
|
15
|
+
};
|
16
|
+
const getValueType = value => {
|
17
|
+
if (typeof value === 'number') {
|
18
|
+
return 'float';
|
19
|
+
} else if (typeof value === 'boolean') {
|
20
|
+
return 'bool';
|
21
|
+
} else if ((value === null || value === void 0 ? void 0 : value.isVector2) === true) {
|
22
|
+
return 'vec2';
|
23
|
+
} else if ((value === null || value === void 0 ? void 0 : value.isVector3) === true) {
|
24
|
+
return 'vec3';
|
25
|
+
} else if ((value === null || value === void 0 ? void 0 : value.isVector4) === true) {
|
26
|
+
return 'vec4';
|
27
|
+
} else if ((value === null || value === void 0 ? void 0 : value.isMatrix3) === true) {
|
28
|
+
return 'mat3';
|
29
|
+
} else if ((value === null || value === void 0 ? void 0 : value.isMatrix4) === true) {
|
30
|
+
return 'mat4';
|
31
|
+
} else if ((value === null || value === void 0 ? void 0 : value.isColor) === true) {
|
32
|
+
return 'color';
|
33
|
+
}
|
34
|
+
|
35
|
+
return null;
|
36
|
+
};
|
37
|
+
const getValueFromType = (type, ...params) => {
|
38
|
+
const last4 = type === null || type === void 0 ? void 0 : type.slice(-4);
|
28
39
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
40
|
+
if (type === 'color') {
|
41
|
+
return new Color(...params);
|
42
|
+
} else if (last4 === 'vec2') {
|
43
|
+
return new Vector2(...params);
|
44
|
+
} else if (last4 === 'vec3') {
|
45
|
+
return new Vector3(...params);
|
46
|
+
} else if (last4 === 'vec4') {
|
47
|
+
return new Vector4(...params);
|
48
|
+
} else if (last4 === 'mat3') {
|
49
|
+
return new Matrix3(...params);
|
50
|
+
} else if (last4 === 'mat4') {
|
51
|
+
return new Matrix4(...params);
|
52
|
+
} else if (type === 'bool') {
|
53
|
+
return false;
|
54
|
+
} else if (type === 'float' || type === 'int' || type === 'uint') {
|
55
|
+
return 0;
|
56
|
+
}
|
35
57
|
|
36
|
-
|
37
|
-
};
|
38
|
-
}()
|
58
|
+
return null;
|
39
59
|
};
|
40
60
|
|
41
|
-
export {
|
61
|
+
export { getNodesKeys, getValueFromType, getValueType };
|
@@ -0,0 +1 @@
|
|
1
|
+
"use strict";class t{constructor(t,s){this.name=t,this.type=s}}t.prototype.isNodeVar=!0,module.exports=t;
|
@@ -0,0 +1 @@
|
|
1
|
+
"use strict";class t{constructor(t,s){this.name=t,this.type=s}}t.prototype.isNodeVary=!0,module.exports=t;
|
@@ -0,0 +1 @@
|
|
1
|
+
"use strict";var e=require("./Node.cjs.js");require("./constants.cjs.js"),require("./NodeUtils.cjs.js"),require("three");module.exports=class extends e{constructor(e=null,s="vec4"){super(s),this.name=e}getHash(e){return this.name||super.getHash(e)}generate(e){const s=e.getVarFromNode(this,this.getNodeType(e)),r=this.name;return null!==r&&(s.name=r),e.getPropertyName(s)}};
|
@@ -0,0 +1,26 @@
|
|
1
|
+
import Node from './Node.js';
|
2
|
+
|
3
|
+
class PropertyNode extends Node {
|
4
|
+
constructor(name = null, nodeType = 'vec4') {
|
5
|
+
super(nodeType);
|
6
|
+
this.name = name;
|
7
|
+
}
|
8
|
+
|
9
|
+
getHash(builder) {
|
10
|
+
return this.name || super.getHash(builder);
|
11
|
+
}
|
12
|
+
|
13
|
+
generate(builder) {
|
14
|
+
const nodeVary = builder.getVarFromNode(this, this.getNodeType(builder));
|
15
|
+
const name = this.name;
|
16
|
+
|
17
|
+
if (name !== null) {
|
18
|
+
nodeVary.name = name;
|
19
|
+
}
|
20
|
+
|
21
|
+
return builder.getPropertyName(nodeVary);
|
22
|
+
}
|
23
|
+
|
24
|
+
}
|
25
|
+
|
26
|
+
export default PropertyNode;
|
@@ -1 +1 @@
|
|
1
|
-
"use strict";
|
1
|
+
"use strict";var e=require("./Node.cjs.js");require("./constants.cjs.js"),require("./NodeUtils.cjs.js"),require("three");module.exports=class extends e{constructor(e){super(e)}build(e,t){const r=e.getVectorType(this.getNodeType(e,t)),s=e.getDataFromNode(this);if(!1!==e.context.temp&&"void "!==r&&"void"!==t&&s.dependenciesCount>1){if(void 0===s.snippet){const t=super.build(e,r),o=e.getVarFromNode(this,r),i=e.getPropertyName(o);e.addFlowCode(`${i} = ${t}`),s.snippet=t,s.propertyName=i}return e.format(s.propertyName,r,t)}return super.build(e,t)}};
|
package/nodes/core/TempNode.js
CHANGED
@@ -1,97 +1,30 @@
|
|
1
|
-
import
|
2
|
-
import { Node } from './Node.js';
|
1
|
+
import Node from './Node.js';
|
3
2
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
this.unique = params.unique !== undefined ? params.unique : false;
|
9
|
-
}
|
10
|
-
|
11
|
-
TempNode.prototype = Object.create(Node.prototype);
|
12
|
-
TempNode.prototype.constructor = TempNode;
|
13
|
-
|
14
|
-
TempNode.prototype.build = function (builder, output, uuid, ns) {
|
15
|
-
output = output || this.getType(builder);
|
16
|
-
|
17
|
-
if (this.getShared(builder, output)) {
|
18
|
-
var isUnique = this.getUnique(builder, output);
|
19
|
-
|
20
|
-
if (isUnique && this.constructor.uuid === undefined) {
|
21
|
-
this.constructor.uuid = MathUtils.generateUUID();
|
22
|
-
}
|
23
|
-
|
24
|
-
uuid = builder.getUuid(uuid || this.getUuid(), !isUnique);
|
25
|
-
var data = builder.getNodeData(uuid),
|
26
|
-
type = data.output || this.getType(builder);
|
3
|
+
class TempNode extends Node {
|
4
|
+
constructor(type) {
|
5
|
+
super(type);
|
6
|
+
}
|
27
7
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
8
|
+
build(builder, output) {
|
9
|
+
const type = builder.getVectorType(this.getNodeType(builder, output));
|
10
|
+
const nodeData = builder.getDataFromNode(this);
|
11
|
+
|
12
|
+
if (builder.context.temp !== false && type !== 'void ' && output !== 'void' && nodeData.dependenciesCount > 1) {
|
13
|
+
if (nodeData.snippet === undefined) {
|
14
|
+
const snippet = super.build(builder, type);
|
15
|
+
const nodeVar = builder.getVarFromNode(this, type);
|
16
|
+
const propertyName = builder.getPropertyName(nodeVar);
|
17
|
+
builder.addFlowCode(`${propertyName} = ${snippet}`);
|
18
|
+
nodeData.snippet = snippet;
|
19
|
+
nodeData.propertyName = propertyName;
|
32
20
|
}
|
33
21
|
|
34
|
-
return
|
35
|
-
} else if (isUnique) {
|
36
|
-
data.name = data.name || Node.prototype.build.call(this, builder, output, uuid);
|
37
|
-
return data.name;
|
38
|
-
} else if (!this.getLabel() && (!this.getShared(builder, type) || builder.context.ignoreCache || data.deps === 1)) {
|
39
|
-
return Node.prototype.build.call(this, builder, output, uuid);
|
22
|
+
return builder.format(nodeData.propertyName, type, output);
|
40
23
|
}
|
41
24
|
|
42
|
-
|
43
|
-
var name = this.getTemp(builder, uuid);
|
44
|
-
|
45
|
-
if (name) {
|
46
|
-
return builder.format(name, type, output);
|
47
|
-
} else {
|
48
|
-
name = TempNode.prototype.generate.call(this, builder, output, uuid, data.output, ns);
|
49
|
-
var code = this.generate(builder, type, uuid);
|
50
|
-
builder.addNodeCode(name + ' = ' + code + ';');
|
51
|
-
return builder.format(name, type, output);
|
52
|
-
}
|
25
|
+
return super.build(builder, output);
|
53
26
|
}
|
54
27
|
|
55
|
-
|
56
|
-
};
|
57
|
-
|
58
|
-
TempNode.prototype.getShared = function (builder, output) {
|
59
|
-
return output !== 'sampler2D' && output !== 'samplerCube' && this.shared;
|
60
|
-
};
|
61
|
-
|
62
|
-
TempNode.prototype.getUnique = function
|
63
|
-
/* builder, output */
|
64
|
-
() {
|
65
|
-
return this.unique;
|
66
|
-
};
|
67
|
-
|
68
|
-
TempNode.prototype.setLabel = function (name) {
|
69
|
-
this.label = name;
|
70
|
-
return this;
|
71
|
-
};
|
72
|
-
|
73
|
-
TempNode.prototype.getLabel = function
|
74
|
-
/* builder */
|
75
|
-
() {
|
76
|
-
return this.label;
|
77
|
-
};
|
78
|
-
|
79
|
-
TempNode.prototype.getUuid = function (unique) {
|
80
|
-
var uuid = unique || unique == undefined ? this.constructor.uuid || this.uuid : this.uuid;
|
81
|
-
if (typeof this.scope === 'string') uuid = this.scope + '-' + uuid;
|
82
|
-
return uuid;
|
83
|
-
};
|
84
|
-
|
85
|
-
TempNode.prototype.getTemp = function (builder, uuid) {
|
86
|
-
uuid = uuid || this.uuid;
|
87
|
-
var tempVar = builder.getVars()[uuid];
|
88
|
-
return tempVar ? tempVar.name : undefined;
|
89
|
-
};
|
90
|
-
|
91
|
-
TempNode.prototype.generate = function (builder, output, uuid, type, ns) {
|
92
|
-
if (!this.getShared(builder, output)) console.error('THREE.TempNode is not shared!');
|
93
|
-
uuid = uuid || this.uuid;
|
94
|
-
return builder.getTempVar(uuid, type || this.getType(builder), ns, this.getLabel()).name;
|
95
|
-
};
|
28
|
+
}
|
96
29
|
|
97
|
-
export
|
30
|
+
export default TempNode;
|
@@ -0,0 +1 @@
|
|
1
|
+
"use strict";var e=require("./InputNode.cjs.js");require("./Node.cjs.js"),require("./constants.cjs.js"),require("./NodeUtils.cjs.js"),require("three");class t extends e{getUniformHash(e){return this.getHash(e)}generate(e,t){const s=this.getNodeType(e),r=this.getUniformHash(e);let o=e.getNodeFromHash(r);void 0===o&&(e.setHashNode(this,r),o=this);const i=o.getInputType(e),n=e.getUniformFromNode(o,e.shaderStage,i),a=e.getPropertyName(n);return e.format(a,s,t)}}t.prototype.isUniformNode=!0,module.exports=t;
|
@@ -0,0 +1,28 @@
|
|
1
|
+
import InputNode from './InputNode.js';
|
2
|
+
|
3
|
+
class UniformNode extends InputNode {
|
4
|
+
getUniformHash(builder) {
|
5
|
+
return this.getHash(builder);
|
6
|
+
}
|
7
|
+
|
8
|
+
generate(builder, output) {
|
9
|
+
const type = this.getNodeType(builder);
|
10
|
+
const hash = this.getUniformHash(builder);
|
11
|
+
let sharedNode = builder.getNodeFromHash(hash);
|
12
|
+
|
13
|
+
if (sharedNode === undefined) {
|
14
|
+
builder.setHashNode(this, hash);
|
15
|
+
sharedNode = this;
|
16
|
+
}
|
17
|
+
|
18
|
+
const sharedNodeType = sharedNode.getInputType(builder);
|
19
|
+
const nodeUniform = builder.getUniformFromNode(sharedNode, builder.shaderStage, sharedNodeType);
|
20
|
+
const propertyName = builder.getPropertyName(nodeUniform);
|
21
|
+
return builder.format(propertyName, type, output);
|
22
|
+
}
|
23
|
+
|
24
|
+
}
|
25
|
+
|
26
|
+
UniformNode.prototype.isUniformNode = true;
|
27
|
+
|
28
|
+
export default UniformNode;
|
@@ -1 +1 @@
|
|
1
|
-
"use strict";
|
1
|
+
"use strict";var e=require("./Node.cjs.js");require("./constants.cjs.js"),require("./NodeUtils.cjs.js"),require("three");class t extends e{constructor(e,t=null,s=null){super(s),this.node=e,this.name=t}getHash(e){return this.name||super.getHash(e)}getNodeType(e){return super.getNodeType(e)||this.node.getNodeType(e)}generate(e){const t=e.getVectorType(this.getNodeType(e)),s=this.node,r=this.name,o=s.build(e,t),n=e.getVarFromNode(this,t);null!==r&&(n.name=r);const d=e.getPropertyName(n);return e.addFlowCode(`${d} = ${o}`),d}}t.prototype.isVarNode=!0,module.exports=t;
|