TextureNode.js 673 B

1234567891011121314151617181920212223242526272829303132
  1. import InputNode from '../core/InputNode.js';
  2. import UVNode from '../accessors/UVNode.js';
  3. class TextureNode extends InputNode {
  4. constructor( value, uv = new UVNode() ) {
  5. super( 'texture' );
  6. this.value = value;
  7. this.uv = uv;
  8. Object.defineProperty( this, 'isTextureNode', { value: true } );
  9. }
  10. generate( builder, output ) {
  11. const type = this.getType( builder );
  12. const textureProperty = super.generate( builder, type );
  13. const uvSnippet = this.uv.build( builder, 'vec2' );
  14. const textureCallSnippet = builder.getTexture( textureProperty, uvSnippet );
  15. return builder.format( textureCallSnippet, type, output );
  16. }
  17. }
  18. export default TextureNode;