MTLLoader.d.ts 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  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: MaterialCreator) => void, onProgress?: (event: ProgressEvent) => void, onError?: (event: ErrorEvent) => void): void;
  44. parse(text: string) : 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 class MaterialCreator {
  68. constructor(baseUrl?: string, options?: MaterialCreatorOptions);
  69. baseUrl : string;
  70. options : MaterialCreatorOptions;
  71. materialsInfo : {[key: string]: MaterialInfo};
  72. materials : {[key: string]: Material};
  73. private materialsArray : Material[];
  74. nameLookup : {[key: string]: number};
  75. side : Side;
  76. wrap : Wrapping;
  77. setCrossOrigin( value: boolean ) : void;
  78. setManager( value: LoadingManager ) : void;
  79. setMaterials( materialsInfo: {[key: string]: MaterialInfo} ) : void;
  80. convert( materialsInfo: {[key: string]: MaterialInfo} ) : {[key: string]: MaterialInfo};
  81. preload() : void;
  82. getIndex( materialName: string ) : Material;
  83. getAsArray() : Material[];
  84. create( materialName: string ) : Material;
  85. createMaterial_( materialName: string ) : Material;
  86. getTextureParams( value: string, matParams: any ) : TexParams;
  87. loadTexture(url: string, mapping?: Mapping, onLoad?: (bufferGeometry: BufferGeometry) => void, onProgress?: (event: ProgressEvent) => void, onError?: (event: ErrorEvent) => void): Texture;
  88. }