MTLLoader.d.ts 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. import {
  2. Material,
  3. LoadingManager,
  4. Mapping,
  5. Loader,
  6. BufferGeometry,
  7. Side,
  8. Texture,
  9. Vector2,
  10. Wrapping
  11. } from '../../../src/Three';
  12. export interface MaterialCreatorOptions {
  13. /**
  14. * side: Which side to apply the material
  15. * THREE.FrontSide (default), THREE.BackSide, THREE.DoubleSide
  16. */
  17. side?: Side;
  18. /*
  19. * wrap: What type of wrapping to apply for textures
  20. * THREE.RepeatWrapping (default), THREE.ClampToEdgeWrapping, THREE.MirroredRepeatWrapping
  21. */
  22. wrap?: Wrapping;
  23. /*
  24. * normalizeRGB: RGBs need to be normalized to 0-1 from 0-255
  25. * Default: false, assumed to be already normalized
  26. */
  27. normalizeRGB?: boolean;
  28. /*
  29. * ignoreZeroRGBs: Ignore values of RGBs (Ka,Kd,Ks) that are all 0's
  30. * Default: false
  31. */
  32. ignoreZeroRGBs?: boolean;
  33. /*
  34. * invertTrProperty: Use values 1 of Tr field for fully opaque. This option is useful for obj
  35. * exported from 3ds MAX, vcglib or meshlab.
  36. * Default: false
  37. */
  38. invertTrProperty?: boolean;
  39. }
  40. export class MTLLoader extends Loader {
  41. constructor( manager?: LoadingManager );
  42. materialOptions: MaterialCreatorOptions;
  43. load( url: string, onLoad: ( materialCreator: MTLLoader.MaterialCreator ) => void, onProgress?: ( event: ProgressEvent ) => void, onError?: ( event: ErrorEvent ) => void ): void;
  44. parse( text: string, path: string ) : MTLLoader.MaterialCreator;
  45. setMaterialOptions( value: MaterialCreatorOptions ) : void;
  46. loadAsync( url: string, onProgress?: ( event: ProgressEvent ) => void ): Promise<MTLLoader.MaterialCreator>;
  47. }
  48. export interface MaterialInfo {
  49. ks?: number[];
  50. kd?: number[];
  51. ke?: number[];
  52. map_kd?: string;
  53. map_ks?: string;
  54. map_ke?: string;
  55. norm?: string;
  56. map_bump?: string;
  57. bump?: string;
  58. map_d?: string;
  59. ns?: number;
  60. d?: number;
  61. tr?: number;
  62. }
  63. export interface TexParams {
  64. scale: Vector2;
  65. offset: Vector2;
  66. url: string;
  67. }
  68. export namespace MTLLoader {
  69. export class MaterialCreator {
  70. constructor( baseUrl?: string, options?: MaterialCreatorOptions );
  71. baseUrl : string;
  72. options : MaterialCreatorOptions;
  73. materialsInfo : {[key: string]: MaterialInfo};
  74. materials : {[key: string]: Material};
  75. private materialsArray : Material[];
  76. nameLookup : {[key: string]: number};
  77. side : Side;
  78. wrap : Wrapping;
  79. crossOrigin : string;
  80. setCrossOrigin( value: string ) : this;
  81. setManager( value: LoadingManager ) : void;
  82. setMaterials( materialsInfo: {[key: string]: MaterialInfo} ) : void;
  83. convert( materialsInfo: {[key: string]: MaterialInfo} ) : {[key: string]: MaterialInfo};
  84. preload() : void;
  85. getIndex( materialName: string ) : Material;
  86. getAsArray() : Material[];
  87. create( materialName: string ) : Material;
  88. createMaterial_( materialName: string ) : Material;
  89. getTextureParams( value: string, matParams: any ) : TexParams;
  90. loadTexture( url: string, mapping?: Mapping, onLoad?: ( bufferGeometry: BufferGeometry ) => void, onProgress?: ( event: ProgressEvent ) => void, onError?: ( event: ErrorEvent ) => void ): Texture;
  91. }
  92. }