babylon.glTF2Interface.d.ts 7.1 KB

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