PosterizeNode.js 628 B

1234567891011121314151617181920212223242526272829303132
  1. import TempNode from '../core/TempNode.js';
  2. import { addNodeClass } from '../core/Node.js';
  3. import { addNodeElement, nodeProxy } from '../shadernode/ShaderNode.js';
  4. class PosterizeNode extends TempNode {
  5. constructor( sourceNode, stepsNode ) {
  6. super();
  7. this.sourceNode = sourceNode;
  8. this.stepsNode = stepsNode;
  9. }
  10. setup() {
  11. const { sourceNode, stepsNode } = this;
  12. return sourceNode.mul( stepsNode ).floor().div( stepsNode );
  13. }
  14. }
  15. export default PosterizeNode;
  16. export const posterize = nodeProxy( PosterizeNode );
  17. addNodeElement( 'posterize', posterize );
  18. addNodeClass( 'PosterizeNode', PosterizeNode );