@needle-tools/engine 4.5.0-alpha.1 → 4.5.0-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/CHANGELOG.md +15 -1
  2. package/dist/{needle-engine.bundle-3d05185b.js → needle-engine.bundle-1b8f44f4.js} +4945 -4907
  3. package/dist/{needle-engine.bundle-b2e17f0e.light.min.js → needle-engine.bundle-56f095f1.light.min.js} +125 -119
  4. package/dist/{needle-engine.bundle-d7d53476.light.umd.cjs → needle-engine.bundle-9fe9a394.light.umd.cjs} +137 -131
  5. package/dist/{needle-engine.bundle-e4ae93a2.min.js → needle-engine.bundle-baacde19.min.js} +125 -119
  6. package/dist/{needle-engine.bundle-c44e02c7.light.js → needle-engine.bundle-d710d96f.light.js} +4947 -4909
  7. package/dist/{needle-engine.bundle-f496c70e.umd.cjs → needle-engine.bundle-ef2b8438.umd.cjs} +135 -129
  8. package/dist/needle-engine.js +467 -471
  9. package/dist/needle-engine.light.js +467 -471
  10. package/dist/needle-engine.light.min.js +1 -1
  11. package/dist/needle-engine.light.umd.cjs +1 -1
  12. package/dist/needle-engine.min.js +1 -1
  13. package/dist/needle-engine.umd.cjs +1 -1
  14. package/lib/engine/api.d.ts +2 -1
  15. package/lib/engine/api.js +2 -1
  16. package/lib/engine/api.js.map +1 -1
  17. package/lib/engine/engine_context_registry.d.ts +2 -2
  18. package/lib/engine/engine_context_registry.js +2 -2
  19. package/lib/engine/engine_context_registry.js.map +1 -1
  20. package/lib/engine/engine_gltf.d.ts +2 -2
  21. package/lib/engine/engine_gltf_builtin_components.d.ts +5 -1
  22. package/lib/engine/engine_gltf_builtin_components.js +2 -2
  23. package/lib/engine/engine_gltf_builtin_components.js.map +1 -1
  24. package/lib/engine/engine_loaders.callbacks.d.ts +62 -0
  25. package/lib/engine/engine_loaders.callbacks.js +56 -0
  26. package/lib/engine/engine_loaders.callbacks.js.map +1 -0
  27. package/lib/engine/engine_loaders.d.ts +44 -9
  28. package/lib/engine/engine_loaders.gltf.d.ts +13 -0
  29. package/lib/engine/engine_loaders.gltf.js +63 -0
  30. package/lib/engine/engine_loaders.gltf.js.map +1 -0
  31. package/lib/engine/engine_loaders.js +305 -48
  32. package/lib/engine/engine_loaders.js.map +1 -1
  33. package/lib/engine/engine_types.d.ts +7 -1
  34. package/lib/engine/engine_types.js +7 -0
  35. package/lib/engine/engine_types.js.map +1 -1
  36. package/lib/engine/engine_utils_format.d.ts +5 -3
  37. package/lib/engine/engine_utils_format.js +26 -10
  38. package/lib/engine/engine_utils_format.js.map +1 -1
  39. package/lib/engine/extensions/extensions.d.ts +3 -2
  40. package/lib/engine/extensions/extensions.js +10 -6
  41. package/lib/engine/extensions/extensions.js.map +1 -1
  42. package/lib/engine/webcomponents/needle-engine.attributes.d.ts +3 -6
  43. package/lib/engine/webcomponents/needle-engine.js +2 -2
  44. package/lib/engine/webcomponents/needle-engine.js.map +1 -1
  45. package/lib/engine/webcomponents/needle-engine.loading.js +26 -34
  46. package/lib/engine/webcomponents/needle-engine.loading.js.map +1 -1
  47. package/lib/engine-components/AvatarLoader.js +1 -1
  48. package/lib/engine-components/AvatarLoader.js.map +1 -1
  49. package/lib/engine-components/ContactShadows.d.ts +12 -0
  50. package/lib/engine-components/ContactShadows.js +23 -0
  51. package/lib/engine-components/ContactShadows.js.map +1 -1
  52. package/lib/engine-components/webxr/controllers/XRControllerModel.js +4 -3
  53. package/lib/engine-components/webxr/controllers/XRControllerModel.js.map +1 -1
  54. package/package.json +1 -1
  55. package/src/engine/api.ts +2 -1
  56. package/src/engine/engine_context_registry.ts +2 -2
  57. package/src/engine/engine_gltf.ts +2 -2
  58. package/src/engine/engine_gltf_builtin_components.ts +7 -7
  59. package/src/engine/engine_loaders.callbacks.ts +88 -0
  60. package/src/engine/engine_loaders.gltf.ts +82 -0
  61. package/src/engine/engine_loaders.ts +332 -54
  62. package/src/engine/engine_types.ts +34 -18
  63. package/src/engine/engine_utils_format.ts +32 -14
  64. package/src/engine/extensions/extensions.ts +12 -7
  65. package/src/engine/webcomponents/needle-engine.attributes.ts +3 -6
  66. package/src/engine/webcomponents/needle-engine.loading.ts +28 -36
  67. package/src/engine/webcomponents/needle-engine.ts +2 -2
  68. package/src/engine-components/AvatarLoader.ts +1 -1
  69. package/src/engine-components/ContactShadows.ts +24 -0
  70. package/src/engine-components/webxr/controllers/XRControllerModel.ts +4 -5
  71. package/src/engine/engine_scenetools.ts +0 -379
