MTLLoader.d.ts 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. import {
  2. Material,
  3. LoadingManager,
  4. Mapping,
  5. EventDispatcher,
  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 EventDispatcher {
  41. constructor(manager?: LoadingManager);
  42. manager: LoadingManager;
  43. materialOptions: MaterialCreatorOptions;
  44. path: string;
  45. texturePath: string;
  46. crossOrigin: boolean;
  47. load(url: string, onLoad: (materialCreator: MaterialCreator) => void, onProgress?: (event: ProgressEvent) => void, onError?: (event: ErrorEvent) => void): void;
  48. parse(text: string) : MaterialCreator;
  49. setPath(path: string) : void;
  50. setTexturePath(path: string) : void;
  51. setBaseUrl(path: string) : void;
  52. setCrossOrigin(value: boolean) : void;
  53. setMaterialOptions(value: MaterialCreatorOptions) : void;
  54. }
  55. export interface MaterialInfo {
  56. ks?: number[];
  57. kd?: number[];
  58. ke?: number[];
  59. map_kd?: string;
  60. map_ks?: string;
  61. map_ke?: string;
  62. norm?: string;
  63. map_bump?: string;
  64. bump?: string;
  65. map_d?: string;
  66. ns?: number;
  67. d?: number;
  68. tr?: number;
  69. }
  70. export interface TexParams {
  71. scale: Vector2;
  72. offset: Vector2;
  73. url: string;
  74. }
  75. export class MaterialCreator {
  76. constructor(baseUrl?: string, options?: MaterialCreatorOptions);
  77. baseUrl : string;
  78. options : MaterialCreatorOptions;
  79. materialsInfo : {[key: string]: MaterialInfo};
  80. materials : {[key: string]: Material};
  81. private materialsArray : Material[];
  82. nameLookup : {[key: string]: number};
  83. side : Side;
  84. wrap : Wrapping;
  85. setCrossOrigin( value: boolean ) : void;
  86. setManager( value: LoadingManager ) : void;
  87. setMaterials( materialsInfo: {[key: string]: MaterialInfo} ) : void;
  88. convert( materialsInfo: {[key: string]: MaterialInfo} ) : {[key: string]: MaterialInfo};
  89. preload() : void;
  90. getIndex( materialName: string ) : Material;
  91. getAsArray() : Material[];
  92. create( materialName: string ) : Material;
  93. createMaterial_( materialName: string ) : Material;
  94. getTextureParams( value: string, matParams: any ) : TexParams;
  95. loadTexture(url: string, mapping?: Mapping, onLoad?: (bufferGeometry: BufferGeometry) => void, onProgress?: (event: ProgressEvent) => void, onError?: (event: ErrorEvent) => void): Texture;
  96. }