CheckerNode.js 576 B

123456789101112131415161718192021222324252627282930313233343536
  1. import FunctionNode from '../core/FunctionNode.js';
  2. import Node from '../core/Node.js';
  3. import UVNode from '../accessors/UVNode.js';
  4. const checker = new FunctionNode( `
  5. float ( vec2 uv ) {
  6. uv *= 2.0;
  7. float cx = floor( uv.x );
  8. float cy = floor( uv.y );
  9. float result = mod( cx + cy, 2.0 );
  10. return sign( result );
  11. }` );
  12. class CheckerNode extends Node {
  13. constructor( uv = new UVNode() ) {
  14. super( 'float' );
  15. this.uv = uv;
  16. }
  17. generate( builder, output ) {
  18. return checker.call( { uv: this.uv } ).build( builder, output );
  19. }
  20. }
  21. export default CheckerNode;