@babylonjs/core
Version:
Getting started? Play directly with the Babylon.js API using our [playground](https://playground.babylonjs.com/). It also contains a lot of samples to learn how to use it.
37 lines • 1.32 kB
JavaScript
import { Logger } from "./logger.js";
import { GetClass } from "./typeStore.js";
/**
* Class used to enable instantiation of objects by class name
*/
export class InstantiationTools {
/**
* Tries to instantiate a new object from a given class name
* @param className defines the class name to instantiate
* @returns the new object or null if the system was not able to do the instantiation
*/
static Instantiate(className) {
if (this.RegisteredExternalClasses && this.RegisteredExternalClasses[className]) {
return this.RegisteredExternalClasses[className];
}
const internalClass = GetClass(className);
if (internalClass) {
return internalClass;
}
Logger.Warn(className + " not found, you may have missed an import.");
const arr = className.split(".");
let fn = window || this;
for (let i = 0, len = arr.length; i < len; i++) {
fn = fn[arr[i]];
}
if (typeof fn !== "function") {
return null;
}
return fn;
}
}
/**
* Use this object to register external classes like custom textures or material
* to allow the loaders to instantiate them
*/
InstantiationTools.RegisteredExternalClasses = {};
//# sourceMappingURL=instantiationTools.js.map