@babylonjs/viewer
Version:
The Babylon Viewer aims to simplify a specific but common Babylon.js use case: loading, viewing, and interacting with a 3D model.
67 lines (64 loc) • 2.06 kB
JavaScript
import { bJ as unregisterGLTFExtension, bI as registerGLTFExtension } from './index-FzOfPXLV.esm.js';
const NAME = "ExtrasAsMetadata";
/**
* Store glTF extras (if present) in BJS objects' metadata
*/
class ExtrasAsMetadata {
_assignExtras(babylonObject, gltfProp) {
if (gltfProp.extras && Object.keys(gltfProp.extras).length > 0) {
const metadata = (babylonObject.metadata = babylonObject.metadata || {});
const gltf = (metadata.gltf = metadata.gltf || {});
gltf.extras = gltfProp.extras;
}
}
/**
* @internal
*/
constructor(loader) {
/**
* The name of this extension.
*/
this.name = NAME;
/**
* Defines whether this extension is enabled.
*/
this.enabled = true;
this._loader = loader;
}
/** @internal */
dispose() {
this._loader = null;
}
/**
* @internal
*/
// eslint-disable-next-line no-restricted-syntax
loadNodeAsync(context, node, assign) {
return this._loader.loadNodeAsync(context, node, (babylonTransformNode) => {
this._assignExtras(babylonTransformNode, node);
assign(babylonTransformNode);
});
}
/**
* @internal
*/
// eslint-disable-next-line no-restricted-syntax
loadCameraAsync(context, camera, assign) {
return this._loader.loadCameraAsync(context, camera, (babylonCamera) => {
this._assignExtras(babylonCamera, camera);
assign(babylonCamera);
});
}
/**
* @internal
*/
createMaterial(context, material, babylonDrawMode) {
const babylonMaterial = this._loader.createMaterial(context, material, babylonDrawMode);
this._assignExtras(babylonMaterial, material);
return babylonMaterial;
}
}
unregisterGLTFExtension(NAME);
registerGLTFExtension(NAME, false, (loader) => new ExtrasAsMetadata(loader));
export { ExtrasAsMetadata };
//# sourceMappingURL=ExtrasAsMetadata-CHJu2F7i.esm.js.map