瀏覽代碼

Add TypeScript definitions for MTLLoader

Nathan Bierema 6 年之前
父節點
當前提交
91c461372b
共有 1 個文件被更改,包括 104 次插入0 次删除
  1. 104 0
      examples/jsm/loaders/MTLLoader.d.ts

+ 104 - 0
examples/jsm/loaders/MTLLoader.d.ts

@@ -0,0 +1,104 @@
+import {
+  Material,
+  LoadingManager,
+  Mapping,
+  EventDispatcher,
+  BufferGeometry,
+  Side,
+  Texture,
+  Vector2,
+  Wrapping
+} from '../../../src/Three';
+
+export interface MaterialCreatorOptions {
+  /**
+   * side: Which side to apply the material
+   * THREE.FrontSide (default), THREE.BackSide, THREE.DoubleSide
+   */
+  side?: Side;
+  /*
+   * wrap: What type of wrapping to apply for textures
+   * THREE.RepeatWrapping (default), THREE.ClampToEdgeWrapping, THREE.MirroredRepeatWrapping
+   */
+  wrap?: Wrapping;
+  /*
+   * normalizeRGB: RGBs need to be normalized to 0-1 from 0-255
+   * Default: false, assumed to be already normalized
+   */
+  normalizeRGB?: boolean;
+  /*
+   * ignoreZeroRGBs: Ignore values of RGBs (Ka,Kd,Ks) that are all 0's
+   * Default: false
+   */
+  ignoreZeroRGBs?: boolean;
+  /*
+   * 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;
+}
+
+export class MTLLoader extends EventDispatcher {
+  constructor(manager?: LoadingManager);
+  manager: LoadingManager;
+  materialOptions: MaterialCreatorOptions;
+  path: string;
+  texturePath: string;
+  crossOrigin: boolean;
+
+  load(url: string, onLoad: (materialCreator: MaterialCreator) => void, onProgress?: (event: ProgressEvent) => void, onError?: (event: ErrorEvent) => void): void;
+  parse(text: string) : MaterialCreator;
+  setPath(path: string) : void;
+  setTexturePath(path: string) : void;
+  setBaseUrl(path: string) : void;
+  setCrossOrigin(value: boolean) : void;
+  setMaterialOptions(value: MaterialCreatorOptions) : void;
+}
+
+export interface MaterialInfo {
+  ks?: number[];
+  kd?: number[];
+  ke?: number[];
+  map_kd?: string;
+  map_ks?: string;
+  map_ke?: string;
+  norm?: string;
+  map_bump?: string;
+  bump?: string;
+  map_d?: string;
+  ns?: number;
+  d?: number;
+  tr?: number;
+}
+
+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;
+
+  setCrossOrigin( value: boolean ) : void;
+  setManager( value: LoadingManager ) : void;
+  setMaterials( materialsInfo: {[key: string]: MaterialInfo} ) : void;
+  convert( materialsInfo: {[key: string]: MaterialInfo} ) : {[key: string]: MaterialInfo};
+  preload() : void;
+  getIndex( materialName: string ) : Material;
+  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;
+}