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 };
							 |