UNPKG

@babylonjs/loaders

Version:

The Babylon.js file loaders library is an extension you can use to load different 3D file types into a Babylon scene.

207 lines (206 loc) 5.81 kB
import { AnimationGroup } from "@babylonjs/core/Animations/animationGroup"; import { Bone } from "@babylonjs/core/Bones/bone"; import { Skeleton } from "@babylonjs/core/Bones/skeleton"; import { Material } from "@babylonjs/core/Materials/material"; import { TransformNode } from "@babylonjs/core/Meshes/transformNode"; import { Buffer, VertexBuffer } from "@babylonjs/core/Meshes/buffer"; import { AbstractMesh } from "@babylonjs/core/Meshes/abstractMesh"; import { Mesh } from "@babylonjs/core/Meshes/mesh"; import * as IGLTF2 from "babylonjs-gltf2interface"; /** * Loader interface with an index field. */ export interface IArrayItem { /** * The index of this item in the array. */ index: number; } /** * Loader interface with additional members. */ export interface IAccessor extends IGLTF2.IAccessor, IArrayItem { /** @hidden */ _data?: Promise<ArrayBufferView>; /** @hidden */ _babylonVertexBuffer?: Promise<VertexBuffer>; } /** * Loader interface with additional members. */ export interface IAnimationChannel extends IGLTF2.IAnimationChannel, IArrayItem { } /** @hidden */ export interface _IAnimationSamplerData { input: Float32Array; interpolation: IGLTF2.AnimationSamplerInterpolation; output: Float32Array; } /** * Loader interface with additional members. */ export interface IAnimationSampler extends IGLTF2.IAnimationSampler, IArrayItem { /** @hidden */ _data?: Promise<_IAnimationSamplerData>; } /** * Loader interface with additional members. */ export interface IAnimation extends IGLTF2.IAnimation, IArrayItem { channels: IAnimationChannel[]; samplers: IAnimationSampler[]; /** @hidden */ _babylonAnimationGroup?: AnimationGroup; } /** * Loader interface with additional members. */ export interface IBuffer extends IGLTF2.IBuffer, IArrayItem { /** @hidden */ _data?: Promise<ArrayBufferView>; } /** * Loader interface with additional members. */ export interface IBufferView extends IGLTF2.IBufferView, IArrayItem { /** @hidden */ _data?: Promise<ArrayBufferView>; /** @hidden */ _babylonBuffer?: Promise<Buffer>; } /** * Loader interface with additional members. */ export interface ICamera extends IGLTF2.ICamera, IArrayItem { } /** * Loader interface with additional members. */ export interface IImage extends IGLTF2.IImage, IArrayItem { /** @hidden */ _data?: Promise<ArrayBufferView>; } /** * Loader interface with additional members. */ export interface IMaterialNormalTextureInfo extends IGLTF2.IMaterialNormalTextureInfo, ITextureInfo { } /** * Loader interface with additional members. */ export interface IMaterialOcclusionTextureInfo extends IGLTF2.IMaterialOcclusionTextureInfo, ITextureInfo { } /** * Loader interface with additional members. */ export interface IMaterialPbrMetallicRoughness extends IGLTF2.IMaterialPbrMetallicRoughness { baseColorTexture?: ITextureInfo; metallicRoughnessTexture?: ITextureInfo; } /** * Loader interface with additional members. */ export interface IMaterial extends IGLTF2.IMaterial, IArrayItem { pbrMetallicRoughness?: IMaterialPbrMetallicRoughness; normalTexture?: IMaterialNormalTextureInfo; occlusionTexture?: IMaterialOcclusionTextureInfo; emissiveTexture?: ITextureInfo; /** @hidden */ _data?: { [babylonDrawMode: number]: { babylonMaterial: Material; babylonMeshes: AbstractMesh[]; promise: Promise<void>; }; }; } /** * Loader interface with additional members. */ export interface IMesh extends IGLTF2.IMesh, IArrayItem { primitives: IMeshPrimitive[]; } /** * Loader interface with additional members. */ export interface IMeshPrimitive extends IGLTF2.IMeshPrimitive, IArrayItem { /** @hidden */ _instanceData?: { babylonSourceMesh: Mesh; promise: Promise<any>; }; } /** * Loader interface with additional members. */ export interface INode extends IGLTF2.INode, IArrayItem { /** * The parent glTF node. */ parent?: INode; /** @hidden */ _babylonTransformNode?: TransformNode; /** @hidden */ _primitiveBabylonMeshes?: AbstractMesh[]; /** @hidden */ _babylonBones?: Bone[]; /** @hidden */ _numMorphTargets?: number; } /** @hidden */ export interface _ISamplerData { noMipMaps: boolean; samplingMode: number; wrapU: number; wrapV: number; } /** * Loader interface with additional members. */ export interface ISampler extends IGLTF2.ISampler, IArrayItem { /** @hidden */ _data?: _ISamplerData; } /** * Loader interface with additional members. */ export interface IScene extends IGLTF2.IScene, IArrayItem { } /** * Loader interface with additional members. */ export interface ISkin extends IGLTF2.ISkin, IArrayItem { /** @hidden */ _data?: { babylonSkeleton: Skeleton; promise: Promise<void>; }; } /** * Loader interface with additional members. */ export interface ITexture extends IGLTF2.ITexture, IArrayItem { } /** * Loader interface with additional members. */ export interface ITextureInfo extends IGLTF2.ITextureInfo { } /** * Loader interface with additional members. */ export interface IGLTF extends IGLTF2.IGLTF { accessors?: IAccessor[]; animations?: IAnimation[]; buffers?: IBuffer[]; bufferViews?: IBufferView[]; cameras?: ICamera[]; images?: IImage[]; materials?: IMaterial[]; meshes?: IMesh[]; nodes?: INode[]; samplers?: ISampler[]; scenes?: IScene[]; skins?: ISkin[]; textures?: ITexture[]; }