33 lines
		
	
	
		
			628 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			33 lines
		
	
	
		
			628 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | import TempNode from '../core/TempNode.js'; | ||
|  | import { addNodeClass } from '../core/Node.js'; | ||
|  | import { addNodeElement, nodeProxy } from '../shadernode/ShaderNode.js'; | ||
|  | 
 | ||
|  | class PosterizeNode extends TempNode { | ||
|  | 
 | ||
|  | 	constructor( sourceNode, stepsNode ) { | ||
|  | 
 | ||
|  | 		super(); | ||
|  | 
 | ||
|  | 		this.sourceNode = sourceNode; | ||
|  | 		this.stepsNode = stepsNode; | ||
|  | 
 | ||
|  | 	} | ||
|  | 
 | ||
|  | 	setup() { | ||
|  | 
 | ||
|  | 		const { sourceNode, stepsNode } = this; | ||
|  | 
 | ||
|  | 		return sourceNode.mul( stepsNode ).floor().div( stepsNode ); | ||
|  | 
 | ||
|  | 	} | ||
|  | 
 | ||
|  | } | ||
|  | 
 | ||
|  | export default PosterizeNode; | ||
|  | 
 | ||
|  | export const posterize = nodeProxy( PosterizeNode ); | ||
|  | 
 | ||
|  | addNodeElement( 'posterize', posterize ); | ||
|  | 
 | ||
|  | addNodeClass( 'PosterizeNode', PosterizeNode ); |