MTLLoader.d.ts 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  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. }
  47. export interface MaterialInfo {
  48. ks?: number[];
  49. kd?: number[];
  50. ke?: number[];
  51. map_kd?: string;
  52. map_ks?: string;
  53. map_ke?: string;
  54. norm?: string;
  55. map_bump?: string;
  56. bump?: string;
  57. map_d?: string;
  58. ns?: number;
  59. d?: number;
  60. tr?: number;
  61. }
  62. export interface TexParams {
  63. scale: Vector2;
  64. offset: Vector2;
  65. url: string;
  66. }
  67. export namespace MTLLoader {
  68. export class MaterialCreator {
  69. constructor( baseUrl?: string, options?: MaterialCreatorOptions );
  70. baseUrl : string;
  71. options : MaterialCreatorOptions;
  72. materialsInfo : {[key: string]: MaterialInfo};
  73. materials : {[key: string]: Material};
  74. private materialsArray : Material[];
  75. nameLookup : {[key: string]: number};
  76. side : Side;
  77. wrap : Wrapping;
  78. crossOrigin : string;
  79. setCrossOrigin( value: string ) : void;
  80. setManager( value: LoadingManager ) : void;
  81. setMaterials( materialsInfo: {[key: string]: MaterialInfo} ) : void;
  82. convert( materialsInfo: {[key: string]: MaterialInfo} ) : {[key: string]: MaterialInfo};
  83. preload() : void;
  84. getIndex( materialName: string ) : Material;
  85. getAsArray() : Material[];
  86. create( materialName: string ) : Material;
  87. createMaterial_( materialName: string ) : Material;
  88. getTextureParams( value: string, matParams: any ) : TexParams;
  89. loadTexture( url: string, mapping?: Mapping, onLoad?: ( bufferGeometry: BufferGeometry ) => void, onProgress?: ( event: ProgressEvent ) => void, onError?: ( event: ErrorEvent ) => void ): Texture;
  90. }
  91. }