@needle-tools/engine 3.41.2-beta → 3.41.2-beta.2
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.
- package/CHANGELOG.md +3 -0
- package/dist/needle-engine.js +245 -230
- package/dist/needle-engine.light.js +248 -233
- package/dist/needle-engine.light.min.js +12 -12
- package/dist/needle-engine.light.umd.cjs +13 -13
- package/dist/needle-engine.min.js +12 -12
- package/dist/needle-engine.umd.cjs +13 -13
- package/lib/engine/engine_scenetools.js +2 -13
- package/lib/engine/engine_scenetools.js.map +1 -1
- package/lib/engine/engine_utils_format.d.ts +10 -2
- package/lib/engine/engine_utils_format.js +42 -1
- package/lib/engine/engine_utils_format.js.map +1 -1
- package/package.json +2 -2
- package/src/engine/engine_scenetools.ts +2 -16
- package/src/engine/engine_utils_format.ts +44 -2
|
@@ -78,20 +78,8 @@ async function handleLoadedGltf(context, gltfId, gltf, seed, componentsExtension
|
|
|
78
78
|
}
|
|
79
79
|
await getLoader().createBuiltinComponents(context, gltfId, gltf, seed, componentsExtension);
|
|
80
80
|
}
|
|
81
|
-
async function determineFileTypeFromURL(url) {
|
|
82
|
-
const ext = url.split("?")[0].split(".").pop()?.toUpperCase() || "";
|
|
83
|
-
switch (ext) {
|
|
84
|
-
case "GLTF":
|
|
85
|
-
return "gltf";
|
|
86
|
-
case "GLB":
|
|
87
|
-
return "glb";
|
|
88
|
-
case "FBX":
|
|
89
|
-
return "fbx";
|
|
90
|
-
}
|
|
91
|
-
return await tryDetermineFileTypeFromURL(url) || "unknown";
|
|
92
|
-
}
|
|
93
81
|
export async function createLoader(url, context) {
|
|
94
|
-
const type = await
|
|
82
|
+
const type = await tryDetermineFileTypeFromURL(url) || "unknown";
|
|
95
83
|
switch (type) {
|
|
96
84
|
case "unknown":
|
|
97
85
|
console.warn("Unknown file type:", url);
|
|
@@ -110,6 +98,7 @@ export async function createLoader(url, context) {
|
|
|
110
98
|
console.warn("Unknown file type:", type);
|
|
111
99
|
case "gltf":
|
|
112
100
|
case "glb":
|
|
101
|
+
case "vrm":
|
|
113
102
|
const loader = new GLTFLoader();
|
|
114
103
|
await registerExtensions(loader, context, url);
|
|
115
104
|
return loader;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine_scenetools.js","sourceRoot":"","sources":["../../src/engine/engine_scenetools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACnE,OAAO,EAAa,UAAU,EAAE,MAAM,0CAA0C,CAAA;AAChF,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,SAAS,EAA0B,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACrF,OAAO,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AACzG,iEAAiE;AACjE,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAA;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAGnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAY,2BAA2B,EAAE,MAAM,0BAA0B,CAAA;AAChF,OAAO,EAAE,4BAA4B,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAG1H,gBAAgB;AAChB,MAAM,OAAO,gBAAgB;IACzB,uBAAuB,CAAC,OAAgB,EAAE,MAAc,EAAE,IAAS,EAAE,IAAiC,EAAE,SAAyC;QAC7I,OAAO,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IAC3E,CAAC;IACD,yBAAyB,CAAC,IAAS,EAAE,OAA6B;QAC9D,OAAO,yBAAyB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IACD,SAAS,CAAC,OAAgB,EAAE,IAA0B,EAAE,IAAY,EAAE,IAAiC;QACnG,OAAO,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC;IACD,QAAQ,CAAC,OAAgB,EAAE,GAAW,EAAE,QAAgB,EAAE,IAAiC,EAAE,IAAiD;QAC1I,OAAO,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACxD,CAAC;CACJ;AACD,cAAc,CAAC,gBAAgB,CAAC,CAAC;AAGjC,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAC7E,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;AAEpD,mCAAmC;AACnC,8BAA8B;AAE9B,MAAM,CAAN,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IACzB,qEAAc,CAAA;IACd,uEAAe,CAAA;IACf,4EAAkB,CAAA;AACtB,CAAC,EAJW,iBAAiB,KAAjB,iBAAiB,QAI5B;AAED,MAAM,OAAO,aAAa;IACtB,OAAO,CAAS;IAChB,MAAM,CAAa;IACnB,IAAI,CAAS;IACb,IAAI,CAAQ;IACZ,YAAY,OAAgB,EAAE,IAAY,EAAE,MAAkB,EAAE,IAAW;QACvE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;CACJ;AAID,MAAM,cAAc,GAA+C,EAAE,CAAC;AAEtE,MAAM,UAAU,wBAAwB,CAAC,IAAuB,EAAE,QAA+B;IAC7F,cAAc,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAClD,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACxC,CAAC;AACD,MAAM,UAAU,2BAA2B,CAAC,IAAuB,EAAE,QAA+B;IAChG,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE;QACtB,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACrD,IAAI,KAAK,IAAI,CAAC,EAAE;YACZ,cAAc,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;SACzC;KACJ;AACL,CAAC;AAED,SAAS,YAAY,CAAC,IAAuB,EAAE,KAAoB;IAC/D,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE;QACtB,KAAK,MAAM,QAAQ,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE;YACzC,QAAQ,CAAC,KAAK,CAAC,CAAC;SACnB;KACJ;AACL,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,OAAgB,EAAE,MAAc,EAAE,IAAI,EAAE,IAAiC,EAAE,mBAAmB;IAC1H,IAAI,SAAS;QACT,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACvC,sCAAsC;IACtC,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QACtB,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;KACjC;IACD,MAAM,SAAS,EAAE,CAAC,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,mBAAmB,CAAC,CAAC;AAChG,CAAC;AAED,KAAK,UAAU,wBAAwB,CAAC,GAAW;IAE/C,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IACpE,QAAQ,GAAG,EAAE;QACT,KAAK,MAAM;YACP,OAAO,MAAM,CAAC;QAClB,KAAK,KAAK;YACN,OAAO,KAAK,CAAC;QACjB,KAAK,KAAK;YACN,OAAO,KAAK,CAAC;KACpB;IAED,OAAO,MAAM,2BAA2B,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC;AAC/D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,GAAW,EAAE,OAAgB;IAE5D,MAAM,IAAI,GAAG,MAAM,wBAAwB,CAAC,GAAG,CAAC,CAAC;IAEjD,QAAQ,IAAI,EAAE;QACV,KAAK,SAAS;YACV,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC;YACxC,OAAO,IAAI,UAAU,EAAE,CAAC;QAC5B,KAAK,KAAK;YACN,OAAO,IAAI,SAAS,EAAE,CAAC;QAC3B,KAAK,KAAK;YACN,OAAO,IAAI,SAAS,EAAE,CAAC;QAC3B,KAAK,KAAK,CAAC;QACX,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM;YACP,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAA;YAC5C,OAAO,IAAI,CAAC;QAChB,2BAA2B;QAC3B;YACI,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;QAC7C,KAAK,MAAM,CAAC;QACZ,KAAK,KAAK;YACN,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAChC,MAAM,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;YAC/C,OAAO,MAAM,CAAC;KACrB;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAgB,EAAE,IAA0B,EAAE,IAAY,EAAE,IAAiC;IACzH,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC1B,OAAO,CAAC,IAAI,CAAC,wIAAwI,EAAE,IAAI,EAAE,OAAO,IAAI,CAAC,CAAC;QAC1K,IAAI,GAAG,EAAE,CAAC;KACb;IACD,IAAI,SAAS;QAAE,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;IAC9C,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACjD,IAAI,CAAC,MAAM,EAAE;QACT,OAAO,SAAS,CAAC;KACpB;IAED,oBAAoB;IACpB,IAAI,MAAM,YAAY,SAAS,EAAE;QAC7B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YAC1B,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SACzC;QACD,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,OAAO;YACH,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,CAAC,GAAG,CAAC;SACR,CAAC;KACb;IACD,mDAAmD;IACnD,IAAI,CAAC,CAAC,MAAM,YAAY,UAAU,CAAC,EAAE;QACjC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACrC,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACnC,OAAO;YACH,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,CAAC,GAAG,CAAC;SACR,CAAC;KACb;IAED,MAAM,mBAAmB,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;IAC/D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,IAAI;YAEA,iEAAiE;YACjE,iEAAiE;YACjE,mDAAmD;YACnD,IAAI,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YAClD,IAAI,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;gBACrE,uBAAuB;gBACvB,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACxC,KAAK,CAAC,GAAG,EAAE,CAAC;gBACZ,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACjC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAAE,cAAc,IAAI,GAAG,CAAC;aAC5D;YACD,MAAM,CAAC,YAAY,GAAG,cAAc,CAAC;YACrC,OAAO,CAAC,sBAAsB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAEhD,YAAY,CAAC,iBAAiB,CAAC,UAAU,EAAE,IAAI,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;YACrF,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;YAClC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAC,GAAG,EAAC,EAAE;gBAC/B,4BAA4B,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;gBACjD,YAAY,CAAC,iBAAiB,CAAC,WAAW,EAAE,IAAI,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC3F,MAAM,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,mBAAmB,CAAC,CAAC;gBACtE,MAAM,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC/C,YAAY,CAAC,iBAAiB,CAAC,aAAa,EAAE,IAAI,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;gBAE7F,OAAO,CAAC,GAAG,CAAC,CAAC;gBACb,IAAI,YAAY,EAAE;oBACd,aAAa,CAAC,IAAI,CAAC,CAAA;iBACtB;YAEL,CAAC,EAAE,GAAG,CAAC,EAAE;gBACL,OAAO,CAAC,KAAK,CAAC,iBAAiB,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC7C,OAAO,CAAC,SAAS,CAAC,CAAC;YACvB,CAAC,CAAC,CAAC;SACN;QACD,OAAO,GAAG,EAAE;YACR,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,MAAM,CAAC,GAAG,CAAC,CAAC;SACf;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAgB,EAAE,GAAW,EAAE,QAAgB,EAAE,IAAiC,EAAE,IAA8B;IAC7I,0CAA0C;IAC1C,+BAA+B;IAC/B,yFAAyF;IACzF,+DAA+D;IAC/D,uDAAuD;IACvD,oCAAoC,CAAC,GAAG,CAAC,CAAA;IACzC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAChD,IAAI,CAAC,MAAM,EAAE;QACT,OAAO,SAAS,CAAC;KACpB;IAED,6CAA6C;IAC7C,IAAI,CAAC,CAAC,MAAM,YAAY,UAAU,CAAC,EAAE;QACjC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC9C,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACnC,OAAO;YACH,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,CAAC,GAAG,CAAC;SACR,CAAC;KACb;IAED,MAAM,mBAAmB,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;IAC/D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,IAAI;YACA,OAAO,CAAC,sBAAsB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAChD,YAAY,CAAC,iBAAiB,CAAC,UAAU,EAAE,IAAI,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;YACpF,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAC,GAAG,EAAC,EAAE;gBACzB,4BAA4B,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;gBAChD,YAAY,CAAC,iBAAiB,CAAC,WAAW,EAAE,IAAI,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC1F,MAAM,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,mBAAmB,CAAC,CAAC;gBAC1E,MAAM,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC/C,YAAY,CAAC,iBAAiB,CAAC,aAAa,EAAE,IAAI,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC5F,OAAO,CAAC,GAAG,CAAC,CAAC;gBACb,IAAI,YAAY,EAAE;oBACd,aAAa,CAAC,GAAG,CAAC,CAAA;iBACrB;YACL,CAAC,EAAE,GAAG,CAAC,EAAE;gBACL,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAC5B,CAAC,EAAE,GAAG,CAAC,EAAE;gBACL,OAAO,CAAC,KAAK,CAAC,iBAAiB,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;gBAC5C,OAAO,CAAC,SAAS,CAAC,CAAC;YACvB,CAAC,CAAC,CAAC;SACN;QACD,OAAO,GAAG,EAAE;YACR,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,MAAM,CAAC,GAAG,CAAC,CAAC;SACf;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,KAAe,EAAE,OAAgB,EAAE,MAAsB;IACjF,IAAI,CAAC,MAAM;QAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IACzC,IAAI,MAAM;QACN,MAAM,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;;QAElE,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,oCAAoC,CAAC,GAAW;IACrD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;IACxD,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;QAC/B,MAAM,GAAG,GAAG,6VAA6V,CAAC;QAC1W,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;KACpB;AACL,CAAC;AAED,SAAS,aAAa,CAAC,IAA0B;IAC7C,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC1B,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAsB,CAAC;QAC3D,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;QACd,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAG,CAAC;QACpC,CAAC,CAAC,KAAK,EAAE,CAAC;KACb;SACI;QACD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC,CAAC;QACpE,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAsB,CAAC;QAC3D,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC;QACb,CAAC,CAAC,QAAQ,GAAG,cAAc,CAAC;QAC5B,CAAC,CAAC,KAAK,EAAE,CAAC;KACb;AACL,CAAC;AAKD,SAAS,qBAAqB,CAAC,MAAc,EAAE,MAAuB;IAElE,IAAK,MAAmB,EAAE,UAAU,EAAE;QAClC,MAAM,GAAG,GAAG,MAAkB,CAAC;QAE/B,IAAI,MAAM,YAAY,SAAS,EAAE;YAC7B,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE;gBACnB,MAAM,IAAI,GAAG,KAAa,CAAC;gBAE3B,sIAAsI;gBACtI,IAAI,IAAI,EAAE,MAAM,EAAE;oBACd,uBAAuB,CAAC,IAAI,EAAE,IAAI,CAAC,QAAoB,CAAC,CAAC;iBAC5D;YACL,CAAC,CAAC,CAAC;SACN;aACI,IAAI,MAAM,YAAY,SAAS,EAAE;YAElC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;gBAElB,sBAAsB;gBAEtB,wCAAwC;gBAExC,+CAA+C;YAEnD,CAAC,CAAC,CAAC;SACN;KAGJ;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"engine_scenetools.js","sourceRoot":"","sources":["../../src/engine/engine_scenetools.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The supported file types that can be determined by the engine. Used in {@link tryDetermineFileTypeFromURL} and {@link tryDetermineFileTypeFromBinary}
|
|
3
3
|
*/
|
|
4
|
-
export declare type FileType = "gltf" | "glb" | "fbx" | "obj" | "usdz" | "usd" | "usda" | "unknown";
|
|
4
|
+
export declare type FileType = "gltf" | "glb" | "vrm" | "fbx" | "obj" | "usdz" | "usd" | "usda" | "unknown";
|
|
5
5
|
/**
|
|
6
6
|
* Tries to determine the file type of a file from its URL
|
|
7
7
|
* This method does perform a range request to the server to get the first few bytes of the file
|
|
8
|
+
* If the file type can not be determined it will return "unknown"
|
|
9
|
+
* @param url The URL of the file
|
|
10
|
+
* @param lazy If true the file type will be determined by the file extension first - if the file extension is not known it will then check the header
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* const url = "https://example.com/model.glb";
|
|
14
|
+
* const fileType = await tryDetermineFileTypeFromURL(url);
|
|
15
|
+
* console.log(fileType); // "glb"
|
|
8
16
|
*/
|
|
9
|
-
export declare function tryDetermineFileTypeFromURL(url: string): Promise<FileType>;
|
|
17
|
+
export declare function tryDetermineFileTypeFromURL(url: string, lazy?: boolean): Promise<FileType>;
|
|
10
18
|
/** Attempts to determine the file type of a binary file by looking at the first few bytes of the file.
|
|
11
19
|
* @hidden
|
|
12
20
|
*/
|
|
@@ -3,8 +3,49 @@ const debug = getParam("debugfileformat");
|
|
|
3
3
|
/**
|
|
4
4
|
* Tries to determine the file type of a file from its URL
|
|
5
5
|
* This method does perform a range request to the server to get the first few bytes of the file
|
|
6
|
+
* If the file type can not be determined it will return "unknown"
|
|
7
|
+
* @param url The URL of the file
|
|
8
|
+
* @param lazy If true the file type will be determined by the file extension first - if the file extension is not known it will then check the header
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* const url = "https://example.com/model.glb";
|
|
12
|
+
* const fileType = await tryDetermineFileTypeFromURL(url);
|
|
13
|
+
* console.log(fileType); // "glb"
|
|
6
14
|
*/
|
|
7
|
-
export async function tryDetermineFileTypeFromURL(url) {
|
|
15
|
+
export async function tryDetermineFileTypeFromURL(url, lazy = true) {
|
|
16
|
+
if (lazy) {
|
|
17
|
+
// We want to save on requests so we first check the file extension if there's any
|
|
18
|
+
// In some scenarios we might not have one (e.g. if we're dealing with blob: files or if the URL doesn't contain the filename)
|
|
19
|
+
// In that case we need to check the header
|
|
20
|
+
let _url = url;
|
|
21
|
+
// if (!_url.startsWith("http") && !url.startsWith("blob:")) {
|
|
22
|
+
// // _url = "file:" + url;
|
|
23
|
+
// }
|
|
24
|
+
const urlobj = new URL(_url, globalThis.location.origin);
|
|
25
|
+
let ext = null;
|
|
26
|
+
const query = urlobj.searchParams.get("filetype");
|
|
27
|
+
if (query)
|
|
28
|
+
ext = query.toUpperCase();
|
|
29
|
+
if (!ext?.length) {
|
|
30
|
+
ext = urlobj.pathname.split(".").pop()?.toUpperCase();
|
|
31
|
+
}
|
|
32
|
+
switch (ext) {
|
|
33
|
+
case "GLTF":
|
|
34
|
+
return "gltf";
|
|
35
|
+
case "VRM":
|
|
36
|
+
return "vrm";
|
|
37
|
+
case "GLB":
|
|
38
|
+
return "glb";
|
|
39
|
+
case "FBX":
|
|
40
|
+
return "fbx";
|
|
41
|
+
case "USD":
|
|
42
|
+
return "usd";
|
|
43
|
+
case "USDA":
|
|
44
|
+
return "usda";
|
|
45
|
+
case "USDZ":
|
|
46
|
+
return "usdz";
|
|
47
|
+
}
|
|
48
|
+
}
|
|
8
49
|
// If the URL doesnt contain a filetype we need to check the header
|
|
9
50
|
// This is the case for example if we load a file from a data url
|
|
10
51
|
const header = await fetch(url, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine_utils_format.js","sourceRoot":"","sources":["../../src/engine/engine_utils_format.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,MAAM,KAAK,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC;AAO1C
|
|
1
|
+
{"version":3,"file":"engine_utils_format.js","sourceRoot":"","sources":["../../src/engine/engine_utils_format.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@needle-tools/engine",
|
|
3
|
-
"version": "3.41.2-beta",
|
|
3
|
+
"version": "3.41.2-beta.2",
|
|
4
4
|
"description": "Needle Engine is a web-based runtime for 3D apps. It runs on your machine for development with great integrations into editors like Unity or Blender - and can be deployed onto any device! It is flexible, extensible and networking and XR are built-in",
|
|
5
5
|
"main": "dist/needle-engine.umd.cjs",
|
|
6
6
|
"type": "module",
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
],
|
|
62
62
|
"dependencies": {
|
|
63
63
|
"@dimforge/rapier3d-compat": "^0.12.0",
|
|
64
|
-
"@needle-tools/gltf-progressive": "^1.2.3-alpha.
|
|
64
|
+
"@needle-tools/gltf-progressive": "^1.2.3-alpha.2",
|
|
65
65
|
"@webxr-input-profiles/motion-controllers": "^1.0.0",
|
|
66
66
|
"flatbuffers": "2.0.4",
|
|
67
67
|
"md5": "^2.3.0",
|
|
@@ -97,24 +97,9 @@ async function handleLoadedGltf(context: Context, gltfId: string, gltf, seed: nu
|
|
|
97
97
|
await getLoader().createBuiltinComponents(context, gltfId, gltf, seed, componentsExtension);
|
|
98
98
|
}
|
|
99
99
|
|
|
100
|
-
async function determineFileTypeFromURL(url: string): Promise<FileType> {
|
|
101
|
-
|
|
102
|
-
const ext = url.split("?")[0].split(".").pop()?.toUpperCase() || "";
|
|
103
|
-
switch (ext) {
|
|
104
|
-
case "GLTF":
|
|
105
|
-
return "gltf";
|
|
106
|
-
case "GLB":
|
|
107
|
-
return "glb";
|
|
108
|
-
case "FBX":
|
|
109
|
-
return "fbx";
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
return await tryDetermineFileTypeFromURL(url) || "unknown";
|
|
113
|
-
}
|
|
114
|
-
|
|
115
100
|
export async function createLoader(url: string, context: Context): Promise<GLTFLoader | FBXLoader | USDZLoader | OBJLoader | null> {
|
|
116
101
|
|
|
117
|
-
const type = await
|
|
102
|
+
const type = await tryDetermineFileTypeFromURL(url) || "unknown";
|
|
118
103
|
|
|
119
104
|
switch (type) {
|
|
120
105
|
case "unknown":
|
|
@@ -134,6 +119,7 @@ export async function createLoader(url: string, context: Context): Promise<GLTFL
|
|
|
134
119
|
console.warn("Unknown file type:", type);
|
|
135
120
|
case "gltf":
|
|
136
121
|
case "glb":
|
|
122
|
+
case "vrm":
|
|
137
123
|
const loader = new GLTFLoader();
|
|
138
124
|
await registerExtensions(loader, context, url);
|
|
139
125
|
return loader;
|
|
@@ -5,13 +5,55 @@ const debug = getParam("debugfileformat");
|
|
|
5
5
|
/**
|
|
6
6
|
* The supported file types that can be determined by the engine. Used in {@link tryDetermineFileTypeFromURL} and {@link tryDetermineFileTypeFromBinary}
|
|
7
7
|
*/
|
|
8
|
-
export declare type FileType = "gltf" | "glb" | "fbx" | "obj" | "usdz" | "usd" | "usda" | "unknown";
|
|
8
|
+
export declare type FileType = "gltf" | "glb" | "vrm" | "fbx" | "obj" | "usdz" | "usd" | "usda" | "unknown";
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* Tries to determine the file type of a file from its URL
|
|
12
12
|
* This method does perform a range request to the server to get the first few bytes of the file
|
|
13
|
+
* If the file type can not be determined it will return "unknown"
|
|
14
|
+
* @param url The URL of the file
|
|
15
|
+
* @param lazy If true the file type will be determined by the file extension first - if the file extension is not known it will then check the header
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* const url = "https://example.com/model.glb";
|
|
19
|
+
* const fileType = await tryDetermineFileTypeFromURL(url);
|
|
20
|
+
* console.log(fileType); // "glb"
|
|
13
21
|
*/
|
|
14
|
-
export async function tryDetermineFileTypeFromURL(url: string): Promise<FileType> {
|
|
22
|
+
export async function tryDetermineFileTypeFromURL(url: string, lazy: boolean = true): Promise<FileType> {
|
|
23
|
+
|
|
24
|
+
if (lazy) {
|
|
25
|
+
// We want to save on requests so we first check the file extension if there's any
|
|
26
|
+
// In some scenarios we might not have one (e.g. if we're dealing with blob: files or if the URL doesn't contain the filename)
|
|
27
|
+
// In that case we need to check the header
|
|
28
|
+
let _url = url;
|
|
29
|
+
// if (!_url.startsWith("http") && !url.startsWith("blob:")) {
|
|
30
|
+
// // _url = "file:" + url;
|
|
31
|
+
// }
|
|
32
|
+
|
|
33
|
+
const urlobj = new URL(_url, globalThis.location.origin);
|
|
34
|
+
let ext: string | null | undefined = null;
|
|
35
|
+
const query = urlobj.searchParams.get("filetype");
|
|
36
|
+
if (query) ext = query.toUpperCase();
|
|
37
|
+
if (!ext?.length) {
|
|
38
|
+
ext = urlobj.pathname.split(".").pop()?.toUpperCase();
|
|
39
|
+
}
|
|
40
|
+
switch (ext) {
|
|
41
|
+
case "GLTF":
|
|
42
|
+
return "gltf";
|
|
43
|
+
case "VRM":
|
|
44
|
+
return "vrm";
|
|
45
|
+
case "GLB":
|
|
46
|
+
return "glb";
|
|
47
|
+
case "FBX":
|
|
48
|
+
return "fbx";
|
|
49
|
+
case "USD":
|
|
50
|
+
return "usd";
|
|
51
|
+
case "USDA":
|
|
52
|
+
return "usda";
|
|
53
|
+
case "USDZ":
|
|
54
|
+
return "usdz";
|
|
55
|
+
}
|
|
56
|
+
}
|
|
15
57
|
|
|
16
58
|
// If the URL doesnt contain a filetype we need to check the header
|
|
17
59
|
// This is the case for example if we load a file from a data url
|