添加关照、全局等高线、修改图层问题
This commit is contained in:
84
dist/electron/static/sdk/three/jsm/nodes/code/CodeNode.js
vendored
Normal file
84
dist/electron/static/sdk/three/jsm/nodes/code/CodeNode.js
vendored
Normal file
@ -0,0 +1,84 @@
|
||||
import Node, { addNodeClass } from '../core/Node.js';
|
||||
import { nodeProxy } from '../shadernode/ShaderNode.js';
|
||||
|
||||
class CodeNode extends Node {
|
||||
|
||||
constructor( code = '', includes = [], language = '' ) {
|
||||
|
||||
super( 'code' );
|
||||
|
||||
this.isCodeNode = true;
|
||||
|
||||
this.code = code;
|
||||
this.language = language;
|
||||
|
||||
this.includes = includes;
|
||||
|
||||
}
|
||||
|
||||
isGlobal() {
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
setIncludes( includes ) {
|
||||
|
||||
this.includes = includes;
|
||||
|
||||
return this;
|
||||
|
||||
}
|
||||
|
||||
getIncludes( /*builder*/ ) {
|
||||
|
||||
return this.includes;
|
||||
|
||||
}
|
||||
|
||||
generate( builder ) {
|
||||
|
||||
const includes = this.getIncludes( builder );
|
||||
|
||||
for ( const include of includes ) {
|
||||
|
||||
include.build( builder );
|
||||
|
||||
}
|
||||
|
||||
const nodeCode = builder.getCodeFromNode( this, this.getNodeType( builder ) );
|
||||
nodeCode.code = this.code;
|
||||
|
||||
return nodeCode.code;
|
||||
|
||||
}
|
||||
|
||||
serialize( data ) {
|
||||
|
||||
super.serialize( data );
|
||||
|
||||
data.code = this.code;
|
||||
data.language = this.language;
|
||||
|
||||
}
|
||||
|
||||
deserialize( data ) {
|
||||
|
||||
super.deserialize( data );
|
||||
|
||||
this.code = data.code;
|
||||
this.language = data.language;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export default CodeNode;
|
||||
|
||||
export const code = nodeProxy( CodeNode );
|
||||
|
||||
export const js = ( src, includes ) => code( src, includes, 'js' );
|
||||
export const wgsl = ( src, includes ) => code( src, includes, 'wgsl' );
|
||||
export const glsl = ( src, includes ) => code( src, includes, 'glsl' );
|
||||
|
||||
addNodeClass( 'CodeNode', CodeNode );
|
Reference in New Issue
Block a user