@@ -1,7 +1,11 @@
1
1
  import "./codegen/register_types.js";
2
+ import { Object3D } from "three";
2
3
  import { SerializationContext } from "./engine_serialization_core.js";
3
4
  import { Context } from "./engine_setup.js";
4
5
  import type { IComponent, SourceIdentifier, UIDProvider } from "./engine_types.js";
5
6
  import { NEEDLE_components } from "./extensions/NEEDLE_components.js";
7
+ import { type GLTF } from "three/examples/jsm/loaders/GLTFLoader.js";
6
8
  export declare function writeBuiltinComponentData(comp: IComponent, context: SerializationContext): object | null;
7
- export declare function createBuiltinComponents(context: Context, gltfId: SourceIdentifier, gltf: any, seed?: number | null | UIDProvider, extension?: NEEDLE_components): Promise<void>;
9
+ export declare function createBuiltinComponents(context: Context, gltfId: SourceIdentifier, gltf: GLTF & {
10
+ children?: Array<Object3D>;
11
+ }, seed?: number | null | UIDProvider, extension?: NEEDLE_components): Promise<void>;
@@ -59,6 +59,7 @@ export async function createBuiltinComponents(context, gltfId, gltf, seed = null
59
59
  await onCreateBuiltinComponents(serializationContext, scene, deserializeQueue, lateResolve);
60
60
  }
61
61
  }
62
+ // TODO: when is the gltf here an object3d?
62
63
  if (gltf.children) {
63
64
  for (const ch of gltf.children) {
64
65
  await onCreateBuiltinComponents(serializationContext, ch, deserializeQueue, lateResolve);
@@ -85,6 +86,7 @@ export async function createBuiltinComponents(context, gltfId, gltf, seed = null
85
86
  // TODO: should we do this after setup callbacks now?
86
87
  const guidsMap = {};
87
88
  const resolveGuids = [];
89
+ // TODO: when is the gltf here an object3d?
88
90
  recursiveCreateGuids(gltf, idProvider, guidsMap, resolveGuids);
89
91
  for (const scene of gltf.scenes)
90
92
  recursiveCreateGuids(scene, idProvider, guidsMap, resolveGuids);
@@ -94,8 +96,6 @@ export async function createBuiltinComponents(context, gltfId, gltf, seed = null
94
96
  }
95
97
  }
96
98
  });
97
- // tools.findAnimationsLate(context, gltf, context.new_scripts_pre_setup_callbacks);
98
- // console.log("finished creating builtin components", gltf.scene?.name, gltf);
99
99
  }
100
100
  const originalComponentNameKey = Symbol("original-component-name");
