CubeTextureLoader.js 870 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import { ImageLoader } from './ImageLoader.js';
  2. import { CubeTexture } from '../textures/CubeTexture.js';
  3. import { Loader } from './Loader.js';
  4. class CubeTextureLoader extends Loader {
  5. constructor( manager ) {
  6. super( manager );
  7. }
  8. load( urls, onLoad, onProgress, onError ) {
  9. const texture = new CubeTexture();
  10. const loader = new ImageLoader( this.manager );
  11. loader.setCrossOrigin( this.crossOrigin );
  12. loader.setPath( this.path );
  13. let loaded = 0;
  14. function loadTexture( i ) {
  15. loader.load( urls[ i ], function ( image ) {
  16. texture.images[ i ] = image;
  17. loaded ++;
  18. if ( loaded === 6 ) {
  19. texture.needsUpdate = true;
  20. if ( onLoad ) onLoad( texture );
  21. }
  22. }, undefined, onError );
  23. }
  24. for ( let i = 0; i < urls.length; ++ i ) {
  25. loadTexture( i );
  26. }
  27. return texture;
  28. }
  29. }
  30. export { CubeTextureLoader };