index.ts 1.0 KB

12345678910111213141516171819202122232425262728
  1. import { TelemetryLoaderPlugin } from "./telemetryLoaderPlugin";
  2. import { ILoaderPlugin } from "./loaderPlugin";
  3. import { MSFTLodLoaderPlugin } from './msftLodLoaderPlugin';
  4. import { ApplyMaterialConfigPlugin } from './applyMaterialConfig';
  5. import { ExtendedMaterialLoaderPlugin } from './extendedMaterialLoaderPlugin';
  6. const pluginCache: { [key: string]: ILoaderPlugin } = {};
  7. export function getLoaderPluginByName(name: string) {
  8. if (!pluginCache[name]) {
  9. switch (name) {
  10. case 'telemetry':
  11. pluginCache[name] = new TelemetryLoaderPlugin();
  12. break;
  13. case 'msftLod':
  14. pluginCache[name] = new MSFTLodLoaderPlugin();
  15. break;
  16. case 'applyMaterialConfig':
  17. pluginCache[name] = new MSFTLodLoaderPlugin();
  18. break;
  19. case 'extendedMaterial':
  20. pluginCache[name] = new ExtendedMaterialLoaderPlugin();
  21. break;
  22. }
  23. }
  24. return pluginCache[name];
  25. }