|
@@ -37,7 +37,7 @@ module BABYLON.GLTF2 {
|
|
|
* Assign an `index` field to each item of the given array.
|
|
|
* @param array The array of items
|
|
|
*/
|
|
|
- public static Assign(array?: IArrayItem[]): void {
|
|
|
+ public static Assign(array?: Loader.IArrayItem[]): void {
|
|
|
if (array) {
|
|
|
for (let index = 0; index < array.length; index++) {
|
|
|
array[index].index = index;
|
|
@@ -51,7 +51,7 @@ module BABYLON.GLTF2 {
|
|
|
*/
|
|
|
export class GLTFLoader implements IGLTFLoader {
|
|
|
/** The glTF object parsed from the JSON. */
|
|
|
- public gltf: ILoaderGLTF;
|
|
|
+ public gltf: Loader.IGLTF;
|
|
|
|
|
|
/** The Babylon scene when loading the asset. */
|
|
|
public babylonScene: Scene;
|
|
@@ -71,7 +71,7 @@ module BABYLON.GLTF2 {
|
|
|
private _progressCallback?: (event: SceneLoaderProgressEvent) => void;
|
|
|
private _requests = new Array<IFileRequestInfo>();
|
|
|
|
|
|
- private static readonly _DefaultSampler: ILoaderSampler = { index: -1 };
|
|
|
+ private static readonly _DefaultSampler: Loader.ISampler = { index: -1 };
|
|
|
|
|
|
private static _ExtensionNames = new Array<string>();
|
|
|
private static _ExtensionFactories: { [name: string]: (loader: GLTFLoader) => IGLTFLoaderExtension } = {};
|
|
@@ -293,7 +293,7 @@ module BABYLON.GLTF2 {
|
|
|
}
|
|
|
|
|
|
private _loadData(data: IGLTFLoaderData): void {
|
|
|
- this.gltf = data.json as ILoaderGLTF;
|
|
|
+ this.gltf = data.json as Loader.IGLTF;
|
|
|
this._setupData();
|
|
|
|
|
|
if (data.bin) {
|
|
@@ -372,10 +372,10 @@ module BABYLON.GLTF2 {
|
|
|
this.log(GLTFLoaderState[this._state]);
|
|
|
}
|
|
|
|
|
|
- private _createRootNode(): ILoaderNode {
|
|
|
+ private _createRootNode(): Loader.INode {
|
|
|
this._rootBabylonMesh = new Mesh("__root__", this.babylonScene);
|
|
|
|
|
|
- const rootNode: ILoaderNode = {
|
|
|
+ const rootNode: Loader.INode = {
|
|
|
_babylonMesh: this._rootBabylonMesh,
|
|
|
index: -1
|
|
|
};
|
|
@@ -408,7 +408,7 @@ module BABYLON.GLTF2 {
|
|
|
* @param scene The glTF scene property
|
|
|
* @returns A promise that resolves when the load is complete
|
|
|
*/
|
|
|
- public loadSceneAsync(context: string, scene: ILoaderScene): Promise<void> {
|
|
|
+ public loadSceneAsync(context: string, scene: Loader.IScene): Promise<void> {
|
|
|
const extensionPromise = this._extensionsLoadSceneAsync(context, scene);
|
|
|
if (extensionPromise) {
|
|
|
return extensionPromise;
|
|
@@ -434,7 +434,7 @@ module BABYLON.GLTF2 {
|
|
|
return Promise.all(promises).then(() => {});
|
|
|
}
|
|
|
|
|
|
- private _forEachPrimitive(node: ILoaderNode, callback: (babylonMesh: Mesh) => void): void {
|
|
|
+ private _forEachPrimitive(node: Loader.INode, callback: (babylonMesh: Mesh) => void): void {
|
|
|
if (node._primitiveBabylonMeshes) {
|
|
|
for (const babylonMesh of node._primitiveBabylonMeshes) {
|
|
|
callback(babylonMesh);
|
|
@@ -533,7 +533,7 @@ module BABYLON.GLTF2 {
|
|
|
* @param assign A function called synchronously after parsing the glTF properties
|
|
|
* @returns A promise that resolves with the loaded Babylon mesh when the load is complete
|
|
|
*/
|
|
|
- public loadNodeAsync(context: string, node: ILoaderNode, assign: (babylonMesh: Mesh) => void = () => {}): Promise<Mesh> {
|
|
|
+ public loadNodeAsync(context: string, node: Loader.INode, assign: (babylonMesh: Mesh) => void = () => {}): Promise<Mesh> {
|
|
|
const extensionPromise = this._extensionsLoadNodeAsync(context, node, assign);
|
|
|
if (extensionPromise) {
|
|
|
return extensionPromise;
|
|
@@ -591,7 +591,7 @@ module BABYLON.GLTF2 {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
- private _loadMeshAsync(context: string, node: ILoaderNode, mesh: ILoaderMesh, babylonMesh: Mesh): Promise<void> {
|
|
|
+ private _loadMeshAsync(context: string, node: Loader.INode, mesh: Loader.IMesh, babylonMesh: Mesh): Promise<void> {
|
|
|
const promises = new Array<Promise<any>>();
|
|
|
|
|
|
this.logOpen(`${context} ${mesh.name || ""}`);
|
|
@@ -630,7 +630,7 @@ module BABYLON.GLTF2 {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
- private _loadMeshPrimitiveAsync(context: string, node: ILoaderNode, mesh: ILoaderMesh, primitive: ILoaderMeshPrimitive, babylonMesh: Mesh): Promise<void> {
|
|
|
+ private _loadMeshPrimitiveAsync(context: string, node: Loader.INode, mesh: Loader.IMesh, primitive: Loader.IMeshPrimitive, babylonMesh: Mesh): Promise<void> {
|
|
|
const promises = new Array<Promise<any>>();
|
|
|
|
|
|
this.logOpen(`${context}`);
|
|
@@ -664,7 +664,7 @@ module BABYLON.GLTF2 {
|
|
|
return Promise.all(promises).then(() => {});
|
|
|
}
|
|
|
|
|
|
- private _loadVertexDataAsync(context: string, primitive: ILoaderMeshPrimitive, babylonMesh: Mesh): Promise<Geometry> {
|
|
|
+ private _loadVertexDataAsync(context: string, primitive: Loader.IMeshPrimitive, babylonMesh: Mesh): Promise<Geometry> {
|
|
|
const extensionPromise = this._extensionsLoadVertexDataAsync(context, primitive, babylonMesh);
|
|
|
if (extensionPromise) {
|
|
|
return extensionPromise;
|
|
@@ -689,7 +689,7 @@ module BABYLON.GLTF2 {
|
|
|
}));
|
|
|
}
|
|
|
|
|
|
- const loadAttribute = (attribute: string, kind: string, callback?: (accessor: ILoaderAccessor) => void) => {
|
|
|
+ const loadAttribute = (attribute: string, kind: string, callback?: (accessor: Loader.IAccessor) => void) => {
|
|
|
if (attributes[attribute] == undefined) {
|
|
|
return;
|
|
|
}
|
|
@@ -727,7 +727,7 @@ module BABYLON.GLTF2 {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
- private _createMorphTargets(context: string, node: ILoaderNode, mesh: ILoaderMesh, primitive: ILoaderMeshPrimitive, babylonMesh: Mesh): void {
|
|
|
+ private _createMorphTargets(context: string, node: Loader.INode, mesh: Loader.IMesh, primitive: Loader.IMeshPrimitive, babylonMesh: Mesh): void {
|
|
|
if (!primitive.targets) {
|
|
|
return;
|
|
|
}
|
|
@@ -747,7 +747,7 @@ module BABYLON.GLTF2 {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private _loadMorphTargetsAsync(context: string, primitive: ILoaderMeshPrimitive, babylonMesh: Mesh, babylonGeometry: Geometry): Promise<void> {
|
|
|
+ private _loadMorphTargetsAsync(context: string, primitive: Loader.IMeshPrimitive, babylonMesh: Mesh, babylonGeometry: Geometry): Promise<void> {
|
|
|
if (!primitive.targets) {
|
|
|
return Promise.resolve();
|
|
|
}
|
|
@@ -814,7 +814,7 @@ module BABYLON.GLTF2 {
|
|
|
return Promise.all(promises).then(() => {});
|
|
|
}
|
|
|
|
|
|
- private static _LoadTransform(node: ILoaderNode, babylonNode: TransformNode): void {
|
|
|
+ private static _LoadTransform(node: Loader.INode, babylonNode: TransformNode): void {
|
|
|
let position = Vector3.Zero();
|
|
|
let rotation = Quaternion.Identity();
|
|
|
let scaling = Vector3.One();
|
|
@@ -834,7 +834,7 @@ module BABYLON.GLTF2 {
|
|
|
babylonNode.scaling = scaling;
|
|
|
}
|
|
|
|
|
|
- private _loadSkinAsync(context: string, node: ILoaderNode, skin: ILoaderSkin): Promise<void> {
|
|
|
+ private _loadSkinAsync(context: string, node: Loader.INode, skin: Loader.ISkin): Promise<void> {
|
|
|
const assignSkeleton = (skeleton: Skeleton) => {
|
|
|
this._forEachPrimitive(node, babylonMesh => {
|
|
|
babylonMesh.skeleton = skeleton;
|
|
@@ -864,7 +864,7 @@ module BABYLON.GLTF2 {
|
|
|
}));
|
|
|
}
|
|
|
|
|
|
- private _loadBones(context: string, skin: ILoaderSkin): void {
|
|
|
+ private _loadBones(context: string, skin: Loader.ISkin): void {
|
|
|
const babylonBones: { [index: number]: Bone } = {};
|
|
|
for (const index of skin.joints) {
|
|
|
const node = ArrayItem.Get(`${context}/joints/${index}`, this.gltf.nodes, index);
|
|
@@ -872,7 +872,7 @@ module BABYLON.GLTF2 {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private _loadBone(node: ILoaderNode, skin: ILoaderSkin, babylonBones: { [index: number]: Bone }): Bone {
|
|
|
+ private _loadBone(node: Loader.INode, skin: Loader.ISkin, babylonBones: { [index: number]: Bone }): Bone {
|
|
|
let babylonBone = babylonBones[node.index];
|
|
|
if (babylonBone) {
|
|
|
return babylonBone;
|
|
@@ -894,7 +894,7 @@ module BABYLON.GLTF2 {
|
|
|
return babylonBone;
|
|
|
}
|
|
|
|
|
|
- private _loadSkinInverseBindMatricesDataAsync(context: string, skin: ILoaderSkin): Promise<Nullable<Float32Array>> {
|
|
|
+ private _loadSkinInverseBindMatricesDataAsync(context: string, skin: Loader.ISkin): Promise<Nullable<Float32Array>> {
|
|
|
if (skin.inverseBindMatrices == undefined) {
|
|
|
return Promise.resolve(null);
|
|
|
}
|
|
@@ -922,7 +922,7 @@ module BABYLON.GLTF2 {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private _getNodeMatrix(node: ILoaderNode): Matrix {
|
|
|
+ private _getNodeMatrix(node: Loader.INode): Matrix {
|
|
|
return node.matrix ?
|
|
|
Matrix.FromArray(node.matrix) :
|
|
|
Matrix.Compose(
|
|
@@ -938,7 +938,7 @@ module BABYLON.GLTF2 {
|
|
|
* @param assign A function called synchronously after parsing the glTF properties
|
|
|
* @returns A promise that resolves with the loaded Babylon camera when the load is complete
|
|
|
*/
|
|
|
- public loadCameraAsync(context: string, camera: ILoaderCamera, assign: (babylonCamera: Camera) => void = () => {}): Promise<Camera> {
|
|
|
+ public loadCameraAsync(context: string, camera: Loader.ICamera, assign: (babylonCamera: Camera) => void = () => {}): Promise<Camera> {
|
|
|
const extensionPromise = this._extensionsLoadCameraAsync(context, camera, assign);
|
|
|
if (extensionPromise) {
|
|
|
return extensionPromise;
|
|
@@ -1012,7 +1012,7 @@ module BABYLON.GLTF2 {
|
|
|
* @param animation The glTF animation property
|
|
|
* @returns A promise that resolves with the loaded Babylon animation group when the load is complete
|
|
|
*/
|
|
|
- public loadAnimationAsync(context: string, animation: ILoaderAnimation): Promise<AnimationGroup> {
|
|
|
+ public loadAnimationAsync(context: string, animation: Loader.IAnimation): Promise<AnimationGroup> {
|
|
|
const promise = this._extensionsLoadAnimationAsync(context, animation);
|
|
|
if (promise) {
|
|
|
return promise;
|
|
@@ -1036,7 +1036,7 @@ module BABYLON.GLTF2 {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
- private _loadAnimationChannelAsync(context: string, animationContext: string, animation: ILoaderAnimation, channel: ILoaderAnimationChannel, babylonAnimationGroup: AnimationGroup): Promise<void> {
|
|
|
+ private _loadAnimationChannelAsync(context: string, animationContext: string, animation: Loader.IAnimation, channel: Loader.IAnimationChannel, babylonAnimationGroup: AnimationGroup): Promise<void> {
|
|
|
const targetNode = ArrayItem.Get(`${context}/target/node`, this.gltf.nodes, channel.target.node);
|
|
|
|
|
|
// Ignore animations that have no animation targets.
|
|
@@ -1192,7 +1192,7 @@ module BABYLON.GLTF2 {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
- private _loadAnimationSamplerAsync(context: string, sampler: ILoaderAnimationSampler): Promise<_ILoaderAnimationSamplerData> {
|
|
|
+ private _loadAnimationSamplerAsync(context: string, sampler: Loader.IAnimationSampler): Promise<Loader._IAnimationSamplerData> {
|
|
|
if (sampler._data) {
|
|
|
return sampler._data;
|
|
|
}
|
|
@@ -1225,7 +1225,7 @@ module BABYLON.GLTF2 {
|
|
|
return sampler._data;
|
|
|
}
|
|
|
|
|
|
- private _loadBufferAsync(context: string, buffer: ILoaderBuffer): Promise<ArrayBufferView> {
|
|
|
+ private _loadBufferAsync(context: string, buffer: Loader.IBuffer): Promise<ArrayBufferView> {
|
|
|
if (buffer._data) {
|
|
|
return buffer._data;
|
|
|
}
|
|
@@ -1245,7 +1245,7 @@ module BABYLON.GLTF2 {
|
|
|
* @param bufferView The glTF buffer view property
|
|
|
* @returns A promise that resolves with the loaded data when the load is complete
|
|
|
*/
|
|
|
- public loadBufferViewAsync(context: string, bufferView: ILoaderBufferView): Promise<ArrayBufferView> {
|
|
|
+ public loadBufferViewAsync(context: string, bufferView: Loader.IBufferView): Promise<ArrayBufferView> {
|
|
|
if (bufferView._data) {
|
|
|
return bufferView._data;
|
|
|
}
|
|
@@ -1263,7 +1263,7 @@ module BABYLON.GLTF2 {
|
|
|
return bufferView._data;
|
|
|
}
|
|
|
|
|
|
- private _loadIndicesAccessorAsync(context: string, accessor: ILoaderAccessor): Promise<IndicesArray> {
|
|
|
+ private _loadIndicesAccessorAsync(context: string, accessor: Loader.IAccessor): Promise<IndicesArray> {
|
|
|
if (accessor.type !== AccessorType.SCALAR) {
|
|
|
throw new Error(`${context}/type: Invalid value ${accessor.type}`);
|
|
|
}
|
|
@@ -1286,7 +1286,7 @@ module BABYLON.GLTF2 {
|
|
|
return accessor._data as Promise<IndicesArray>;
|
|
|
}
|
|
|
|
|
|
- private _loadFloatAccessorAsync(context: string, accessor: ILoaderAccessor): Promise<Float32Array> {
|
|
|
+ private _loadFloatAccessorAsync(context: string, accessor: Loader.IAccessor): Promise<Float32Array> {
|
|
|
// TODO: support normalized and stride
|
|
|
|
|
|
if (accessor.componentType !== AccessorComponentType.FLOAT) {
|
|
@@ -1338,7 +1338,7 @@ module BABYLON.GLTF2 {
|
|
|
return accessor._data as Promise<Float32Array>;
|
|
|
}
|
|
|
|
|
|
- private _loadVertexBufferViewAsync(bufferView: ILoaderBufferView, kind: string): Promise<Buffer> {
|
|
|
+ private _loadVertexBufferViewAsync(bufferView: Loader.IBufferView, kind: string): Promise<Buffer> {
|
|
|
if (bufferView._babylonBuffer) {
|
|
|
return bufferView._babylonBuffer;
|
|
|
}
|
|
@@ -1350,7 +1350,7 @@ module BABYLON.GLTF2 {
|
|
|
return bufferView._babylonBuffer;
|
|
|
}
|
|
|
|
|
|
- private _loadVertexAccessorAsync(context: string, accessor: ILoaderAccessor, kind: string): Promise<VertexBuffer> {
|
|
|
+ private _loadVertexAccessorAsync(context: string, accessor: Loader.IAccessor, kind: string): Promise<VertexBuffer> {
|
|
|
if (accessor._babylonVertexBuffer) {
|
|
|
return accessor._babylonVertexBuffer;
|
|
|
}
|
|
@@ -1379,7 +1379,7 @@ module BABYLON.GLTF2 {
|
|
|
return accessor._babylonVertexBuffer;
|
|
|
}
|
|
|
|
|
|
- private _loadMaterialMetallicRoughnessPropertiesAsync(context: string, material: ILoaderMaterial, properties: ILoaderMaterialPbrMetallicRoughness, babylonMaterial: Material): Promise<void> {
|
|
|
+ private _loadMaterialMetallicRoughnessPropertiesAsync(context: string, properties: Loader.IMaterialPbrMetallicRoughness, babylonMaterial: Material): Promise<void> {
|
|
|
if (!(babylonMaterial instanceof PBRMaterial)) {
|
|
|
throw new Error(`${context}: Material type not supported`);
|
|
|
}
|
|
@@ -1419,7 +1419,7 @@ module BABYLON.GLTF2 {
|
|
|
}
|
|
|
|
|
|
/** @hidden */
|
|
|
- public _loadMaterialAsync(context: string, material: ILoaderMaterial, babylonMesh: Mesh, babylonDrawMode: number, assign: (babylonMaterial: Material) => void = () => {}): Promise<Material> {
|
|
|
+ public _loadMaterialAsync(context: string, material: Loader.IMaterial, babylonMesh: Mesh, babylonDrawMode: number, assign: (babylonMaterial: Material) => void = () => {}): Promise<Material> {
|
|
|
const extensionPromise = this._extensionsLoadMaterialAsync(context, material, babylonMesh, babylonDrawMode, assign);
|
|
|
if (extensionPromise) {
|
|
|
return extensionPromise;
|
|
@@ -1481,7 +1481,7 @@ module BABYLON.GLTF2 {
|
|
|
* @param babylonDrawMode The draw mode for the Babylon material
|
|
|
* @returns The Babylon material
|
|
|
*/
|
|
|
- public createMaterial(context: string, material: ILoaderMaterial, babylonDrawMode: number): Material {
|
|
|
+ public createMaterial(context: string, material: Loader.IMaterial, babylonDrawMode: number): Material {
|
|
|
const extensionPromise = this._extensionsCreateMaterial(context, material, babylonDrawMode);
|
|
|
if (extensionPromise) {
|
|
|
return extensionPromise;
|
|
@@ -1498,7 +1498,7 @@ module BABYLON.GLTF2 {
|
|
|
* @param babylonMaterial The Babylon material
|
|
|
* @returns A promise that resolves when the load is complete
|
|
|
*/
|
|
|
- public loadMaterialPropertiesAsync(context: string, material: ILoaderMaterial, babylonMaterial: Material): Promise<void> {
|
|
|
+ public loadMaterialPropertiesAsync(context: string, material: Loader.IMaterial, babylonMaterial: Material): Promise<void> {
|
|
|
const extensionPromise = this._extensionsLoadMaterialPropertiesAsync(context, material, babylonMaterial);
|
|
|
if (extensionPromise) {
|
|
|
return extensionPromise;
|
|
@@ -1509,7 +1509,7 @@ module BABYLON.GLTF2 {
|
|
|
promises.push(this.loadMaterialBasePropertiesAsync(context, material, babylonMaterial));
|
|
|
|
|
|
if (material.pbrMetallicRoughness) {
|
|
|
- promises.push(this._loadMaterialMetallicRoughnessPropertiesAsync(`${context}/pbrMetallicRoughness`, material, material.pbrMetallicRoughness, babylonMaterial));
|
|
|
+ promises.push(this._loadMaterialMetallicRoughnessPropertiesAsync(`${context}/pbrMetallicRoughness`, material.pbrMetallicRoughness, babylonMaterial));
|
|
|
}
|
|
|
|
|
|
this.loadMaterialAlphaProperties(context, material, babylonMaterial);
|
|
@@ -1524,7 +1524,7 @@ module BABYLON.GLTF2 {
|
|
|
* @param babylonMaterial The Babylon material
|
|
|
* @returns A promise that resolves when the load is complete
|
|
|
*/
|
|
|
- public loadMaterialBasePropertiesAsync(context: string, material: ILoaderMaterial, babylonMaterial: Material): Promise<void> {
|
|
|
+ public loadMaterialBasePropertiesAsync(context: string, material: Loader.IMaterial, babylonMaterial: Material): Promise<void> {
|
|
|
if (!(babylonMaterial instanceof PBRMaterial)) {
|
|
|
throw new Error(`${context}: Material type not supported`);
|
|
|
}
|
|
@@ -1576,7 +1576,7 @@ module BABYLON.GLTF2 {
|
|
|
* @param material The glTF material property
|
|
|
* @param babylonMaterial The Babylon material
|
|
|
*/
|
|
|
- public loadMaterialAlphaProperties(context: string, material: ILoaderMaterial, babylonMaterial: Material): void {
|
|
|
+ public loadMaterialAlphaProperties(context: string, material: Loader.IMaterial, babylonMaterial: Material): void {
|
|
|
if (!(babylonMaterial instanceof PBRMaterial)) {
|
|
|
throw new Error(`${context}: Material type not supported`);
|
|
|
}
|
|
@@ -1616,7 +1616,7 @@ module BABYLON.GLTF2 {
|
|
|
* @param assign A function called synchronously after parsing the glTF properties
|
|
|
* @returns A promise that resolves with the loaded Babylon texture when the load is complete
|
|
|
*/
|
|
|
- public loadTextureInfoAsync(context: string, textureInfo: ILoaderTextureInfo, assign: (babylonTexture: BaseTexture) => void = () => {}): Promise<BaseTexture> {
|
|
|
+ public loadTextureInfoAsync(context: string, textureInfo: Loader.ITextureInfo, assign: (babylonTexture: BaseTexture) => void = () => {}): Promise<BaseTexture> {
|
|
|
const extensionPromise = this._extensionsLoadTextureInfoAsync(context, textureInfo, assign);
|
|
|
if (extensionPromise) {
|
|
|
return extensionPromise;
|
|
@@ -1635,7 +1635,7 @@ module BABYLON.GLTF2 {
|
|
|
return promise;
|
|
|
}
|
|
|
|
|
|
- private _loadTextureAsync(context: string, texture: ILoaderTexture, assign: (babylonTexture: BaseTexture) => void = () => {}): Promise<BaseTexture> {
|
|
|
+ private _loadTextureAsync(context: string, texture: Loader.ITexture, assign: (babylonTexture: BaseTexture) => void = () => {}): Promise<BaseTexture> {
|
|
|
const promises = new Array<Promise<any>>();
|
|
|
|
|
|
this.logOpen(`${context} ${texture.name || ""}`);
|
|
@@ -1676,7 +1676,7 @@ module BABYLON.GLTF2 {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
- private _loadSampler(context: string, sampler: ILoaderSampler): _ILoaderSamplerData {
|
|
|
+ private _loadSampler(context: string, sampler: Loader.ISampler): Loader._ISamplerData {
|
|
|
if (!sampler._data) {
|
|
|
sampler._data = {
|
|
|
noMipMaps: (sampler.minFilter === TextureMinFilter.NEAREST || sampler.minFilter === TextureMinFilter.LINEAR),
|
|
@@ -1695,7 +1695,7 @@ module BABYLON.GLTF2 {
|
|
|
* @param image The glTF image property
|
|
|
* @returns A promise that resolves with the loaded data when the load is complete
|
|
|
*/
|
|
|
- public loadImageAsync(context: string, image: ILoaderImage): Promise<ArrayBufferView> {
|
|
|
+ public loadImageAsync(context: string, image: Loader.IImage): Promise<ArrayBufferView> {
|
|
|
if (!image._data) {
|
|
|
this.logOpen(`${context} ${image.name || ""}`);
|
|
|
|
|
@@ -1810,7 +1810,7 @@ module BABYLON.GLTF2 {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private static _GetTextureSamplingMode(context: string, sampler: ILoaderSampler): number {
|
|
|
+ private static _GetTextureSamplingMode(context: string, sampler: Loader.ISampler): number {
|
|
|
// Set defaults if undefined
|
|
|
const magFilter = sampler.magFilter == undefined ? TextureMagFilter.LINEAR : sampler.magFilter;
|
|
|
const minFilter = sampler.minFilter == undefined ? TextureMinFilter.LINEAR_MIPMAP_LINEAR : sampler.minFilter;
|
|
@@ -1994,39 +1994,39 @@ module BABYLON.GLTF2 {
|
|
|
this._forEachExtensions(extension => extension.onReady && extension.onReady());
|
|
|
}
|
|
|
|
|
|
- private _extensionsLoadSceneAsync(context: string, scene: ILoaderScene): Nullable<Promise<void>> {
|
|
|
+ private _extensionsLoadSceneAsync(context: string, scene: Loader.IScene): Nullable<Promise<void>> {
|
|
|
return this._applyExtensions(scene, extension => extension.loadSceneAsync && extension.loadSceneAsync(context, scene));
|
|
|
}
|
|
|
|
|
|
- private _extensionsLoadNodeAsync(context: string, node: ILoaderNode, assign: (babylonMesh: Mesh) => void): Nullable<Promise<Mesh>> {
|
|
|
+ private _extensionsLoadNodeAsync(context: string, node: Loader.INode, assign: (babylonMesh: Mesh) => void): Nullable<Promise<Mesh>> {
|
|
|
return this._applyExtensions(node, extension => extension.loadNodeAsync && extension.loadNodeAsync(context, node, assign));
|
|
|
}
|
|
|
|
|
|
- private _extensionsLoadCameraAsync(context: string, camera: ILoaderCamera, assign: (babylonCamera: Camera) => void): Nullable<Promise<Camera>> {
|
|
|
+ private _extensionsLoadCameraAsync(context: string, camera: Loader.ICamera, assign: (babylonCamera: Camera) => void): Nullable<Promise<Camera>> {
|
|
|
return this._applyExtensions(camera, extension => extension.loadCameraAsync && extension.loadCameraAsync(context, camera, assign));
|
|
|
}
|
|
|
|
|
|
- private _extensionsLoadVertexDataAsync(context: string, primitive: ILoaderMeshPrimitive, babylonMesh: Mesh): Nullable<Promise<Geometry>> {
|
|
|
+ private _extensionsLoadVertexDataAsync(context: string, primitive: Loader.IMeshPrimitive, babylonMesh: Mesh): Nullable<Promise<Geometry>> {
|
|
|
return this._applyExtensions(primitive, extension => extension._loadVertexDataAsync && extension._loadVertexDataAsync(context, primitive, babylonMesh));
|
|
|
}
|
|
|
|
|
|
- private _extensionsLoadMaterialAsync(context: string, material: ILoaderMaterial, babylonMesh: Mesh, babylonDrawMode: number, assign: (babylonMaterial: Material) => void): Nullable<Promise<Material>> {
|
|
|
+ private _extensionsLoadMaterialAsync(context: string, material: Loader.IMaterial, babylonMesh: Mesh, babylonDrawMode: number, assign: (babylonMaterial: Material) => void): Nullable<Promise<Material>> {
|
|
|
return this._applyExtensions(material, extension => extension._loadMaterialAsync && extension._loadMaterialAsync(context, material, babylonMesh, babylonDrawMode, assign));
|
|
|
}
|
|
|
|
|
|
- private _extensionsCreateMaterial(context: string, material: ILoaderMaterial, babylonDrawMode: number): Nullable<Material> {
|
|
|
+ private _extensionsCreateMaterial(context: string, material: Loader.IMaterial, babylonDrawMode: number): Nullable<Material> {
|
|
|
return this._applyExtensions({}, extension => extension.createMaterial && extension.createMaterial(context, material, babylonDrawMode));
|
|
|
}
|
|
|
|
|
|
- private _extensionsLoadMaterialPropertiesAsync(context: string, material: ILoaderMaterial, babylonMaterial: Material): Nullable<Promise<void>> {
|
|
|
+ private _extensionsLoadMaterialPropertiesAsync(context: string, material: Loader.IMaterial, babylonMaterial: Material): Nullable<Promise<void>> {
|
|
|
return this._applyExtensions(material, extension => extension.loadMaterialPropertiesAsync && extension.loadMaterialPropertiesAsync(context, material, babylonMaterial));
|
|
|
}
|
|
|
|
|
|
- private _extensionsLoadTextureInfoAsync(context: string, textureInfo: ITextureInfo, assign: (babylonTexture: BaseTexture) => void): Nullable<Promise<BaseTexture>> {
|
|
|
+ private _extensionsLoadTextureInfoAsync(context: string, textureInfo: Loader.ITextureInfo, assign: (babylonTexture: BaseTexture) => void): Nullable<Promise<BaseTexture>> {
|
|
|
return this._applyExtensions(textureInfo, extension => extension.loadTextureInfoAsync && extension.loadTextureInfoAsync(context, textureInfo, assign));
|
|
|
}
|
|
|
|
|
|
- private _extensionsLoadAnimationAsync(context: string, animation: ILoaderAnimation): Nullable<Promise<AnimationGroup>> {
|
|
|
+ private _extensionsLoadAnimationAsync(context: string, animation: Loader.IAnimation): Nullable<Promise<AnimationGroup>> {
|
|
|
return this._applyExtensions(animation, extension => extension.loadAnimationAsync && extension.loadAnimationAsync(context, animation));
|
|
|
}
|
|
|
|