babylon.glTF2Interface.d.ts 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  1. declare module "babylonjs-gltf2interface" {
  2. export = BABYLON.GLTF2;
  3. }
  4. declare module BABYLON.GLTF2 {
  5. const enum AccessorComponentType {
  6. BYTE = 5120,
  7. UNSIGNED_BYTE = 5121,
  8. SHORT = 5122,
  9. UNSIGNED_SHORT = 5123,
  10. UNSIGNED_INT = 5125,
  11. FLOAT = 5126,
  12. }
  13. const enum AccessorType {
  14. SCALAR = "SCALAR",
  15. VEC2 = "VEC2",
  16. VEC3 = "VEC3",
  17. VEC4 = "VEC4",
  18. MAT2 = "MAT2",
  19. MAT3 = "MAT3",
  20. MAT4 = "MAT4",
  21. }
  22. const enum AnimationChannelTargetPath {
  23. TRANSLATION = "translation",
  24. ROTATION = "rotation",
  25. SCALE = "scale",
  26. WEIGHTS = "weights",
  27. }
  28. const enum AnimationSamplerInterpolation {
  29. LINEAR = "LINEAR",
  30. STEP = "STEP",
  31. CUBICSPLINE = "CUBICSPLINE",
  32. }
  33. const enum CameraType {
  34. PERSPECTIVE = "perspective",
  35. ORTHOGRAPHIC = "orthographic",
  36. }
  37. const enum ImageMimeType {
  38. JPEG = "image/jpeg",
  39. PNG = "image/png",
  40. }
  41. const enum MaterialAlphaMode {
  42. OPAQUE = "OPAQUE",
  43. MASK = "MASK",
  44. BLEND = "BLEND",
  45. }
  46. const enum MeshPrimitiveMode {
  47. POINTS = 0,
  48. LINES = 1,
  49. LINE_LOOP = 2,
  50. LINE_STRIP = 3,
  51. TRIANGLES = 4,
  52. TRIANGLE_STRIP = 5,
  53. TRIANGLE_FAN = 6,
  54. }
  55. const enum TextureMagFilter {
  56. NEAREST = 9728,
  57. LINEAR = 9729,
  58. }
  59. const enum TextureMinFilter {
  60. NEAREST = 9728,
  61. LINEAR = 9729,
  62. NEAREST_MIPMAP_NEAREST = 9984,
  63. LINEAR_MIPMAP_NEAREST = 9985,
  64. NEAREST_MIPMAP_LINEAR = 9986,
  65. LINEAR_MIPMAP_LINEAR = 9987,
  66. }
  67. const enum TextureWrapMode {
  68. CLAMP_TO_EDGE = 33071,
  69. MIRRORED_REPEAT = 33648,
  70. REPEAT = 10497,
  71. }
  72. interface IProperty {
  73. extensions?: {
  74. [key: string]: any;
  75. };
  76. extras?: any;
  77. }
  78. interface IChildRootProperty extends IProperty {
  79. name?: string;
  80. }
  81. interface IAccessorSparseIndices extends IProperty {
  82. bufferView: number;
  83. byteOffset?: number;
  84. componentType: AccessorComponentType;
  85. }
  86. interface IAccessorSparseValues extends IProperty {
  87. bufferView: number;
  88. byteOffset?: number;
  89. }
  90. interface IAccessorSparse extends IProperty {
  91. count: number;
  92. indices: IAccessorSparseIndices;
  93. values: IAccessorSparseValues;
  94. }
  95. interface IAccessor extends IChildRootProperty {
  96. bufferView?: number;
  97. byteOffset?: number;
  98. componentType: AccessorComponentType;
  99. normalized?: boolean;
  100. count: number;
  101. type: AccessorType;
  102. max?: number[];
  103. min?: number[];
  104. sparse?: IAccessorSparse;
  105. }
  106. interface IAnimationChannel extends IProperty {
  107. sampler: number;
  108. target: IAnimationChannelTarget;
  109. }
  110. interface IAnimationChannelTarget extends IProperty {
  111. node: number;
  112. path: AnimationChannelTargetPath;
  113. }
  114. interface IAnimationSampler extends IProperty {
  115. input: number;
  116. interpolation?: AnimationSamplerInterpolation;
  117. output: number;
  118. }
  119. interface IAnimation extends IChildRootProperty {
  120. channels: IAnimationChannel[];
  121. samplers: IAnimationSampler[];
  122. }
  123. interface IAsset extends IChildRootProperty {
  124. copyright?: string;
  125. generator?: string;
  126. version: string;
  127. minVersion?: string;
  128. }
  129. interface IBuffer extends IChildRootProperty {
  130. uri?: string;
  131. byteLength: number;
  132. }
  133. interface IBufferView extends IChildRootProperty {
  134. buffer: number;
  135. byteOffset?: number;
  136. byteLength: number;
  137. byteStride?: number;
  138. }
  139. interface ICameraOrthographic extends IProperty {
  140. xmag: number;
  141. ymag: number;
  142. zfar: number;
  143. znear: number;
  144. }
  145. interface ICameraPerspective extends IProperty {
  146. aspectRatio?: number;
  147. yfov: number;
  148. zfar?: number;
  149. znear: number;
  150. }
  151. interface ICamera extends IChildRootProperty {
  152. orthographic?: ICameraOrthographic;
  153. perspective?: ICameraPerspective;
  154. type: CameraType;
  155. }
  156. interface IImage extends IChildRootProperty {
  157. uri?: string;
  158. mimeType?: ImageMimeType;
  159. bufferView?: number;
  160. }
  161. interface IMaterialNormalTextureInfo extends ITextureInfo {
  162. scale?: number;
  163. }
  164. interface IMaterialOcclusionTextureInfo extends ITextureInfo {
  165. strength?: number;
  166. }
  167. interface IMaterialPbrMetallicRoughness {
  168. baseColorFactor?: number[];
  169. baseColorTexture?: ITextureInfo;
  170. metallicFactor?: number;
  171. roughnessFactor?: number;
  172. metallicRoughnessTexture?: ITextureInfo;
  173. }
  174. interface IMaterial extends IChildRootProperty {
  175. pbrMetallicRoughness?: IMaterialPbrMetallicRoughness;
  176. normalTexture?: IMaterialNormalTextureInfo;
  177. occlusionTexture?: IMaterialOcclusionTextureInfo;
  178. emissiveTexture?: ITextureInfo;
  179. emissiveFactor?: number[];
  180. alphaMode?: MaterialAlphaMode;
  181. alphaCutoff?: number;
  182. doubleSided?: boolean;
  183. }
  184. interface IMeshPrimitive extends IProperty {
  185. attributes: {
  186. [name: string]: number;
  187. };
  188. indices?: number;
  189. material?: number;
  190. mode?: MeshPrimitiveMode;
  191. targets?: {
  192. [name: string]: number;
  193. }[];
  194. }
  195. interface IMesh extends IChildRootProperty {
  196. primitives: IMeshPrimitive[];
  197. weights?: number[];
  198. }
  199. interface INode extends IChildRootProperty {
  200. camera?: number;
  201. children?: number[];
  202. skin?: number;
  203. matrix?: number[];
  204. mesh?: number;
  205. rotation?: number[];
  206. scale?: number[];
  207. translation?: number[];
  208. weights?: number[];
  209. }
  210. interface ISampler extends IChildRootProperty {
  211. magFilter?: TextureMagFilter;
  212. minFilter?: TextureMinFilter;
  213. wrapS?: TextureWrapMode;
  214. wrapT?: TextureWrapMode;
  215. }
  216. interface IScene extends IChildRootProperty {
  217. nodes: number[];
  218. }
  219. interface ISkin extends IChildRootProperty {
  220. inverseBindMatrices?: number;
  221. skeleton?: number;
  222. joints: number[];
  223. }
  224. interface ITexture extends IChildRootProperty {
  225. sampler?: number;
  226. source: number;
  227. }
  228. interface ITextureInfo {
  229. index: number;
  230. texCoord?: number;
  231. }
  232. interface IGLTF extends IProperty {
  233. accessors?: IAccessor[];
  234. animations?: IAnimation[];
  235. asset: IAsset;
  236. buffers?: IBuffer[];
  237. bufferViews?: IBufferView[];
  238. cameras?: ICamera[];
  239. extensionsUsed?: string[];
  240. extensionsRequired?: string[];
  241. images?: IImage[];
  242. materials?: IMaterial[];
  243. meshes?: IMesh[];
  244. nodes?: INode[];
  245. samplers?: ISampler[];
  246. scene?: number;
  247. scenes?: IScene[];
  248. skins?: ISkin[];
  249. textures?: ITexture[];
  250. }
  251. }