28 lines
		
	
	
		
			739 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			28 lines
		
	
	
		
			739 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | import CondNode from '../math/CondNode.js'; | ||
|  | import { expression } from '../code/ExpressionNode.js'; | ||
|  | import { addNodeClass } from '../core/Node.js'; | ||
|  | import { addNodeElement, nodeProxy } from '../shadernode/ShaderNode.js'; | ||
|  | 
 | ||
|  | let discardExpression; | ||
|  | 
 | ||
|  | class DiscardNode extends CondNode { | ||
|  | 
 | ||
|  | 	constructor( condNode ) { | ||
|  | 
 | ||
|  | 		discardExpression = discardExpression || expression( 'discard' ); | ||
|  | 
 | ||
|  | 		super( condNode, discardExpression ); | ||
|  | 
 | ||
|  | 	} | ||
|  | 
 | ||
|  | } | ||
|  | 
 | ||
|  | export default DiscardNode; | ||
|  | 
 | ||
|  | export const inlineDiscard = nodeProxy( DiscardNode ); | ||
|  | export const discard = ( condNode ) => inlineDiscard( condNode ).append(); | ||
|  | 
 | ||
|  | addNodeElement( 'discard', discard ); // @TODO: Check... this cause a little confusing using in chaining
 | ||
|  | 
 | ||
|  | addNodeClass( 'DiscardNode', DiscardNode ); |