@needle-tools/engine 2.52.0-pre → 2.53.0-pre
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 +9 -0
- package/dist/needle-engine.d.ts +187 -36
- package/dist/needle-engine.js +385 -385
- package/dist/needle-engine.js.map +4 -4
- package/dist/needle-engine.min.js +40 -40
- package/dist/needle-engine.min.js.map +4 -4
- package/lib/engine/engine_components.js +2 -2
- package/lib/engine/engine_components.js.map +1 -1
- package/lib/engine/engine_networking_instantiate.d.ts +1 -1
- package/lib/engine/engine_networking_instantiate.js +3 -0
- package/lib/engine/engine_networking_instantiate.js.map +1 -1
- package/lib/engine/engine_serialization_builtin_serializer.d.ts +6 -0
- package/lib/engine/engine_serialization_builtin_serializer.js +31 -6
- package/lib/engine/engine_serialization_builtin_serializer.js.map +1 -1
- package/lib/engine/engine_serialization_core.d.ts +1 -0
- package/lib/engine/engine_serialization_core.js +6 -0
- package/lib/engine/engine_serialization_core.js.map +1 -1
- package/lib/engine/engine_setup.js +2 -2
- package/lib/engine/engine_setup.js.map +1 -1
- package/lib/engine/engine_texture.d.ts +3 -0
- package/lib/engine/engine_texture.js +4 -0
- package/lib/engine/engine_texture.js.map +1 -0
- package/lib/engine/extensions/{NEEDLE_deferred_texture.d.ts → NEEDLE_progressive.d.ts} +2 -2
- package/lib/engine/extensions/{NEEDLE_deferred_texture.js → NEEDLE_progressive.js} +6 -6
- package/lib/engine/extensions/NEEDLE_progressive.js.map +1 -0
- package/lib/engine/extensions/extensions.js +2 -2
- package/lib/engine/extensions/extensions.js.map +1 -1
- package/lib/engine-components/Camera.js +17 -2
- package/lib/engine-components/Camera.js.map +1 -1
- package/lib/engine-components/Light.js +1 -0
- package/lib/engine-components/Light.js.map +1 -1
- package/lib/engine-components/OrbitControls.js +6 -2
- package/lib/engine-components/OrbitControls.js.map +1 -1
- package/lib/engine-components/Renderer.js +3 -3
- package/lib/engine-components/Renderer.js.map +1 -1
- package/lib/engine-components/Voip.js +13 -4
- package/lib/engine-components/Voip.js.map +1 -1
- package/lib/engine-components/codegen/components.d.ts +6 -2
- package/lib/engine-components/codegen/components.js +6 -2
- package/lib/engine-components/codegen/components.js.map +1 -1
- package/lib/engine-components/export/{GltfExport.d.ts → gltf/GltfExport.d.ts} +2 -2
- package/lib/engine-components/export/{GltfExport.js → gltf/GltfExport.js} +7 -7
- package/lib/engine-components/export/gltf/GltfExport.js.map +1 -0
- package/lib/engine-components/export/usdz/Extension.d.ts +9 -0
- package/lib/engine-components/export/usdz/Extension.js +2 -0
- package/lib/engine-components/export/usdz/Extension.js.map +1 -0
- package/lib/engine-components/export/usdz/USDZExporter.d.ts +25 -0
- package/lib/engine-components/export/usdz/USDZExporter.js +193 -0
- package/lib/engine-components/export/usdz/USDZExporter.js.map +1 -0
- package/lib/engine-components/export/usdz/extensions/Animation.d.ts +44 -0
- package/lib/engine-components/export/usdz/extensions/Animation.js +264 -0
- package/lib/engine-components/export/usdz/extensions/Animation.js.map +1 -0
- package/lib/engine-components/export/usdz/types.d.ts +34 -0
- package/lib/engine-components/export/usdz/types.js +2 -0
- package/lib/engine-components/export/usdz/types.js.map +1 -0
- package/lib/engine-components/export/usdz/utils/animationutils.d.ts +3 -0
- package/lib/engine-components/export/usdz/utils/animationutils.js +46 -0
- package/lib/engine-components/export/usdz/utils/animationutils.js.map +1 -0
- package/lib/engine-components/export/usdz/utils/quicklook.d.ts +2 -0
- package/lib/engine-components/export/usdz/utils/quicklook.js +36 -0
- package/lib/engine-components/export/usdz/utils/quicklook.js.map +1 -0
- package/lib/engine-components/export/usdz/utils/timeutils.d.ts +1 -0
- package/lib/engine-components/export/usdz/utils/timeutils.js +15 -0
- package/lib/engine-components/export/usdz/utils/timeutils.js.map +1 -0
- package/lib/engine-components/ui/Graphic.d.ts +2 -0
- package/lib/engine-components/ui/Graphic.js +15 -0
- package/lib/engine-components/ui/Graphic.js.map +1 -1
- package/lib/engine-components/ui/Utils.d.ts +2 -1
- package/lib/engine-components/ui/Utils.js +5 -3
- package/lib/engine-components/ui/Utils.js.map +1 -1
- package/package.json +2 -2
- package/src/engine/codegen/register_types.js +14 -6
- package/src/engine/engine_components.ts +2 -2
- package/src/engine/engine_networking_instantiate.ts +4 -1
- package/src/engine/engine_serialization_builtin_serializer.ts +35 -7
- package/src/engine/engine_serialization_core.ts +7 -1
- package/src/engine/engine_setup.ts +2 -2
- package/src/engine/engine_texture.ts +6 -0
- package/src/engine/extensions/{NEEDLE_deferred_texture.ts → NEEDLE_progressive.ts} +9 -11
- package/src/engine/extensions/extensions.ts +2 -2
- package/src/engine-components/Camera.ts +17 -3
- package/src/engine-components/Light.ts +3 -1
- package/src/engine-components/OrbitControls.ts +7 -3
- package/src/engine-components/Renderer.ts +3 -3
- package/src/engine-components/Voip.ts +14 -4
- package/src/engine-components/codegen/components.ts +6 -2
- package/src/engine-components/export/{GltfExport.ts → gltf/GltfExport.ts} +7 -7
- package/src/engine-components/export/usdz/Extension.ts +12 -0
- package/src/engine-components/export/usdz/USDZExporter.ts +216 -0
- package/src/engine-components/export/usdz/extensions/Animation.ts +306 -0
- package/src/engine-components/export/usdz/types.ts +39 -0
- package/src/engine-components/export/usdz/utils/animationutils.ts +60 -0
- package/src/engine-components/export/usdz/utils/quicklook.ts +43 -0
- package/src/engine-components/export/usdz/utils/timeutils.ts +20 -0
- package/src/engine-components/ui/Graphic.ts +15 -1
- package/src/engine-components/ui/Utils.ts +5 -3
- package/lib/engine/extensions/NEEDLE_deferred_texture.js.map +0 -1
- package/lib/engine-components/export/GltfExport.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Animation.js","sourceRoot":"","sources":["../../../../../../engine-components/export/usdz/extensions/Animation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAmB,OAAO,EAAwB,OAAO,EAAE,UAAU,EAAe,MAAM,OAAO,CAAC;AACzG,YAAY;AACZ,OAAO,EAAc,WAAW,EAAE,MAAM,2CAA2C,CAAA;AAGnF,MAAM,KAAK,GAAG,QAAQ,CAAC,oBAAoB,CAAC,CAAC;AAQ7C,MAAM,OAAO,uBAAuB;IAEhC,IAAI,KAAK,KAAa,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7E,IAAI,QAAQ,KAAa,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE7C,GAAG,CAAqB;IACxB,IAAI,CAAW;IACf,IAAI,CAAsB;IAElC,YAAY,GAAuB,EAAE,IAAoB,EAAE,IAAyB;QAChF,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;CACJ;AAED,MAAM,OAAO,aAAa;IACtB,IAAI,CAAsB;IAC1B,GAAG,CAAuB;IAC1B,GAAG,CAAuB;IAC1B,KAAK,CAAuB;IAC5B,IAAI,SAAS,KAAa,OAAO,EAAE,CAAC,CAAC,CAAC;IAE9B,GAAG,CAAqB;IACxB,IAAI,CAAW;IACf,MAAM,CAAW;IAEzB,YAAY,GAAuB,EAAE,IAAc,EAAE,MAAgB,EAAE,IAAyB;QAC5F,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,QAAQ,CAAC,KAAK;QACV,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;YAAE,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC;QACtD,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YAAE,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC;QACxD,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACzD,CAAC;IAED,SAAS;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC;IAChH,CAAC;IAED,WAAW;QACP,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC;QACtE,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,CAAC;QACrB,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,YAAY,CAAC,GAAoB;QAC7B,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjC,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YACrB,IAAI,KAAK,KAAK,IAAI,EAAE;gBAChB,OAAO,GAAG,CAAC;aACd;;gBACI,GAAG,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;SACnC;QACD,OAAO,GAAG,CAAC;IACf,CAAC;CACJ;AAID,MAAM,OAAO,kBAAkB;IAE3B,IAAI,aAAa,KAAa,OAAO,WAAW,CAAA,CAAC,CAAC;IAC1C,IAAI,GAAkB,IAAI,GAAG,EAAE,CAAC;IACxC,gEAAgE;IACxD,aAAa,GAA8B,IAAI,GAAG,EAAE,CAAC;IAE7D,cAAc,CAAC,IAAc,EAAE,IAAyB;QACpD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO;YAAE,OAAO,QAAQ,CAAC;QAC9B,IAAI,gBAAgB,GAAW,CAAC,CAAC,CAAC;QAClC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACnC,IAAI,kBAAkB,GAAG,CAAC,CAAC;YAC3B,IAAI,IAAI,EAAE,MAAM,EAAE;gBACd,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE;oBACtB,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE;wBACrB,MAAM;qBACT;oBACD,kBAAkB,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;iBAC7C;gBACD,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;aACrE;iBACI;gBACD,OAAO,CAAC,IAAI,CAAC,4BAA4B,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;aAChE;SACJ;QACD,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IAED,iBAAiB,CAAC,IAAc,EAAE,IAAyB;QACvD,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACpE,4CAA4C;QAE5C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;YAC7B,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc;YACvE,IAAI,CAAC,eAAe,EAAE;gBAClB,OAAO,CAAC,IAAI,CAAC,2BAA2B,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,CAAC;gBACzF,SAAS;gBACT,sIAAsI;gBACtI,4HAA4H;gBAC5H,0BAA0B;aAC7B;YACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE;gBACjC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;aACtC;YACD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC3C,IAAI,CAAC,GAAG;gBAAE,SAAS;YAEnB,IAAI,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;YAC3C,IAAI,CAAC,KAAK,EAAE;gBACR,KAAK,GAAG,IAAI,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;gBAC7D,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACnB;YACD,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAEtB,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,eAAe,CAAC;gBAAE,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;SAC3E;QAED,kCAAkC;QAClC,+DAA+D;QAC/D,MAAM,IAAI,GAAG,IAAI,uBAAuB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,gBAAgB,CAAC,QAAQ;QACrB,IAAI,KAAK;YACL,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAEO,WAAW,GAAyB,EAAE,CAAC;IAE/C,oBAAoB,CAAC,QAAa;QAC9B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,WAAW,EAAE;YAChC,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC;YACjC,MAAM,aAAa,GAAG,MAAM,EAAE,SAAS,KAAK,IAAI,CAAC;YACjD,IAAI,KAAK;gBACL,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAClD,IAAI,aAAa,EAAE;gBACf,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;aAChC;SACJ;IACL,CAAC;IAED,cAAc,CAAC,MAAM,EAAE,KAAiB,EAAE,QAAQ;QAE9C,UAAU,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACzC,MAAM,CAAC,GAAG,IAAgC,CAAC;YAC3C,IAAI,OAAO,CAAC,CAAC,eAAe,KAAK,UAAU,EAAE;gBACzC,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;aAC5C;QACL,CAAC,EAAE,KAAK,CAAC,CAAC;QAEV,6HAA6H;QAC7H,MAAM,GAAG,GAAG,IAAI,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3B,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;CAEJ;AAGD,MAAM,kBAAkB;IAEpB,MAAM,CAAW;IACjB,IAAI,CAAgB;IACpB,KAAK,CAAa;IAEV,QAAQ,CAAY;IAE5B,YAAY,MAAgB,EAAE,IAAmB;QAC7C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,gBAAgB,CAAC,KAAiB;QAC9B,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC7B,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC9D;QACD,IAAI,CAAC,IAAI,CAAC,QAAQ;YACd,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,KAAK;YACL,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAED,WAAW,CAAC,MAAM,EAAE,QAAQ;QACxB,IAAI,KAAK;YACL,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAChE,+BAA+B;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,CAAC,GAAG;YAAE,OAAO;QAEjB,oEAAoE;QAIpE,mDAAmD;QACnD,uEAAuE;QAEvE,MAAM,iBAAiB,GAAG,IAAI,OAAO,EAAE,CAAC;QACxC,MAAM,WAAW,GAAG,IAAI,OAAO,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,IAAI,UAAU,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAEnC,wDAAwD;QACxD,uEAAuE;QACvE;;;;UAIE;QAEF,MAAM,CAAC,UAAU,CAAC,4CAA4C,CAAC,CAAC;QAChE,MAAM,CAAC,MAAM,EAAE,CAAC;QAEhB,KAAK,MAAM,aAAa,IAAI,GAAG,EAAE;YAC7B,IAAI,UAAU,GAAG,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC;YAC1C,IAAI,CAAC,UAAU,IAAI,aAAa,CAAC,GAAG,IAAI,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,EAAE,MAAM;gBAAE,UAAU,GAAG,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC;YACpI,IAAI,CAAC,UAAU,IAAI,aAAa,CAAC,KAAK,IAAI,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,EAAE,MAAM;gBAAE,UAAU,GAAG,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC;YAC1I,IAAI,CAAC,UAAU,EAAE;gBACb,OAAO,CAAC,KAAK,CAAC,6CAA6C,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;gBACpF,SAAS;aACZ;YACD,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YAElD,IAAI,KAAK;gBACL,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,GAAG,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,WAAW,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,WAAW,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC;YAEpL,kFAAkF;YAClF,YAAY;YACZ,MAAM,mBAAmB,GAA4B,aAAa,CAAC,GAAG,EAAE,iBAAiB,EAAE,CAAC;YAC5F,YAAY;YACZ,MAAM,mBAAmB,GAA4B,aAAa,CAAC,GAAG,EAAE,iBAAiB,EAAE,CAAC;YAC5F,YAAY;YACZ,MAAM,gBAAgB,GAA4B,aAAa,CAAC,KAAK,EAAE,iBAAiB,EAAE,CAAC;YAE3F,IAAI,CAAC,mBAAmB;gBAAE,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACnG,IAAI,CAAC,mBAAmB;gBAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC3H,IAAI,CAAC,gBAAgB;gBAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAEjF,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gBACpD,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;gBAE/B,IAAI,mBAAmB,EAAE;oBACrB,MAAM,GAAG,GAAG,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBAC/C,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC3C;gBACD,IAAI,mBAAmB,EAAE;oBACrB,MAAM,IAAI,GAAG,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBAChD,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;iBACpD;gBACD,IAAI,gBAAgB,EAAE;oBAClB,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBAC9C,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC3C;gBAED,iBAAiB,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;gBAExD,IAAI,IAAI,GAAG,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,aAAa,CAAC,SAAS,KAAK,WAAW,CAAC,iBAAiB,CAAC,GAAG,CAAC;gBACjG,IAAI,KAAK;oBAAE,IAAI,GAAG,GAAG,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC;gBAC5C,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aAC3B;SAEJ;QACD,MAAM,CAAC,MAAM,EAAE,CAAC;QAChB,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAEvB;;;;;;;;;;UAUE;IACN,CAAC;CACJ"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Object3D, Matrix4, Material, BufferGeometry } from "three";
|
|
2
|
+
/** implementation is in three */
|
|
3
|
+
export declare class USDZDocument {
|
|
4
|
+
name: string;
|
|
5
|
+
get isDocumentRoot(): boolean;
|
|
6
|
+
add(obj: USDZObject): any;
|
|
7
|
+
remove(obj: USDZObject): any;
|
|
8
|
+
traverse(callback: (obj: USDZObject) => void): any;
|
|
9
|
+
findById(uuid: string): USDZObject | undefined;
|
|
10
|
+
get isDynamic(): boolean;
|
|
11
|
+
}
|
|
12
|
+
/** implementation is in three */
|
|
13
|
+
export declare class USDZObject {
|
|
14
|
+
static createEmptyParent(parent: USDZObject): any;
|
|
15
|
+
uuid: string;
|
|
16
|
+
name: string;
|
|
17
|
+
matrix: Matrix4;
|
|
18
|
+
material: Material;
|
|
19
|
+
geometry: BufferGeometry;
|
|
20
|
+
parent: USDZObject | USDZDocument | null;
|
|
21
|
+
children: USDZObject[];
|
|
22
|
+
_eventListeners: {
|
|
23
|
+
[event: string]: Function[];
|
|
24
|
+
};
|
|
25
|
+
isDynamic: boolean;
|
|
26
|
+
is(obj: Object3D): boolean;
|
|
27
|
+
isEmpty(): boolean;
|
|
28
|
+
clone(): any;
|
|
29
|
+
getPath(): any;
|
|
30
|
+
add(child: USDZObject): any;
|
|
31
|
+
remove(child: USDZObject): any;
|
|
32
|
+
addEventListener(evt: string, listener: Function): any;
|
|
33
|
+
removeEventListener(evt: string, listener: Function): any;
|
|
34
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../engine-components/export/usdz/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Animator } from "../../../Animator";
|
|
2
|
+
import { AnimationClip, KeyframeTrack } from "three";
|
|
3
|
+
import { GameObject } from "../../../Component";
|
|
4
|
+
import { getParam } from "../../../../engine/engine_utils";
|
|
5
|
+
const debug = getParam("debugusdz");
|
|
6
|
+
export function registerAnimatorsImplictly(root, ext) {
|
|
7
|
+
// collect animators and their clips
|
|
8
|
+
const animationClips = [];
|
|
9
|
+
const animators = GameObject.getComponentsInChildren(root, Animator);
|
|
10
|
+
// insert rest pose clip
|
|
11
|
+
let injectedRestPose = false;
|
|
12
|
+
if (debug)
|
|
13
|
+
console.log(animators);
|
|
14
|
+
for (const animator of animators) {
|
|
15
|
+
if (!animator || !animator.runtimeAnimatorController)
|
|
16
|
+
continue;
|
|
17
|
+
if (debug)
|
|
18
|
+
console.log(animator);
|
|
19
|
+
const clips = [];
|
|
20
|
+
for (const action of animator.runtimeAnimatorController.enumerateActions()) {
|
|
21
|
+
if (debug)
|
|
22
|
+
console.log(action);
|
|
23
|
+
const clip = action.getClip();
|
|
24
|
+
// we need to inject a rest pose clip so that the animation position is correct
|
|
25
|
+
// e.g. when the animation starts in the air and animates down we dont want the object to move under the ground
|
|
26
|
+
if (!injectedRestPose && clip.tracks.length > 0) {
|
|
27
|
+
injectedRestPose = true;
|
|
28
|
+
const track = clip.tracks[0];
|
|
29
|
+
const trackBaseName = track.name.substring(0, track.name.lastIndexOf("."));
|
|
30
|
+
const currentPositionTrack = new KeyframeTrack(trackBaseName + ".position", [0, .01], [0, 0, 0, 0, 0, 0]);
|
|
31
|
+
const currentRotationTrack = new KeyframeTrack(trackBaseName + ".quaternion", [0, .01], [0, 0, 0, 1, 0, 0, 0, 1]);
|
|
32
|
+
clips.push(new AnimationClip("rest", .01, [currentPositionTrack, currentRotationTrack]));
|
|
33
|
+
}
|
|
34
|
+
if (!clips.includes(clip))
|
|
35
|
+
clips.push(clip);
|
|
36
|
+
}
|
|
37
|
+
animationClips.push({ root: animator.gameObject, clips: clips });
|
|
38
|
+
}
|
|
39
|
+
if (debug)
|
|
40
|
+
console.log(animationClips);
|
|
41
|
+
for (const pair of animationClips) {
|
|
42
|
+
for (const clip of pair.clips)
|
|
43
|
+
ext.registerAnimation(pair.root, clip);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=animationutils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"animationutils.js","sourceRoot":"","sources":["../../../../../../engine-components/export/usdz/utils/animationutils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAmB,aAAa,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAE3D,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;AAEpC,MAAM,UAAU,0BAA0B,CAAC,IAAc,EAAE,GAAuB;IAE9E,oCAAoC;IACpC,MAAM,cAAc,GAAuD,EAAE,CAAC;IAC9E,MAAM,SAAS,GAAG,UAAU,CAAC,uBAAuB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAErE,wBAAwB;IACxB,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAE7B,IAAI,KAAK;QACL,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAE3B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;QAC9B,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,yBAAyB;YAAE,SAAS;QAE/D,IAAI,KAAK;YACL,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE1B,MAAM,KAAK,GAA0B,EAAE,CAAC;QAGxC,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,yBAAyB,CAAC,gBAAgB,EAAE,EAAE;YACxE,IAAI,KAAK;gBACL,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACxB,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;YAE9B,+EAA+E;YAC/E,+GAA+G;YAC/G,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC7C,gBAAgB,GAAG,IAAI,CAAC;gBACxB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC7B,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC3E,MAAM,oBAAoB,GAAG,IAAI,aAAa,CAAC,aAAa,GAAG,WAAW,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC1G,MAAM,oBAAoB,GAAG,IAAI,aAAa,CAAC,aAAa,GAAG,aAAa,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAClH,KAAK,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,oBAAoB,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC;aAC5F;YAED,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACrB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACxB;QAED,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;KACpE;IAED,IAAI,KAAK;QACL,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAEhC,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE;QAC/B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK;YACzB,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KAC9C;AACL,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export function ensureQuicklookLinkIsCreated(context) {
|
|
2
|
+
const existingLink = context.domElement.querySelector("link[rel='ar']");
|
|
3
|
+
if (existingLink)
|
|
4
|
+
return existingLink;
|
|
5
|
+
/*
|
|
6
|
+
generating this:
|
|
7
|
+
<div class="menu">
|
|
8
|
+
<button id="open-in-ar">Open in QuickLook</button>
|
|
9
|
+
<a style="display:none;" id="link" rel="ar" href="" download="asset.usdz">
|
|
10
|
+
<img id="button" width="100" src="files/arkit.png">
|
|
11
|
+
</a>
|
|
12
|
+
</div>
|
|
13
|
+
*/
|
|
14
|
+
const div = document.createElement("div");
|
|
15
|
+
div.classList.add("menu");
|
|
16
|
+
div.classList.add("quicklook-menu");
|
|
17
|
+
div.style.display = "none";
|
|
18
|
+
div.style.visibility = "hidden";
|
|
19
|
+
const button = document.createElement("button");
|
|
20
|
+
button.id = "open-in-ar";
|
|
21
|
+
button.innerText = "Open in QuickLook";
|
|
22
|
+
div.appendChild(button);
|
|
23
|
+
const link = document.createElement("a");
|
|
24
|
+
link.id = "needle-usdz-link";
|
|
25
|
+
link.style.display = "none";
|
|
26
|
+
link.rel = "ar";
|
|
27
|
+
link.href = "";
|
|
28
|
+
div.appendChild(link);
|
|
29
|
+
const img = document.createElement("img");
|
|
30
|
+
img.id = "button";
|
|
31
|
+
// img.src = "files/arkit.png";
|
|
32
|
+
link.appendChild(img);
|
|
33
|
+
context.domElement.appendChild(div);
|
|
34
|
+
return link;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=quicklook.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quicklook.js","sourceRoot":"","sources":["../../../../../../engine-components/export/usdz/utils/quicklook.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,4BAA4B,CAAC,OAAgB;IACzD,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;IACxE,IAAG,YAAY;QAAE,OAAO,YAAiC,CAAC;IAE1D;;;;;;;;MAQE;IAEF,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC1C,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACpC,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;IAC3B,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;IAEhC,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,CAAC,EAAE,GAAG,YAAY,CAAC;IACzB,MAAM,CAAC,SAAS,GAAG,mBAAmB,CAAC;IACvC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAExB,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,CAAC,EAAE,GAAG,kBAAkB,CAAC;IAC7B,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;IAC5B,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;IAChB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IACf,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAEtB,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC1C,GAAG,CAAC,EAAE,GAAG,QAAQ,CAAC;IAClB,+BAA+B;IAC/B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAEtB,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACpC,OAAO,IAAyB,CAAC;AACrC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getFormattedDate(): string;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export function getFormattedDate() {
|
|
2
|
+
var date = new Date();
|
|
3
|
+
const month = date.getMonth() + 1;
|
|
4
|
+
const day = date.getDate();
|
|
5
|
+
const hour = date.getHours();
|
|
6
|
+
const min = date.getMinutes();
|
|
7
|
+
const sec = date.getSeconds();
|
|
8
|
+
const s_month = (month < 10 ? "0" : "") + month;
|
|
9
|
+
const s_day = (day < 10 ? "0" : "") + day;
|
|
10
|
+
const s_hour = (hour < 10 ? "0" : "") + hour;
|
|
11
|
+
const s_min = (min < 10 ? "0" : "") + min;
|
|
12
|
+
const s_sec = (sec < 10 ? "0" : "") + sec;
|
|
13
|
+
return date.getFullYear() + s_month + s_day + "-" + s_hour + s_min + s_sec;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=timeutils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeutils.js","sourceRoot":"","sources":["../../../../../../engine-components/export/usdz/utils/timeutils.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,gBAAgB;IAC5B,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IAEtB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAClC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;IAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;IAE9B,MAAM,OAAO,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;IAChD,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;IAC1C,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;IAC7C,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;IAC1C,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;IAE1C,OAAO,IAAI,CAAC,WAAW,EAAE,GAAG,OAAO,GAAG,KAAK,GAAG,GAAG,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;AAC/E,CAAC"}
|
|
@@ -26,6 +26,8 @@ export declare class Graphic extends BaseUIComponent implements IGraphic {
|
|
|
26
26
|
protected onBeforeCreate(_opts: any): void;
|
|
27
27
|
protected onCreate(opts: any): void;
|
|
28
28
|
protected onAfterCreated(): void;
|
|
29
|
+
/** used internally to ensure textures assigned to UI use linear encoding */
|
|
30
|
+
static textureCache: Map<Texture, Texture>;
|
|
29
31
|
protected setTexture(tex: Texture | null | undefined): Promise<void>;
|
|
30
32
|
protected onAfterAddedToScene(): void;
|
|
31
33
|
}
|
|
@@ -7,6 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
import { RGBAColor } from "../js-extensions/RGBAColor";
|
|
8
8
|
import { BaseUIComponent } from "./BaseUIComponent";
|
|
9
9
|
import { serializable } from '../../engine/engine_serialization_decorator';
|
|
10
|
+
import { LinearEncoding, sRGBEncoding } from 'three';
|
|
10
11
|
import { RectTransform } from './RectTransform';
|
|
11
12
|
import { onChange, scheduleAction } from "./Utils";
|
|
12
13
|
import { GameObject } from '../Component';
|
|
@@ -109,11 +110,25 @@ export class Graphic extends BaseUIComponent {
|
|
|
109
110
|
this.uiObject.name = this.name;
|
|
110
111
|
}
|
|
111
112
|
onAfterCreated() { }
|
|
113
|
+
/** used internally to ensure textures assigned to UI use linear encoding */
|
|
114
|
+
static textureCache = new Map();
|
|
112
115
|
async setTexture(tex) {
|
|
113
116
|
if (!tex)
|
|
114
117
|
return;
|
|
115
118
|
this.setOptions({ backgroundOpacity: 0 });
|
|
116
119
|
if (tex) {
|
|
120
|
+
// workaround for https://github.com/needle-tools/needle-engine-support/issues/109
|
|
121
|
+
if (tex.encoding === sRGBEncoding) {
|
|
122
|
+
if (Graphic.textureCache.has(tex)) {
|
|
123
|
+
tex = Graphic.textureCache.get(tex);
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
const clone = tex.clone();
|
|
127
|
+
clone.encoding = LinearEncoding;
|
|
128
|
+
Graphic.textureCache.set(tex, clone);
|
|
129
|
+
tex = clone;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
117
132
|
this.setOptions({ backgroundTexture: tex, borderRadius: 0, backgroundOpacity: this.color.alpha, backgroundSize: "stretch" });
|
|
118
133
|
}
|
|
119
134
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Graphic.js","sourceRoot":"","sources":["../../../../engine-components/ui/Graphic.ts"],"names":[],"mappings":";;;;;;AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,6CAA6C,CAAC;
|
|
1
|
+
{"version":3,"file":"Graphic.js","sourceRoot":"","sources":["../../../../engine-components/ui/Graphic.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@ export declare type RevocableProxy = {
|
|
|
14
14
|
revoke: () => void;
|
|
15
15
|
};
|
|
16
16
|
/** internal method to proxy a field to detect changes */
|
|
17
|
+
/**@deprecated use watcher instead */
|
|
17
18
|
export declare function onChange<T extends object>(caller: T, field: string, callback: (newValue: any, oldValue: any) => void): RevocableProxy;
|
|
18
|
-
/** internal method to
|
|
19
|
+
/** internal method to schedule a function at a specific moment in the update loop */
|
|
19
20
|
export declare function scheduleAction(caller: Behaviour, action: Function, timing?: FrameEvent): void;
|
|
@@ -36,6 +36,7 @@ export function updateRenderSettings(shadowComponent, settings) {
|
|
|
36
36
|
}
|
|
37
37
|
// TODO: change to use utils Watch since a revocable proxy makes a object completely useless once it is revoked
|
|
38
38
|
/** internal method to proxy a field to detect changes */
|
|
39
|
+
/**@deprecated use watcher instead */
|
|
39
40
|
export function onChange(caller, field, callback) {
|
|
40
41
|
if (caller[field] === undefined) {
|
|
41
42
|
console.warn("Field", field, "is undefined on", caller);
|
|
@@ -62,12 +63,13 @@ export function onChange(caller, field, callback) {
|
|
|
62
63
|
caller[field] = res.proxy;
|
|
63
64
|
return res;
|
|
64
65
|
}
|
|
66
|
+
const $scheduledActionKey = Symbol("Scheduled action");
|
|
65
67
|
// use to schedule a callback at a specific moment in the frame
|
|
66
|
-
/** internal method to
|
|
68
|
+
/** internal method to schedule a function at a specific moment in the update loop */
|
|
67
69
|
export function scheduleAction(caller, action, timing = FrameEvent.OnBeforeRender) {
|
|
68
|
-
let cache = caller[
|
|
70
|
+
let cache = caller[$scheduledActionKey];
|
|
69
71
|
if (!cache)
|
|
70
|
-
cache = caller[
|
|
72
|
+
cache = caller[$scheduledActionKey] = {};
|
|
71
73
|
const key = action.name;
|
|
72
74
|
if (!cache[timing])
|
|
73
75
|
cache[timing] = {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Utils.js","sourceRoot":"","sources":["../../../../engine-components/ui/Utils.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Utils.js","sourceRoot":"","sources":["../../../../engine-components/ui/Utils.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": "2.
|
|
3
|
+
"version": "2.53.0-pre",
|
|
4
4
|
"description": "Needle Engine is a web-based runtime for 3D apps. It runs on your machine for development, and can be deployed anywhere. It is flexible, extensible, and collaboration and XR come naturally.",
|
|
5
5
|
"main": "dist/needle-engine.js",
|
|
6
6
|
"module": "src/needle-engine.ts",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"peerjs": "1.3.2",
|
|
48
48
|
"simplex-noise": "^4.0.1",
|
|
49
49
|
"stats.js": "^0.17.0",
|
|
50
|
-
"three": "npm:@needle-tools/three@^0.146.
|
|
50
|
+
"three": "npm:@needle-tools/three@^0.146.2",
|
|
51
51
|
"three-mesh-ui": "^6.4.5",
|
|
52
52
|
"three.meshline": "^1.4.0",
|
|
53
53
|
"three.quarks": "^0.7.3",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { TypeStore } from "./../engine_typestore"
|
|
2
|
-
|
|
2
|
+
|
|
3
3
|
// Import types
|
|
4
4
|
import { AlignmentConstraint } from "../../engine-components/AlignmentConstraint.ts";
|
|
5
5
|
import { Animation } from "../../engine-components/Animation.ts";
|
|
@@ -125,8 +125,6 @@ import { Avatar_MouthShapes } from "../../engine-components/avatar/Avatar_MouthS
|
|
|
125
125
|
import { Avatar_MustacheShake } from "../../engine-components/avatar/Avatar_MustacheShake.ts";
|
|
126
126
|
import { __Ignore } from "../../engine-components/codegen/components.ts";
|
|
127
127
|
import { LogStats } from "../../engine-components/debug/LogStats.ts";
|
|
128
|
-
import { GltfExportBox } from "../../engine-components/export/GltfExport.ts";
|
|
129
|
-
import { GltfExport } from "../../engine-components/export/GltfExport.ts";
|
|
130
128
|
import { RGBAColor } from "../../engine-components/js-extensions/RGBAColor.ts";
|
|
131
129
|
import { PlayableDirector } from "../../engine-components/timeline/PlayableDirector.ts";
|
|
132
130
|
import { SignalAsset } from "../../engine-components/timeline/SignalAsset.ts";
|
|
@@ -162,13 +160,19 @@ import { Rect } from "../../engine-components/ui/RectTransform.ts";
|
|
|
162
160
|
import { RectTransform } from "../../engine-components/ui/RectTransform.ts";
|
|
163
161
|
import { SpatialHtml } from "../../engine-components/ui/SpatialHtml.ts";
|
|
164
162
|
import { Text } from "../../engine-components/ui/Text.ts";
|
|
163
|
+
import { GltfExportBox } from "../../engine-components/export/gltf/GltfExport.ts";
|
|
164
|
+
import { GltfExport } from "../../engine-components/export/gltf/GltfExport.ts";
|
|
165
|
+
import { USDZExporter } from "../../engine-components/export/usdz/USDZExporter.ts";
|
|
166
|
+
import { RegisteredAnimationInfo } from "../../engine-components/export/usdz/extensions/Animation.ts";
|
|
167
|
+
import { TransformData } from "../../engine-components/export/usdz/extensions/Animation.ts";
|
|
168
|
+
import { AnimationExtension } from "../../engine-components/export/usdz/extensions/Animation.ts";
|
|
165
169
|
import { PresentationMode } from "../../engine-components-experimental/Presentation.ts";
|
|
166
170
|
import { LinesDrawer } from "../../engine-components-experimental/annotation/LineDrawer.ts";
|
|
167
171
|
import { LineInstanceHandler } from "../../engine-components-experimental/annotation/LinesManager.ts";
|
|
168
172
|
import { LinesManager } from "../../engine-components-experimental/annotation/LinesManager.ts";
|
|
169
173
|
import { PlayerSync } from "../../engine-components-experimental/networking/PlayerSync.ts";
|
|
170
174
|
import { PlayerState } from "../../engine-components-experimental/networking/PlayerSync.ts";
|
|
171
|
-
|
|
175
|
+
|
|
172
176
|
// Register types
|
|
173
177
|
TypeStore.add("AlignmentConstraint", AlignmentConstraint);
|
|
174
178
|
TypeStore.add("Animation", Animation);
|
|
@@ -294,8 +298,6 @@ TypeStore.add("Avatar_MouthShapes", Avatar_MouthShapes);
|
|
|
294
298
|
TypeStore.add("Avatar_MustacheShake", Avatar_MustacheShake);
|
|
295
299
|
TypeStore.add("__Ignore", __Ignore);
|
|
296
300
|
TypeStore.add("LogStats", LogStats);
|
|
297
|
-
TypeStore.add("GltfExportBox", GltfExportBox);
|
|
298
|
-
TypeStore.add("GltfExport", GltfExport);
|
|
299
301
|
TypeStore.add("RGBAColor", RGBAColor);
|
|
300
302
|
TypeStore.add("PlayableDirector", PlayableDirector);
|
|
301
303
|
TypeStore.add("SignalAsset", SignalAsset);
|
|
@@ -331,6 +333,12 @@ TypeStore.add("Rect", Rect);
|
|
|
331
333
|
TypeStore.add("RectTransform", RectTransform);
|
|
332
334
|
TypeStore.add("SpatialHtml", SpatialHtml);
|
|
333
335
|
TypeStore.add("Text", Text);
|
|
336
|
+
TypeStore.add("GltfExportBox", GltfExportBox);
|
|
337
|
+
TypeStore.add("GltfExport", GltfExport);
|
|
338
|
+
TypeStore.add("USDZExporter", USDZExporter);
|
|
339
|
+
TypeStore.add("RegisteredAnimationInfo", RegisteredAnimationInfo);
|
|
340
|
+
TypeStore.add("TransformData", TransformData);
|
|
341
|
+
TypeStore.add("AnimationExtension", AnimationExtension);
|
|
334
342
|
TypeStore.add("PresentationMode", PresentationMode);
|
|
335
343
|
TypeStore.add("LinesDrawer", LinesDrawer);
|
|
336
344
|
TypeStore.add("LineInstanceHandler", LineInstanceHandler);
|
|
@@ -102,7 +102,7 @@ function onGetComponent<T>(obj: Object3D | null | undefined, componentType: Cons
|
|
|
102
102
|
if (typeof componentType === "string") {
|
|
103
103
|
if (!didWarnAboutComponentAccess) {
|
|
104
104
|
didWarnAboutComponentAccess = true;
|
|
105
|
-
console.warn(`Accessing components by name is not supported.\nPlease use the component type instead. This may keep working in local development but it will fail when bundling your application.\n\nYou can import other modules your main module to get access to types\nor if you use npmdefs you can make types available globally using globalThis:\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis
|
|
105
|
+
console.warn(`Accessing components by name is not supported.\nPlease use the component type instead. This may keep working in local development but it will fail when bundling your application.\n\nYou can import other modules your main module to get access to types\nor if you use npmdefs you can make types available globally using globalThis:\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis`, componentType);
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
108
|
if (debug)
|
|
@@ -146,7 +146,7 @@ export function getComponents<T>(obj: Object3D, componentType: Constructor<T>, a
|
|
|
146
146
|
|
|
147
147
|
export function getComponentInChildren<T>(obj: Object3D, componentType: Constructor<T>, includeInactive?: boolean) {
|
|
148
148
|
const res = getComponent(obj, componentType);
|
|
149
|
-
if (includeInactive === false && res
|
|
149
|
+
if (includeInactive === false && res?.enabled === false) return null;
|
|
150
150
|
if (res) return res;
|
|
151
151
|
for (let i = 0; i < obj?.children?.length; i++) {
|
|
152
152
|
const res = getComponentInChildren(obj.children[i], componentType);
|
|
@@ -35,7 +35,10 @@ export class InstantiateIdProvider implements UIDProvider {
|
|
|
35
35
|
private _originalSeed: number;
|
|
36
36
|
private _seed: number;
|
|
37
37
|
|
|
38
|
-
constructor(seed: number) {
|
|
38
|
+
constructor(seed: string | number) {
|
|
39
|
+
if (typeof seed === "string") {
|
|
40
|
+
seed = InstantiateIdProvider.hash(seed);
|
|
41
|
+
}
|
|
39
42
|
this._originalSeed = seed;
|
|
40
43
|
this._seed = seed;
|
|
41
44
|
}
|
|
@@ -4,7 +4,8 @@ import { SerializationContext, TypeSerializer } from "./engine_serialization_cor
|
|
|
4
4
|
import { Behaviour, Component, GameObject } from "../engine-components/Component";
|
|
5
5
|
import { debugExtension } from "./engine_default_parameters";
|
|
6
6
|
import { CallInfo, EventList } from "../engine-components/EventList";
|
|
7
|
-
import { Color, Object3D } from "three";
|
|
7
|
+
import { Color, Object3D, Texture, WebGLRenderTarget } from "three";
|
|
8
|
+
import { RenderTexture } from "./engine_texture";
|
|
8
9
|
|
|
9
10
|
// export class SourcePath {
|
|
10
11
|
// src?:string
|
|
@@ -96,7 +97,10 @@ class ObjectSerializer extends TypeSerializer {
|
|
|
96
97
|
if (!res) {
|
|
97
98
|
res = GameObject.findByGuid(data.guid, context.context.scene);
|
|
98
99
|
}
|
|
99
|
-
if (!res)
|
|
100
|
+
if (!res) {
|
|
101
|
+
console.warn("Could not resolve object reference", context.path, data, context.target, context.context.scene);
|
|
102
|
+
data["could_not_resolve"] = true;
|
|
103
|
+
}
|
|
100
104
|
else if (debugExtension)
|
|
101
105
|
console.log("Deserialized object reference?", data, res, context?.nodeToObject);
|
|
102
106
|
return res;
|
|
@@ -129,15 +133,19 @@ class ComponentSerializer extends TypeSerializer {
|
|
|
129
133
|
console.log(data.guid, context.root, context.object, context.target);
|
|
130
134
|
// first search within the gltf (e.g. necessary when using AssetReference and loading a gltf without adding it to the scene)
|
|
131
135
|
// if we would search JUST the scene those references would NEVER be resolved
|
|
132
|
-
|
|
136
|
+
let res = this.findObjectForGuid(data.guid, context.root);
|
|
133
137
|
if (res) {
|
|
134
138
|
return res;
|
|
135
139
|
}
|
|
136
|
-
|
|
140
|
+
if (context.context) {
|
|
137
141
|
// if not found within the gltf use the provided context scene
|
|
138
142
|
// to find references outside
|
|
139
|
-
|
|
143
|
+
res = this.findObjectForGuid(data.guid, context.context?.scene);
|
|
144
|
+
if(res) return res;
|
|
140
145
|
}
|
|
146
|
+
console.warn("Could not resolve component reference", context.path, data, context.target);
|
|
147
|
+
data["could_not_resolve"] = true;
|
|
148
|
+
return undefined;
|
|
141
149
|
}
|
|
142
150
|
// if (data?.node !== undefined && context.nodeToObject) {
|
|
143
151
|
// return context.nodeToObject[data.node];
|
|
@@ -191,8 +199,7 @@ class EventListSerializer extends TypeSerializer {
|
|
|
191
199
|
|
|
192
200
|
onDeserialize(data: EventListData, context: SerializationContext): EventList | undefined | null {
|
|
193
201
|
// TODO: check that we dont accidentally deserialize methods to EventList objects. This is here to make is easy for react-three-fiber to just add props as { () => { } }
|
|
194
|
-
if(typeof data === "function")
|
|
195
|
-
{
|
|
202
|
+
if (typeof data === "function") {
|
|
196
203
|
const evtList = new EventList([new CallInfo(data, true)]);
|
|
197
204
|
return evtList;
|
|
198
205
|
}
|
|
@@ -284,3 +291,24 @@ class EventListSerializer extends TypeSerializer {
|
|
|
284
291
|
}
|
|
285
292
|
export const eventListSerializer = new EventListSerializer();
|
|
286
293
|
|
|
294
|
+
|
|
295
|
+
|
|
296
|
+
export class RenderTextureSerializer extends TypeSerializer {
|
|
297
|
+
constructor() {
|
|
298
|
+
super([RenderTexture, WebGLRenderTarget]);
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
onSerialize(_data: any, _context: SerializationContext) {
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
onDeserialize(data: any, context: SerializationContext) {
|
|
305
|
+
if(data instanceof Texture && context.type === RenderTexture){
|
|
306
|
+
const tex = data as Texture;
|
|
307
|
+
const rt = new RenderTexture(tex.image.width, tex.image.height);
|
|
308
|
+
rt.texture = tex;
|
|
309
|
+
return rt;
|
|
310
|
+
}
|
|
311
|
+
return undefined;
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
new RenderTextureSerializer();
|
|
@@ -181,6 +181,7 @@ export class SerializationContext {
|
|
|
181
181
|
objectToNode?: ObjectToNodeMap;
|
|
182
182
|
context?: Context;
|
|
183
183
|
path?: string;
|
|
184
|
+
type?: Constructor<any>;
|
|
184
185
|
/** holds information if a field was undefined before serialization. This gives us info if we might want to warn the user about missing attributes */
|
|
185
186
|
implementationInformation?: ImplementationInformation;
|
|
186
187
|
|
|
@@ -286,6 +287,7 @@ export function deserializeObject(obj: ISerializable, serializedData: object, co
|
|
|
286
287
|
continue;
|
|
287
288
|
}
|
|
288
289
|
|
|
290
|
+
context.type = undefined;
|
|
289
291
|
context.path = key;
|
|
290
292
|
|
|
291
293
|
if (serializedEntryInfo === null) {
|
|
@@ -376,6 +378,9 @@ function checkObjectAssignments(obj: any, serializedData: any, implementationInf
|
|
|
376
378
|
if (typeof serialized === "object") {
|
|
377
379
|
if (value === undefined || !value.isObject3D) {
|
|
378
380
|
if (typeof serialized["node"] === "number" || typeof serialized["guid"] === "string") {
|
|
381
|
+
if (serialized["could_not_resolve"]) {
|
|
382
|
+
continue;
|
|
383
|
+
}
|
|
379
384
|
const hasOtherKeys = value !== undefined && Object.keys(value).length > 1;
|
|
380
385
|
if (!hasOtherKeys) {
|
|
381
386
|
showBalloonMessage(`<strong>Missing serialization for object reference!</strong>\n\nPlease change to: \n@serializable(Object3D)\n${key}? : Object3D;\n\nin script ${typeName}.ts\n<a href="https://docs.needle.tools/serializable" target="_blank">documentation</a>`, LogType.Warn);
|
|
@@ -453,7 +458,8 @@ function deserializeObjectWithType(data: any, typeOrConstructor: Constructor<any
|
|
|
453
458
|
console.error("Error in callback", err, data);
|
|
454
459
|
}
|
|
455
460
|
}
|
|
456
|
-
|
|
461
|
+
context.type = type;
|
|
462
|
+
|
|
457
463
|
// e.g. when @serializable(Texture) and the texture is already resolved via json pointer from gltf
|
|
458
464
|
// then we dont need to do anything else
|
|
459
465
|
if (!typeIsFunction && currentValue instanceof type) return currentValue;
|
|
@@ -134,8 +134,8 @@ export class Context {
|
|
|
134
134
|
private calculateBoundingClientRect() {
|
|
135
135
|
// workaround for mozilla webXR viewer
|
|
136
136
|
if (this.isInAR) {
|
|
137
|
-
this._domX =
|
|
138
|
-
this._domY =
|
|
137
|
+
this._domX = 0;
|
|
138
|
+
this._domY = 0;
|
|
139
139
|
return;
|
|
140
140
|
}
|
|
141
141
|
if (this._boundingClientRectFrame === this.time.frame) return;
|