101
101
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"engine_gltf_builtin_components.js","sourceRoot":"","sources":["../../src/engine/engine_gltf_builtin_components.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine_gltf_builtin_components.js","sourceRoot":"","sources":["../../src/engine/engine_gltf_builtin_components.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ import { BufferGeometry, Object3D } from "three";
2
+ import { Context } from "./engine_setup.js";
3
+ import { CustomModel } from "./engine_types.js";
4
+ import { type FileType } from "./engine_utils_format.js";
5
+ export type ValidLoaderReturnType = CustomModel | Object3D | BufferGeometry;
6
+ /** @internal */
7
+ export type CustomLoader = {
8
+ /** The name of the loader. This is used for debugging purposes. */
9
+ name?: string;
10
+ /** Load the model from the given URL. This method should return a promise that resolves to the loaded model. */
11
+ loadAsync: (url: string, onProgress?: ((event: ProgressEvent<EventTarget>) => void) | undefined) => Promise<ValidLoaderReturnType>;
12
+ /** Load the model given a buffer. This method should return the loaded model. */
13
+ parse: (buffer: ArrayBuffer | string, path: string) => ValidLoaderReturnType;
14
+ };
15
+ type CustomLoaderCallback = (args: {
16
+ context: Context;
17
+ url: string;
18
+ filetype: FileType;
19
+ }) => CustomLoader | null | undefined | void;
20
+ /** @internal */
21
+ export declare const registeredModelLoaderCallbacks: Array<CustomLoaderCallback>;
22
+ type FileTypeCallback = (args: {
23
+ /** The URL of the file to load */
24
+ url: string;
25
+ /** The response of the range request with the first few bytes of the file (bytes are available in the 'args.bytes' property of this callback) */
26
+ response: Response;
27
+ /** The mimetype of the file as provided by the request header */
28
+ contentType: string | null;
29
+ /** The first few bytes of the file as a Uint8Array */
30
+ bytes: Uint8Array;
31
+ }) => FileType | null;
32
+ /** @internal */
33
+ export declare const registeredFileTypeCallbacks: Array<FileTypeCallback>;
34
+ /**
35
+ * NeedleEngineModelLoader is a namespace that provides functions to register custom model loaders and mimetype callbacks.
36
+ * It allows you to create custom loaders for specific file types and determine the mimetype of files based on their content.
37
+ */
38
+ export declare namespace NeedleEngineModelLoader {
39
+ /**
40
+ * Register a custom loader callback. For every file that is requested this callback is called with the url and mimetype. It should return a custom loader or null if it does not want to handle the file.
41
+ * @param callback The callback to register
42
+ * @returns A function to unregister the callback
43
+ * @example
44
+ * ```ts
45
+ * import { onCreateModelLoader } from "@needle-tools/engine";
46
+ * const unregister = onCreateModelLoader((url, mimetype) => {
47
+ * if (mimetype === "application/vnd.usdz+zip") {
48
+ * return new CustomLoader();
49
+ * }
50
+ * return null;
51
+ * });
52
+ */
53
+ function onCreateCustomModelLoader(callback: CustomLoaderCallback): () => void;
54
+ /**
55
+ * Register a callback to determine the mimetype of a file. This is to support custom loaders. The callback will provide the URL of the file to load + a range request response with the first few bytes of the file. The callback should return a mimetype or null if it does not want to handle the file.
56
+ * @param callback The callback to register
57
+ * @returns A function to unregister the callback
58
+ *
59
+ */
60
+ function onDetermineModelFiletype(callback: FileTypeCallback): (() => void);
61
+ }
62
+ export {};
@@ -0,0 +1,56 @@
1
+ /** @internal */
2
+ export const registeredModelLoaderCallbacks = [];
3
+ /** @internal */
4
+ export const registeredFileTypeCallbacks = [];
5
+ /**
6
+ * NeedleEngineModelLoader is a namespace that provides functions to register custom model loaders and mimetype callbacks.
7
+ * It allows you to create custom loaders for specific file types and determine the mimetype of files based on their content.
8
+ */
9
+ export var NeedleEngineModelLoader;
10
+ (function (NeedleEngineModelLoader) {
11
+ // export type ModelLoaderPlugin = {
12
+ // name: string,
13
+ // canLoad: (url: string, mimetype: string) => boolean,
14
+ // }
15
+ /**
16
+ * Register a custom loader callback. For every file that is requested this callback is called with the url and mimetype. It should return a custom loader or null if it does not want to handle the file.
17
+ * @param callback The callback to register
18
+ * @returns A function to unregister the callback
19
+ * @example
20
+ * ```ts
21
+ * import { onCreateModelLoader } from "@needle-tools/engine";
22
+ * const unregister = onCreateModelLoader((url, mimetype) => {
23
+ * if (mimetype === "application/vnd.usdz+zip") {
24
+ * return new CustomLoader();
25
+ * }
26
+ * return null;
27
+ * });
28
+ */
29
+ function onCreateCustomModelLoader(callback) {
30
+ registeredModelLoaderCallbacks.push(callback);
31
+ return () => {
32
+ const index = registeredModelLoaderCallbacks.indexOf(callback);
33
+ if (index >= 0) {
34
+ registeredModelLoaderCallbacks.splice(index, 1);
35
+ }
36
+ };
37
+ }
38
+ NeedleEngineModelLoader.onCreateCustomModelLoader = onCreateCustomModelLoader;
39
+ /**
40
+ * Register a callback to determine the mimetype of a file. This is to support custom loaders. The callback will provide the URL of the file to load + a range request response with the first few bytes of the file. The callback should return a mimetype or null if it does not want to handle the file.
41
+ * @param callback The callback to register
42
+ * @returns A function to unregister the callback
43
+ *
44
+ */
45
+ function onDetermineModelFiletype(callback) {
46
+ registeredFileTypeCallbacks.push(callback);
47
+ return () => {
48
+ const index = registeredFileTypeCallbacks.indexOf(callback);
49
+ if (index >= 0) {
50
+ registeredFileTypeCallbacks.splice(index, 1);
51
+ }
52
+ };
53
+ }
54
+ NeedleEngineModelLoader.onDetermineModelFiletype = onDetermineModelFiletype;
55
+ })(NeedleEngineModelLoader || (NeedleEngineModelLoader = {}));
56
+ //# sourceMappingURL=engine_loaders.callbacks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine_loaders.callbacks.js","sourceRoot":"","sources":["../../src/engine/engine_loaders.callbacks.ts"],"names":[],"mappings":"AAmBA,gBAAgB;AAChB,MAAM,CAAC,MAAM,8BAA8B,GAAgC,EAAE,CAAC;AAa9E,gBAAgB;AAChB,MAAM,CAAC,MAAM,2BAA2B,GAA4B,EAAE,CAAC;AAGvE;;;GAGG;AACH,MAAM,KAAW,uBAAuB,CA8CvC;AA9CD,WAAiB,uBAAuB;IAEpC,oCAAoC;IACpC,oBAAoB;IACpB,2DAA2D;IAC3D,IAAI;IAEJ;;;;;;;;;;;;;OAaG;IACH,SAAgB,yBAAyB,CAAC,QAA8B;QACpE,8BAA8B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9C,OAAO,GAAG,EAAE;YACR,MAAM,KAAK,GAAG,8BAA8B,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC/D,IAAI,KAAK,IAAI,CAAC,EAAE;gBACZ,8BAA8B,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;aACnD;QACL,CAAC,CAAA;IACL,CAAC;IARe,iDAAyB,4BAQxC,CAAA;IAED;;;;;OAKG;IACH,SAAgB,wBAAwB,CAAC,QAA0B;QAC/D,2BAA2B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3C,OAAO,GAAG,EAAE;YACR,MAAM,KAAK,GAAG,2BAA2B,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC5D,IAAI,KAAK,IAAI,CAAC,EAAE;gBACZ,2BAA2B,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;aAChD;QACL,CAAC,CAAA;IACL,CAAC;IARe,gDAAwB,2BAQvC,CAAA;AACL,CAAC,EA9CgB,uBAAuB,KAAvB,uBAAuB,QA8CvC"}
@@ -1,13 +1,48 @@
1
+ import { FBXLoader } from 'three/examples/jsm/loaders/FBXLoader.js';
1
2
  import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js';
3
+ import { OBJLoader } from 'three/examples/jsm/loaders/OBJLoader.js';
4
+ import { USDZLoader } from 'three/examples/jsm/loaders/USDZLoader.js';
5
+ import { type INeedleGltfLoader } from "./engine_gltf.js";
6
+ import { CustomLoader } from "./engine_loaders.callbacks.js";
7
+ import { SerializationContext } from "./engine_serialization_core.js";
2
8
  import { Context } from "./engine_setup.js";
3
- export declare function setDracoDecoderPath(path: string | undefined): void;
4
- export declare function setDracoDecoderType(type: string | undefined): void;
5
- export declare function setKtx2TranscoderPath(path: string): void;
6
- export declare function setMeshoptDecoder(_meshoptDecoder: any): void;
9
+ import { Model, type UIDProvider } from "./engine_types.js";
10
+ import { NEEDLE_components } from "./extensions/NEEDLE_components.js";
11
+ /** @internal */
12
+ export declare class NeedleLoader implements INeedleGltfLoader {
13
+ createBuiltinComponents(context: Context, gltfId: string, gltf: any, seed: number | UIDProvider | null, extension?: NEEDLE_components | undefined): Promise<void>;
14
+ writeBuiltinComponentData(comp: any, context: SerializationContext): object | null;
15
+ parseSync(context: Context, data: string | ArrayBuffer, path: string, seed: number | UIDProvider | null): Promise<Model | undefined>;
16
+ loadSync(context: Context, url: string, sourceId: string, seed: number | UIDProvider | null, prog?: ((ProgressEvent: any) => void) | undefined): Promise<Model | undefined>;
17
+ }
18
+ export declare function onCreateLoader(url: string, context: Context): Promise<CustomLoader | GLTFLoader | FBXLoader | USDZLoader | OBJLoader | null>;
7
19
  /**
8
- * Add Draco, Meshopt and KTX2 loaders to a GLTFLoader instance.
9
- * @param loader The GLTFLoader instance to add the loaders to.
10
- * @param context The context object containing the renderer.
11
- * @returns The GLTFLoader instance with the loaders added.
20
+ * Load a 3D model file from a remote URL
21
+ * @param url URL to glTF, FBX or OBJ file
22
+ * @param options
23
+ * @returns A promise that resolves to the loaded model or undefined if the loading failed
12
24
  */
13
- export declare function addDracoAndKTX2Loaders(loader: GLTFLoader, context: Pick<Context, "renderer">): GLTFLoader;
25
+ export declare function loadAsset(url: string, options?: {
26
+ context?: Context;
27
+ path?: string;
28
+ seed?: number;
29
+ onprogress?: (evt: ProgressEvent) => void;
30
+ }): Promise<Model | undefined>;
31
+ /** Load a gltf file from a url. This is the core method used by Needle Engine to load gltf files. All known extensions are registered here.
32
+ * @param context The current context
33
+ * @param data The gltf data as string or ArrayBuffer
34
+ * @param path The path to the gltf file
35
+ * @param seed The seed for generating unique ids
36
+ * @returns The loaded gltf object
37
+ */
38
+ export declare function parseSync(context: Context, data: string | ArrayBuffer, path: string, seed: number | UIDProvider | null): Promise<Model | undefined>;
39
+ /**
40
+ * Load a gltf file from a url. This is the core method used by Needle Engine to load gltf files. All known extensions are registered here.
41
+ * @param context The current context
42
+ * @param url The url to the gltf file
43
+ * @param sourceId The source id of the gltf file - this is usually the url
44
+ * @param seed The seed for generating unique ids
45
+ * @param prog A progress callback
46
+ * @returns The loaded gltf object
47
+ */
48
+ export declare function loadSync(context: Context, url: string, sourceId: string, seed: number | UIDProvider | null, prog?: (ProgressEvent: any) => void): Promise<Model | undefined>;
@@ -0,0 +1,13 @@
1
+ import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js';
2
+ import { Context } from "./engine_setup.js";
3
+ export declare function setDracoDecoderPath(path: string | undefined): void;
4
+ export declare function setDracoDecoderType(type: string | undefined): void;
5
+ export declare function setKtx2TranscoderPath(path: string): void;
6
+ export declare function setMeshoptDecoder(_meshoptDecoder: any): void;
7
+ /**
8
+ * Add Draco, Meshopt and KTX2 loaders to a GLTFLoader instance.
9
+ * @param loader The GLTFLoader instance to add the loaders to.
10
+ * @param context The context object containing the renderer.
11
+ * @returns The GLTFLoader instance with the loaders added.
12
+ */
13
+ export declare function addDracoAndKTX2Loaders(loader: GLTFLoader, context: Pick<Context, "renderer">): GLTFLoader;
@@ -0,0 +1,63 @@
1
+ import { addDracoAndKTX2Loaders as addDracoAndKTX2LoadersGLTFProgressive, configureLoader, createLoaders, setDracoDecoderLocation, setKTX2TranscoderLocation } from '@needle-tools/gltf-progressive';
2
+ import { getParam } from "./engine_utils.js";
3
+ const debug = getParam("debugdecoders");
4
+ let loaders = null;
5
+ function ensureLoaders() {
6
+ if (!loaders) {
7
+ const res = createLoaders(null);
8
+ loaders = { dracoLoader: res.dracoLoader, ktx2Loader: res.ktx2Loader, meshoptDecoder: res.meshoptDecoder };
9
+ }
10
+ return loaders;
11
+ }
12
+ export function setDracoDecoderPath(path) {
13
+ if (path !== undefined && typeof path === "string") {
14
+ setDracoDecoderLocation(path);
15
+ }
16
+ }
17
+ export function setDracoDecoderType(type) {
18
+ if (type !== undefined && typeof type === "string") {
19
+ if (type !== "js") {
20
+ const loaders = ensureLoaders();
21
+ if (debug)
22
+ console.log("Setting draco decoder type to", type);
23
+ loaders.dracoLoader.setDecoderConfig({ type: type });
24
+ }
25
+ }
26
+ }
27
+ export function setKtx2TranscoderPath(path) {
28
+ if (path !== undefined && typeof path === "string") {
29
+ setKTX2TranscoderLocation(path);
30
+ }
31
+ }
32
+ export function setMeshoptDecoder(_meshoptDecoder) {
33
+ if (_meshoptDecoder !== undefined) {
34
+ const loaders = ensureLoaders();
35
+ loaders.meshoptDecoder = _meshoptDecoder;
36
+ }
37
+ }
38
+ /**
39
+ * Add Draco, Meshopt and KTX2 loaders to a GLTFLoader instance.
40
+ * @param loader The GLTFLoader instance to add the loaders to.
41
+ * @param context The context object containing the renderer.
42
+ * @returns The GLTFLoader instance with the loaders added.
43
+ */
44
+ export function addDracoAndKTX2Loaders(loader, context) {
45
+ const loaders = ensureLoaders();
46
+ if (context.renderer) {
47
+ loaders.ktx2Loader.detectSupport(context.renderer);
48
+ }
49
+ else
50
+ console.warn("No renderer provided to detect ktx2 support - loading KTX2 textures will probably fail");
51
+ addDracoAndKTX2LoadersGLTFProgressive(loader);
52
+ if (!loader.dracoLoader)
53
+ loader.setDRACOLoader(loaders.dracoLoader);
54
+ if (!loader.ktx2Loader)
55
+ loader.setKTX2Loader(loaders.ktx2Loader);
56
+ if (!loader.meshoptDecoder)
57
+ loader.setMeshoptDecoder(loaders.meshoptDecoder);
58
+ configureLoader(loader, {
59
+ progressive: true,
60
+ });
61
+ return loader;
62
+ }
63
+ //# sourceMappingURL=engine_loaders.gltf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine_loaders.gltf.js","sourceRoot":"","sources":["../../src/engine/engine_loaders.gltf.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,IAAI,qCAAqC,EAAE,eAAe,EAAE,aAAa,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAOrM,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,MAAM,KAAK,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC;AAExC,IAAI,OAAO,GAAuG,IAAI,CAAC;AAEvH,SAAS,aAAa;IAClB,IAAI,CAAC,OAAO,EAAE;QACV,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO,GAAG,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,cAAc,EAAE,GAAG,CAAC,cAAc,EAAE,CAAC;KAC9G;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAwB;IACxD,IAAI,IAAI,KAAK,SAAS,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAChD,uBAAuB,CAAC,IAAI,CAAC,CAAC;KACjC;AACL,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAwB;IACxD,IAAI,IAAI,KAAK,SAAS,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAChD,IAAI,IAAI,KAAK,IAAI,EAAE;YACf,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;YAChC,IAAI,KAAK;gBAAE,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,IAAI,CAAC,CAAC;YAC9D,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;SACxD;KACJ;AACL,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAC9C,IAAI,IAAI,KAAK,SAAS,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAChD,yBAAyB,CAAC,IAAI,CAAC,CAAC;KACnC;AACL,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,eAAoB;IAClD,IAAI,eAAe,KAAK,SAAS,EAAE;QAC/B,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;QAChC,OAAO,CAAC,cAAc,GAAG,eAAe,CAAC;KAC5C;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAkB,EAAE,OAAkC;IAEzF,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAEhC,IAAI,OAAO,CAAC,QAAQ,EAAE;QAClB,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;KACtD;;QAEG,OAAO,CAAC,IAAI,CAAC,wFAAwF,CAAC,CAAC;IAE3G,qCAAqC,CAAC,MAAM,CAAC,CAAC;IAE9C,IAAI,CAAC,MAAM,CAAC,WAAW;QACnB,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC/C,IAAI,CAAE,MAAc,CAAC,UAAU;QAC3B,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7C,IAAI,CAAE,MAAc,CAAC,cAAc;QAC/B,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAErD,eAAe,CAAC,MAAM,EAAE;QACpB,WAAW,EAAE,IAAI;KACpB,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAClB,CAAC"}