| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 | import { MathUtils } from '../../../../build/three.module.js';import { ShaderPass } from '../../postprocessing/ShaderPass.js';import { NodeMaterial } from '../materials/NodeMaterial.js';import { ScreenNode } from '../inputs/ScreenNode.js';class NodePass extends ShaderPass {	constructor() {		super();		this.name = '';		this.uuid = MathUtils.generateUUID();		this.userData = {};		this.textureID = 'renderTexture';		this.input = new ScreenNode();		this.material = new NodeMaterial();		this.needsUpdate = true;	}	render() {		if ( this.needsUpdate ) {			this.material.dispose();			this.material.fragment.value = this.input;			this.needsUpdate = false;		}		this.uniforms = this.material.uniforms;		super.render( ...arguments );	}	copy( source ) {		this.input = source.input;		return this;	}	toJSON( meta ) {		var isRootObject = ( meta === undefined || typeof meta === 'string' );		if ( isRootObject ) {			meta = {				nodes: {}			};		}		if ( meta && ! meta.passes ) meta.passes = {};		if ( ! meta.passes[ this.uuid ] ) {			var data = {};			data.uuid = this.uuid;			data.type = 'NodePass';			meta.passes[ this.uuid ] = data;			if ( this.name !== '' ) data.name = this.name;			if ( JSON.stringify( this.userData ) !== '{}' ) data.userData = this.userData;			data.input = this.input.toJSON( meta ).uuid;		}		meta.pass = this.uuid;		return meta;	}}export { NodePass };
 |