UNPKG

three-stdlib

Version:

stand-alone library of threejs examples

101 lines (91 loc) 3.09 kB
import { Loader, Material, LoadingManager, Mapping, BufferGeometry, Side, Texture, Vector2, Wrapping } from 'three' export interface MaterialCreatorOptions { /** * side: Which side to apply the material * THREE.FrontSide (default), THREE.BackSide, THREE.DoubleSide */ side?: Side | undefined /* * wrap: What type of wrapping to apply for textures * THREE.RepeatWrapping (default), THREE.ClampToEdgeWrapping, THREE.MirroredRepeatWrapping */ wrap?: Wrapping | undefined /* * normalizeRGB: RGBs need to be normalized to 0-1 from 0-255 * Default: false, assumed to be already normalized */ normalizeRGB?: boolean | undefined /* * ignoreZeroRGBs: Ignore values of RGBs (Ka,Kd,Ks) that are all 0's * Default: false */ ignoreZeroRGBs?: boolean | undefined /* * invertTrProperty: Use values 1 of Tr field for fully opaque. This option is useful for obj * exported from 3ds MAX, vcglib or meshlab. * Default: false */ invertTrProperty?: boolean | undefined } export class MTLLoader extends Loader { constructor(manager?: LoadingManager) materialOptions: MaterialCreatorOptions load( url: string, onLoad: (materialCreator: MaterialCreator) => void, onProgress?: (event: ProgressEvent) => void, onError?: (event: ErrorEvent) => void, ): void parse(text: string, path: string): MaterialCreator setMaterialOptions(value: MaterialCreatorOptions): void loadAsync(url: string, onProgress?: (event: ProgressEvent) => void): Promise<MaterialCreator> } export interface MaterialInfo { ks?: number[] | undefined kd?: number[] | undefined ke?: number[] | undefined map_kd?: string | undefined map_ks?: string | undefined map_ke?: string | undefined norm?: string | undefined map_bump?: string | undefined bump?: string | undefined map_d?: string | undefined ns?: number | undefined d?: number | undefined tr?: number | undefined } export interface TexParams { scale: Vector2 offset: Vector2 url: string } export class MaterialCreator { constructor(baseUrl?: string, options?: MaterialCreatorOptions) baseUrl: string options: MaterialCreatorOptions materialsInfo: { [key: string]: MaterialInfo } materials: { [key: string]: Material } private materialsArray: Material[] nameLookup: { [key: string]: number } side: Side wrap: Wrapping crossOrigin: string setCrossOrigin(value: string): this setManager(value: LoadingManager): void setMaterials(materialsInfo: { [key: string]: MaterialInfo }): void convert(materialsInfo: { [key: string]: MaterialInfo }): { [key: string]: MaterialInfo } preload(): void getIndex(materialName: string): number getAsArray(): Material[] create(materialName: string): Material createMaterial_(materialName: string): Material getTextureParams(value: string, matParams: any): TexParams loadTexture( url: string, mapping?: Mapping, onLoad?: (bufferGeometry: BufferGeometry) => void, onProgress?: (event: ProgressEvent) => void, onError?: (event: ErrorEvent) => void, ): Texture }