修改静态资源文件夹位置
This commit is contained in:
		
							
								
								
									
										84
									
								
								public/sdk/three/jsm/nodes/code/CodeNode.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										84
									
								
								public/sdk/three/jsm/nodes/code/CodeNode.js
									
									
									
									
									
										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