TextureNode.js 650 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. }
  9. generate( builder, output ) {
  10. const type = this.getType( builder );
  11. const textureProperty = super.generate( builder, type );
  12. const uvSnippet = this.uv.build( builder, 'vec2' );
  13. const textureCallSnippet = builder.getTexture( textureProperty, uvSnippet );
  14. return builder.format( textureCallSnippet, type, output );
  15. }
  16. }
  17. TextureNode.prototype.isTextureNode = true;
  18. export default TextureNode;