babylon.glTFLoaderInterfaces.ts 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305
  1. /// <reference path="../../../../dist/preview release/babylon.d.ts"/>
  2. module BABYLON.GLTF2 {
  3. /**
  4. * Enums
  5. */
  6. export enum EComponentType {
  7. BYTE = 5120,
  8. UNSIGNED_BYTE = 5121,
  9. SHORT = 5122,
  10. UNSIGNED_SHORT = 5123,
  11. UNSIGNED_INT = 5125,
  12. FLOAT = 5126
  13. }
  14. export enum EMeshPrimitiveMode {
  15. POINTS = 0,
  16. LINES = 1,
  17. LINE_LOOP = 2,
  18. LINE_STRIP = 3,
  19. TRIANGLES = 4,
  20. TRIANGLE_STRIP = 5,
  21. TRIANGLE_FAN = 6
  22. }
  23. export enum ETextureMagFilter {
  24. NEAREST = 9728,
  25. LINEAR = 9729,
  26. }
  27. export enum ETextureMinFilter {
  28. NEAREST = 9728,
  29. LINEAR = 9729,
  30. NEAREST_MIPMAP_NEAREST = 9984,
  31. LINEAR_MIPMAP_NEAREST = 9985,
  32. NEAREST_MIPMAP_LINEAR = 9986,
  33. LINEAR_MIPMAP_LINEAR = 9987
  34. }
  35. export enum ETextureWrapMode {
  36. CLAMP_TO_EDGE = 33071,
  37. MIRRORED_REPEAT = 33648,
  38. REPEAT = 10497
  39. }
  40. /**
  41. * Interfaces
  42. */
  43. export interface IGLTFProperty {
  44. extensions?: { [key: string]: any };
  45. extras?: any;
  46. }
  47. export interface IGLTFChildRootProperty extends IGLTFProperty {
  48. name?: string;
  49. }
  50. export interface IGLTFAccessorSparseIndices extends IGLTFProperty {
  51. bufferView: number;
  52. byteOffset?: number;
  53. componentType: EComponentType;
  54. }
  55. export interface IGLTFAccessorSparseValues extends IGLTFProperty {
  56. bufferView: number;
  57. byteOffset?: number;
  58. }
  59. export interface IGLTFAccessorSparse extends IGLTFProperty {
  60. count: number;
  61. indices: IGLTFAccessorSparseIndices;
  62. values: IGLTFAccessorSparseValues;
  63. }
  64. export interface IGLTFAccessor extends IGLTFChildRootProperty {
  65. bufferView?: number;
  66. byteOffset?: number;
  67. componentType: EComponentType;
  68. normalized?: boolean;
  69. count: number;
  70. type: string;
  71. max: number[];
  72. min: number[];
  73. sparse?: IGLTFAccessorSparse;
  74. // Runtime values
  75. index: number;
  76. }
  77. export interface IGLTFAnimationChannel extends IGLTFProperty {
  78. sampler: number;
  79. target: IGLTFAnimationChannelTarget;
  80. }
  81. export interface IGLTFAnimationChannelTarget extends IGLTFProperty {
  82. node: number;
  83. path: string;
  84. }
  85. export interface IGLTFAnimationSampler extends IGLTFProperty {
  86. input: number;
  87. interpolation?: string;
  88. output: number;
  89. }
  90. export interface IGLTFAnimation extends IGLTFChildRootProperty {
  91. channels: IGLTFAnimationChannel[];
  92. samplers: IGLTFAnimationSampler[];
  93. // Runtime values
  94. index: number;
  95. targets: any[];
  96. }
  97. export interface IGLTFAsset extends IGLTFChildRootProperty {
  98. copyright?: string;
  99. generator?: string;
  100. version: string;
  101. minVersion?: string;
  102. }
  103. export interface IGLTFBuffer extends IGLTFChildRootProperty {
  104. uri?: string;
  105. byteLength: number;
  106. // Runtime values
  107. index: number;
  108. loadedData?: ArrayBufferView;
  109. loadedObservable?: Observable<IGLTFBuffer>;
  110. }
  111. export interface IGLTFBufferView extends IGLTFChildRootProperty {
  112. buffer: number;
  113. byteOffset?: number;
  114. byteLength: number;
  115. byteStride?: number;
  116. // Runtime values
  117. index: number;
  118. }
  119. export interface IGLTFCameraOrthographic extends IGLTFProperty {
  120. xmag: number;
  121. ymag: number;
  122. zfar: number;
  123. znear: number;
  124. }
  125. export interface IGLTFCameraPerspective extends IGLTFProperty {
  126. aspectRatio: number;
  127. yfov: number;
  128. zfar: number;
  129. znear: number;
  130. }
  131. export interface IGLTFCamera extends IGLTFChildRootProperty {
  132. orthographic?: IGLTFCameraOrthographic;
  133. perspective?: IGLTFCameraPerspective;
  134. type: string;
  135. }
  136. export interface IGLTFImage extends IGLTFChildRootProperty {
  137. uri?: string;
  138. mimeType?: string;
  139. bufferView?: number;
  140. // Runtime values
  141. index: number;
  142. }
  143. export interface IGLTFMaterialNormalTextureInfo extends IGLTFTextureInfo {
  144. scale: number;
  145. }
  146. export interface IGLTFMaterialOcclusionTextureInfo extends IGLTFTextureInfo {
  147. strength: number;
  148. }
  149. export interface IGLTFMaterialPbrMetallicRoughness {
  150. baseColorFactor: number[];
  151. baseColorTexture: IGLTFTextureInfo;
  152. metallicFactor: number;
  153. roughnessFactor: number;
  154. metallicRoughnessTexture: IGLTFTextureInfo;
  155. }
  156. export interface IGLTFMaterial extends IGLTFChildRootProperty {
  157. pbrMetallicRoughness?: IGLTFMaterialPbrMetallicRoughness;
  158. normalTexture?: IGLTFMaterialNormalTextureInfo;
  159. occlusionTexture?: IGLTFMaterialOcclusionTextureInfo;
  160. emissiveTexture?: IGLTFTextureInfo;
  161. emissiveFactor?: number[];
  162. alphaMode?: string;
  163. alphaCutoff: number;
  164. doubleSided?: boolean;
  165. // Runtime values
  166. index: number;
  167. babylonMaterial: Material;
  168. }
  169. export interface IGLTFMeshPrimitive extends IGLTFProperty {
  170. attributes: { [name: string]: number };
  171. indices?: number;
  172. material?: number;
  173. mode?: EMeshPrimitiveMode;
  174. targets?: { [name: string]: number }[];
  175. // Runtime values
  176. vertexData: VertexData;
  177. targetsVertexData: VertexData[];
  178. }
  179. export interface IGLTFMesh extends IGLTFChildRootProperty {
  180. primitives: IGLTFMeshPrimitive[];
  181. weights?: number[];
  182. // Runtime values
  183. index: number;
  184. }
  185. export interface IGLTFNode extends IGLTFChildRootProperty {
  186. camera?: number;
  187. children?: number[];
  188. skin?: number;
  189. matrix?: number[];
  190. mesh?: number;
  191. rotation?: number[];
  192. scale?: number[];
  193. translation?: number[];
  194. weights?: number[];
  195. // Runtime values
  196. index: number;
  197. parent: IGLTFNode;
  198. babylonMesh: Mesh;
  199. babylonAnimationTargets?: Node[];
  200. }
  201. export interface IGLTFSampler extends IGLTFChildRootProperty {
  202. magFilter?: ETextureMagFilter;
  203. minFilter?: ETextureMinFilter;
  204. wrapS?: ETextureWrapMode;
  205. wrapT?: ETextureWrapMode;
  206. // Runtime values
  207. index: number;
  208. noMipMaps: boolean;
  209. samplingMode: number;
  210. wrapU: number;
  211. wrapV: number;
  212. }
  213. export interface IGLTFScene extends IGLTFChildRootProperty {
  214. nodes: number[];
  215. // Runtime values
  216. index: number;
  217. }
  218. export interface IGLTFSkin extends IGLTFChildRootProperty {
  219. inverseBindMatrices?: number;
  220. skeleton?: number;
  221. joints: number[];
  222. // Runtime values
  223. index: number;
  224. babylonSkeleton: Skeleton;
  225. }
  226. export interface IGLTFTexture extends IGLTFChildRootProperty {
  227. sampler?: number;
  228. source: number;
  229. // Runtime values
  230. index: number;
  231. url?: string;
  232. dataReadyObservable?: Observable<IGLTFTexture>;
  233. }
  234. export interface IGLTFTextureInfo {
  235. index: number;
  236. texCoord?: number;
  237. }
  238. export interface IGLTF extends IGLTFProperty {
  239. accessors?: IGLTFAccessor[];
  240. animations?: IGLTFAnimation[];
  241. asset: IGLTFAsset;
  242. buffers?: IGLTFBuffer[];
  243. bufferViews?: IGLTFBufferView[];
  244. cameras?: IGLTFCamera[];
  245. extensionsUsed?: string[];
  246. extensionsRequired?: string[];
  247. images?: IGLTFImage[];
  248. materials?: IGLTFMaterial[];
  249. meshes?: IGLTFMesh[];
  250. nodes?: IGLTFNode[];
  251. samplers?: IGLTFSampler[];
  252. scene?: number;
  253. scenes?: IGLTFScene[];
  254. skins?: IGLTFSkin[];
  255. textures?: IGLTFTexture[];
  256. }
  257. }