@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.
53 lines • 2.4 kB
JavaScript
import { Texture } from "@babylonjs/core/Materials/Textures/texture";
import { GLTFLoader } from "../glTFLoader";
var NAME = "KHR_texture_transform";
/**
* [Specification](https://github.com/KhronosGroup/glTF/blob/master/extensions/2.0/Khronos/KHR_texture_transform/README.md)
*/
var KHR_texture_transform = /** @class */ (function () {
/** @hidden */
function KHR_texture_transform(loader) {
/** The name of this extension. */
this.name = NAME;
/** Defines whether this extension is enabled. */
this.enabled = true;
this._loader = loader;
}
/** @hidden */
KHR_texture_transform.prototype.dispose = function () {
delete this._loader;
};
/** @hidden */
KHR_texture_transform.prototype.loadTextureInfoAsync = function (context, textureInfo, assign) {
var _this = this;
return GLTFLoader.LoadExtensionAsync(context, textureInfo, this.name, function (extensionContext, extension) {
return _this._loader.loadTextureInfoAsync(context, textureInfo, function (babylonTexture) {
if (!(babylonTexture instanceof Texture)) {
throw new Error(extensionContext + ": Texture type not supported");
}
if (extension.offset) {
babylonTexture.uOffset = extension.offset[0];
babylonTexture.vOffset = extension.offset[1];
}
// Always rotate around the origin.
babylonTexture.uRotationCenter = 0;
babylonTexture.vRotationCenter = 0;
if (extension.rotation) {
babylonTexture.wAng = -extension.rotation;
}
if (extension.scale) {
babylonTexture.uScale = extension.scale[0];
babylonTexture.vScale = extension.scale[1];
}
if (extension.texCoord != undefined) {
babylonTexture.coordinatesIndex = extension.texCoord;
}
assign(babylonTexture);
});
});
};
return KHR_texture_transform;
}());
export { KHR_texture_transform };
GLTFLoader.RegisterExtension(NAME, function (loader) { return new KHR_texture_transform(loader); });
//# sourceMappingURL=KHR_texture_transform.js.map