37 lines
		
	
	
		
			572 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			572 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
import {
 | 
						|
	DataTextureLoader,
 | 
						|
	LinearFilter,
 | 
						|
	LinearMipmapLinearFilter
 | 
						|
} from 'three';
 | 
						|
 | 
						|
import UTIF from '../libs/utif.module.js';
 | 
						|
 | 
						|
class TIFFLoader extends DataTextureLoader {
 | 
						|
 | 
						|
	constructor( manager ) {
 | 
						|
 | 
						|
		super( manager );
 | 
						|
 | 
						|
	}
 | 
						|
 | 
						|
	parse( buffer ) {
 | 
						|
 | 
						|
		const ifds = UTIF.decode( buffer );
 | 
						|
		UTIF.decodeImage( buffer, ifds[ 0 ] );
 | 
						|
		const rgba = UTIF.toRGBA8( ifds[ 0 ] );
 | 
						|
 | 
						|
		return {
 | 
						|
			width: ifds[ 0 ].width,
 | 
						|
			height: ifds[ 0 ].height,
 | 
						|
			data: rgba,
 | 
						|
			flipY: true,
 | 
						|
			magFilter: LinearFilter,
 | 
						|
			minFilter: LinearMipmapLinearFilter
 | 
						|
		};
 | 
						|
 | 
						|
	}
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
export { TIFFLoader };
 |