1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- import { TelemetryLoaderPlugin } from "./telemetryLoaderPlugin";
- import { ILoaderPlugin } from "./loaderPlugin";
- import { MSFTLodLoaderPlugin } from './msftLodLoaderPlugin';
- import { ApplyMaterialConfigPlugin } from './applyMaterialConfig';
- import { ExtendedMaterialLoaderPlugin } from './extendedMaterialLoaderPlugin';
- import { Tools } from "@babylonjs/core/Misc/tools";
- const pluginCache: { [key: string]: ILoaderPlugin } = {};
- export { TelemetryLoaderPlugin, ILoaderPlugin, MSFTLodLoaderPlugin, ApplyMaterialConfigPlugin, ExtendedMaterialLoaderPlugin };
- /**
- * Get a loader plugin according to its name.
- * The plugin will be cached and will be reused if called for again.
- *
- * @param name the name of the plugin
- */
- export function getLoaderPluginByName(name: string) {
- if (!pluginCache[name]) {
- switch (name) {
- case 'telemetry':
- pluginCache[name] = new TelemetryLoaderPlugin();
- break;
- case 'msftLod':
- pluginCache[name] = new MSFTLodLoaderPlugin();
- break;
- case 'applyMaterialConfig':
- pluginCache[name] = new ApplyMaterialConfigPlugin();
- break;
- case 'extendedMaterial':
- pluginCache[name] = new ExtendedMaterialLoaderPlugin();
- break;
- }
- }
- return pluginCache[name];
- }
- /**
- *
- */
- export function addLoaderPlugin(name: string, plugin: ILoaderPlugin) {
- if (pluginCache[name]) {
- Tools.Warn("Overwriting plugin with the same name - " + name);
- }
- pluginCache[name] = plugin;
- }
|