@needle-tools/engine 4.8.6 → 4.8.7-next.e134730

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 (54) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/{gltf-progressive-DXRy9EQz.js → gltf-progressive-BcHT3Nyo.js} +1 -1
  3. package/dist/{gltf-progressive-C-U_onhf.umd.cjs → gltf-progressive-CH3Q4H06.umd.cjs} +1 -1
  4. package/dist/{gltf-progressive-DViD_J_l.min.js → gltf-progressive-DR6HqF_h.min.js} +1 -1
  5. package/dist/{needle-engine.bundle-BTJDRZkJ.js → needle-engine.bundle-CvRpjtJj.js} +3482 -3469
  6. package/dist/{needle-engine.bundle-CQIq7Zg-.min.js → needle-engine.bundle-DrGsgE4t.min.js} +117 -117
  7. package/dist/{needle-engine.bundle-CaNItSG7.umd.cjs → needle-engine.bundle-X9nxhICu.umd.cjs} +120 -120
  8. package/dist/needle-engine.js +402 -400
  9. package/dist/needle-engine.min.js +1 -1
  10. package/dist/needle-engine.umd.cjs +1 -1
  11. package/dist/{postprocessing-61aXdqNz.umd.cjs → postprocessing-CVb_x9YY.umd.cjs} +1 -1
  12. package/dist/{postprocessing-D9jDHD0U.js → postprocessing-ORx-0eCx.js} +1 -1
  13. package/dist/{postprocessing-Be9Ds4NK.min.js → postprocessing-Ywv5oKkX.min.js} +1 -1
  14. package/dist/three-examples-BX_Sktc9.min.js +501 -0
  15. package/dist/{three-examples-BihZ_R96.js → three-examples-CNexix3E.js} +2436 -2781
  16. package/dist/{three-examples-Ce6Th3bv.umd.cjs → three-examples-DWxXVnws.umd.cjs} +21 -21
  17. package/dist/{vendor-BRpzuoJE.min.js → vendor-C43vobGc.min.js} +37 -37
  18. package/dist/{vendor-p_xp9KuJ.js → vendor-Z4SPrTcP.js} +2402 -2047
  19. package/dist/vendor-xfQ8tKF3.umd.cjs +1121 -0
  20. package/lib/engine/api.d.ts +2 -0
  21. package/lib/engine/api.js +2 -0
  22. package/lib/engine/api.js.map +1 -1
  23. package/lib/engine/engine_animation.js +1 -0
  24. package/lib/engine/engine_animation.js.map +1 -1
  25. package/lib/engine/engine_feature_flags.d.ts +3 -0
  26. package/lib/engine/engine_feature_flags.js +6 -0
  27. package/lib/engine/engine_feature_flags.js.map +1 -0
  28. package/lib/engine/engine_gameobject.js +0 -4
  29. package/lib/engine/engine_gameobject.js.map +1 -1
  30. package/lib/engine/engine_mainloop_utils.d.ts +2 -1
  31. package/lib/engine/engine_mainloop_utils.js +18 -6
  32. package/lib/engine/engine_mainloop_utils.js.map +1 -1
  33. package/lib/engine/engine_pmrem.d.ts +6 -0
  34. package/lib/engine/engine_pmrem.js +9 -40
  35. package/lib/engine/engine_pmrem.js.map +1 -1
  36. package/lib/engine/extensions/extensions.js +2 -2
  37. package/lib/engine/extensions/extensions.js.map +1 -1
  38. package/lib/engine/js-extensions/Object3D.js +19 -0
  39. package/lib/engine/js-extensions/Object3D.js.map +1 -1
  40. package/lib/engine-components/Skybox.js +9 -3
  41. package/lib/engine-components/Skybox.js.map +1 -1
  42. package/package.json +4 -3
  43. package/plugins/vite/alias.js +24 -11
  44. package/src/engine/api.ts +3 -1
  45. package/src/engine/engine_animation.ts +2 -1
  46. package/src/engine/engine_feature_flags.ts +8 -0
  47. package/src/engine/engine_gameobject.ts +0 -4
  48. package/src/engine/engine_mainloop_utils.ts +24 -8
  49. package/src/engine/engine_pmrem.ts +9 -45
  50. package/src/engine/extensions/extensions.ts +2 -2
  51. package/src/engine/js-extensions/Object3D.ts +25 -2
  52. package/src/engine-components/Skybox.ts +8 -4
  53. package/dist/three-examples-DKY9Nfge.min.js +0 -501
  54. package/dist/vendor-Ja-vKV-a.umd.cjs +0 -1121
@@ -1 +1 @@
1
- {"version":3,"file":"Skybox.js","sourceRoot":"","sources":["../../src/engine-components/Skybox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Skybox.js","sourceRoot":"","sources":["../../src/engine-components/Skybox.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,qBAAqB,EAAyB,WAAW,EAAE,uBAAuB,EAAE,gCAAgC,EAA0C,MAAM,OAAO,CAAA;AAKpL,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACrF,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,6CAA6C,CAAC;AAE3E,OAAO,EAAE,0BAA0B,EAAE,QAAQ,EAAwB,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AACtI,OAAO,EAAE,2BAA2B,EAAE,MAAM,iDAAiD,CAAC;AAC9F,OAAO,EAAE,MAAM,EAAc,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEvD,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;AAEtC,2BAA2B,CAAC,kBAAkB,CAAC,CAAC;AAChD,2BAA2B,CAAC,mBAAmB,CAAC,CAAC;AAEjD,SAAS,2BAA2B,CAAC,OAAiB,EAAE,GAAW,EAAE,MAAe,EAAE,WAAoB,EAAE,SAAmD;IAE3J,oFAAoF;IACpF,IAAI,GAAG,KAAK,aAAa,IAAI,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE;QACzE,OAAO,CAAC,IAAI,CAAC,0BAA0B,SAAS,WAAW,GAAG,kDAAkD,CAAC,CAAC;QAClH,OAAO,IAAI,CAAC;KACf;IAED,MAAM,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;IAClC,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,MAAM,CAAC,eAAe,GAAG,KAAK,CAAC;IAC/B,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC;IAC3B,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,QAAQ,CAAC,EAAE;QAC1B,IAAI,OAAO,QAAQ,KAAK,QAAQ;YAAE,OAAO;QACzC,IAAI,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAA;QACzD,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC,CAAC;IACF,0BAA0B,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IACtE,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE;QACpC,IAAI,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,mCAAmC,EAAE,SAAS,CAAC,CAAC;QACvE,6BAA6B,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,QAAQ,GAAG,IAAI,KAAK,EAAgB,CAAC;AAC3C,eAAe,CAAC,gBAAgB,CAAC,YAAY,CAAC,oBAAoB,EAAE,CAAC,IAAI,EAAE,EAAE;IACzE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC7B,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;IACxE,MAAM,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;IAC9E,MAAM,mBAAmB,GAAG,WAAW,KAAK,gBAAgB,CAAC;IAE7D,IAAI,WAAW,IAAI,CAAC,mBAAmB,EAAE;QACrC,IAAI,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,iCAAiC,GAAG,WAAW,CAAC,CAAC;QACxE,wGAAwG;QACxG,uFAAuF;QACvF,iKAAiK;QACjK,MAAM,OAAO,GAAG,2BAA2B,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC;QACnG,IAAI,OAAO;YAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACvC;IACD,IAAI,gBAAgB,EAAE;QAClB,IAAI,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,sCAAsC,GAAG,gBAAgB,CAAC,CAAC;QAClF,MAAM,OAAO,GAAG,2BAA2B,CAAC,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,IAAI,EAAE,mBAAmB,CAAC,CAAC;QACvH,IAAI,OAAO;YAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACvC;AACL,CAAC,CAAC,CAAC;AACH,eAAe,CAAC,gBAAgB,CAAC,YAAY,CAAC,oBAAoB,EAAE,GAAG,EAAE;IACrE,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;QACtC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IACxB,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,CAAC;AAGH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,OAAO,YAAa,SAAQ,SAAS;IAEvC;;;;;;;OAOG;IAGH,GAAG,CAAU;IAEb;;;OAGG;IAEH,SAAS,GAAY,IAAI,CAAC;IAE1B;;;OAGG;IAEH,UAAU,GAAY,IAAI,CAAC;IAE3B;;;OAGG;IAEH,WAAW,GAAY,IAAI,CAAC;IAE5B;;;OAGG;IAEH,eAAe,GAAY,IAAI,CAAC;IAExB,QAAQ,CAAU;IAClB,sBAAsB,CAAW;IACjC,gBAAgB,GAAmB,IAAI,CAAC;IACxC,eAAe,GAAQ,IAAI,CAAC;IAEpC,gBAAgB;IAChB,QAAQ;QACJ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC9B,CAAC;IAED,gBAAgB;IAChB,SAAS;QACL,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,KAAK,IAAI,CAAC,sBAAsB,EAAE;YAChE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC;YACvD,IAAI,CAAC,MAAM,CAAC,6BAA6B,CAAC,IAAI,CAAC,OAAO,CAAC;gBACnD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC;YACzD,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC;SAC3C;QACD,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,6DAA6D;QAC7D,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,eAAe,EAAE,CAAC;IACxD,CAAC;IAEO,mBAAmB;QACvB,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,GAAG,EAAE;YAClC,8CAA8C;YAC9C,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBAChC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aAC5B;iBACI,IAAI,KAAK,EAAE;gBACZ,OAAO,CAAC,IAAI,CAAC,qCAAqC,IAAI,CAAC,GAAG,6FAA6F,CAAC,CAAC;aAC5J;SACJ;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,SAAS,CAAC,GAA8B,EAAE,IAAa;QACzD,IAAI,CAAC,IAAI,CAAC,gBAAgB;YAAE,OAAO,KAAK,CAAC;QAEzC,GAAG,GAAG,uBAAuB,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAEtE,IAAI,CAAC,GAAG;YAAE,OAAO,KAAK,CAAC;QAEvB,IAAI,KAAK,GAAG,CAAC;QAEb,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE;YAChC,OAAO,CAAC,IAAI,CAAC,oCAAoC,GAAG,IAAI,GAAG,QAAQ,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC;SAC5H;QAED,IAAI,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB,GAAG,GAAG,CAAC,CAAC;QAExD,IAAI,IAAI,CAAC,QAAQ,KAAK,GAAG,IAAI,IAAI,CAAC,sBAAsB,EAAE;YACtD,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;SACf;aACI;YACD,IAAI,CAAC,sBAAsB,EAAE,OAAO,EAAE,CAAC;YACvC,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC;SAC3C;QACD,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;QAEpB,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC5D,IAAI,CAAC,OAAO,EAAE;YACV,IAAI,KAAK;gBAAE,OAAO,CAAC,IAAI,CAAC,+CAA+C,EAAE,GAAG,CAAC,CAAC;YAC9E,OAAO,KAAK,CAAC;SAChB;QACD,2CAA2C;QAC3C,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE;YACjC,IAAI,KAAK;gBAAE,OAAO,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;YAC5E,OAAO,KAAK,CAAC;SAChB;QACD,6CAA6C;QAC7C,IAAI,IAAI,CAAC,QAAQ,KAAK,GAAG,EAAE;YACvB,IAAI,KAAK;gBAAE,OAAO,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;YAC/F,OAAO,KAAK,CAAC,CAAC,4BAA4B;SAC7C;QACD,yBAAyB;QACzB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,sBAAsB,GAAG,OAAO,CAAC;QACtC,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IAChB,CAAC;IAGO,KAAK;QACT,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,CAAC;QAC3C,IAAI,CAAC,MAAM;YAAE,OAAO;QAEpB,IAAI,CAAC,MAAM,YAAY,WAAW,IAAI,MAAM,YAAY,qBAAqB,CAAC,IAAI,MAAM,CAAC,OAAO,IAAI,uBAAuB,EAAE;YACzH,gBAAgB;SACnB;aACI;YACD,MAAM,CAAC,OAAO,GAAG,gCAAgC,CAAC;YAClD,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC;SAC7B;QAED,IAAG,IAAI,CAAC,SAAS;YAAE,OAAO;QAC1B,IAAG,CAAC,IAAI,CAAC,OAAO,EAAE;YACd,OAAO,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;YAC/E,OAAO;SACV;QAED,gBAAgB;QAChB,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,MAAM;YACxC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC;QACzD,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,KAAK,MAAM;YACzC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC;QAC3D,IAAI,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,6BAA6B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3G,IAAI,IAAI,CAAC,WAAW;YAChB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC;QAC5C,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,6BAA6B,CAAC,IAAI,CAAC,OAAO,CAAC;YACtE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC;QAC3C,IAAI,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,oBAAoB,KAAK,SAAS;YACpE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,oBAAoB,CAAC;IACxG,CAAC;IAGgB,cAAc,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7C,iBAAiB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAEhF,eAAe,CAAC,GAAW;QAC/B,OAAO,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACnE,CAAC;IAEO,kBAAkB,CAAC,GAAW;QAClC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACvC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAC;SACvC;QACD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,cAAc,EAAE;YACxC,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAAE,OAAO,IAAI,CAAC;SAC7C;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAIO,kBAAkB;QACtB,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC3E,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAClE,CAAC;IAEO,oBAAoB;QACxB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC9E,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACrE,CAAC;IAEO,eAAe,GAAG,CAAC,CAAY,EAAE,EAAE;QACvC,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAC5B,IAAI,CAAC,CAAC,CAAC,YAAY;YAAE,OAAO;QAC5B,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE;YACrC,kDAAkD;YAClD,0CAA0C;YAC1C,yCAAyC;YACzC,6BAA6B;YAC7B,IAAI,IAAI,KAAK,eAAe,IAAI,IAAI,KAAK,OAAO,EAAE;gBAC9C,CAAC,CAAC,cAAc,EAAE,CAAC;aACtB;SACJ;IACL,CAAC,CAAC;IAEM,MAAM,GAAG,CAAC,CAAY,EAAE,EAAE;QAC9B,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAC5B,IAAI,CAAC,CAAC,CAAC,YAAY;YAAE,OAAO;QAC5B,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE;YACrC,IAAI,KAAK;gBAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC7B,IAAI,IAAI,KAAK,eAAe,EAAE;gBAC1B,MAAM,GAAG,GAAG,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACzC,IAAI,KAAK;oBAAE,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAClC,IAAI,IAAI,GAAG,IAAI,MAAM,CAAC,iDAAiD,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC;gBACjG,IAAI,CAAC,IAAI,EAAE;oBACP,IAAI,GAAG,IAAI,MAAM,CAAC,gCAAgC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC;iBAC/E;gBACD,IAAI,KAAK;oBAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC7B,IAAI,IAAI,EAAE;oBACN,MAAM,SAAS,GAAG,uDAAuD,GAAG,IAAI,GAAG,SAAS,CAAC;oBAC7F,OAAO,CAAC,GAAG,CAAC,4CAA4C,SAAS,EAAE,CAAC,CAAC;oBACrE,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;oBAC1B,MAAM;iBACT;qBACI,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE;oBACnC,OAAO,CAAC,GAAG,CAAC,2CAA2C,GAAG,GAAG,CAAC,CAAC;oBAC/D,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;oBACpB,MAAM;iBACT;qBACI;oBAED,OAAO,CAAC,IAAI,CAAC,8BAA8B,GAAG,kGAAkG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACtL,mFAAmF;oBACnF,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,qBAAqB,EAAE;wBAC/C,MAAM,EAAE;4BACJ,MAAM,EAAE,IAAI;4BACZ,KAAK,EAAE,CAAC;4BACR,GAAG;4BACH,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE;gCACnB,CAAC,CAAC,cAAc,EAAE,CAAC;gCACnB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;4BACxB,CAAC;yBACJ;qBACJ,CAAC,CAAC;oBACH,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;iBAC3B;aACJ;iBACI,IAAI,IAAI,IAAI,OAAO,EAAE;gBACtB,MAAM,IAAI,GAAG,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC1C,IAAI,KAAK;oBAAE,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACnC,IAAI,CAAC,IAAI;oBAAE,SAAS;gBACpB,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBACrC,OAAO,CAAC,IAAI,CAAC,0BAA0B,IAAI,CAAC,IAAI,4CAA4C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACjI,OAAO;iBACV;gBACD,2DAA2D;gBAC3D,qCAAqC;gBACrC,6CAA6C;gBAC7C,0BAA0B;gBAC1B,sCAAsC;gBACtC,IAAI;gBACJ,QAAQ;gBACR;oBACI,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAC7B;gBACD,MAAM;aACT;SACJ;IACL,CAAC,CAAC;CACL;AAxQG;IAFC,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,mBAAmB,CAAC;IACrD,YAAY,CAAC,GAAG,CAAC;yCACL;AAOb;IADC,YAAY,EAAE;+CACW;AAO1B;IADC,YAAY,EAAE;gDACY;AAO3B;IADC,YAAY,EAAE;iDACa;AAO5B;IADC,YAAY,EAAE;qDACiB;AAiPpC,SAAS,uBAAuB,CAAC,GAA8B,EAAE,WAAoB,EAAE,UAAmB;IAEtG,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAEnD,MAAM,SAAS,GAAG,WAAW,IAAI,CAAC,UAAU,CAAC;IAE7C,QAAQ,GAAG,CAAC,WAAW,EAAE,EAAE;QACvB,KAAK,QAAQ;YACT,IAAI,SAAS,EAAE;gBACX,OAAO,sFAAsF,CAAC;aACjG;YACD,OAAO,gFAAgF,CAAC;QAE5F,KAAK,gBAAgB;YACjB,IAAI,SAAS,EAAE;gBACX,OAAO,iFAAiF,CAAC;aAC5F;YACD,OAAO,2EAA2E,CAAC;QACvF,KAAK,cAAc;YACf,IAAI,SAAS,EAAE;gBACX,OAAO,mFAAmF,CAAC;aAC9F;YACD,OAAO,6EAA6E,CAAC;QACzF,KAAK,WAAW;YACZ,IAAI,SAAS,EAAE;gBACX,OAAO,uFAAuF,CAAC;aAClG;YACD,OAAO,iFAAiF,CAAC;KAChG;IAID,OAAO,GAAG,CAAC;AACf,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@needle-tools/engine",
3
- "version": "4.8.6",
3
+ "version": "4.8.7-next.e134730",
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.min.js",
6
6
  "exports": {
@@ -94,6 +94,7 @@
94
94
  "dependencies": {
95
95
  "@dimforge/rapier3d-compat": "^0.14.0",
96
96
  "@needle-tools/gltf-progressive": "3.3.2",
97
+ "@needle-tools/three-animation-pointer": "1.0.1",
97
98
  "@webxr-input-profiles/motion-controllers": "^1.0.0",
98
99
  "flatbuffers": "2.0.4",
99
100
  "md5": "^2.3.0",
@@ -102,7 +103,7 @@
102
103
  "postprocessing": "^6.36.6",
103
104
  "simplex-noise": "^4.0.1",
104
105
  "stats.js": "^0.17.0",
105
- "three": "npm:@needle-tools/three@0.169.9",
106
+ "three": "npm:@needle-tools/three@0.169.10",
106
107
  "three-mesh-bvh": "^0.9.1",
107
108
  "three-mesh-ui": "npm:@needle-tools/three-mesh-ui@^7.1.5-alpha.5",
108
109
  "three.quarks": "0.15.6",
@@ -167,4 +168,4 @@
167
168
  "module": "lib/needle-engine.js",
168
169
  "typings": "lib/needle-engine.d.ts",
169
170
  "types": "lib/needle-engine.d.ts"
170
- }
171
+ }
@@ -26,9 +26,7 @@ const packages_to_resolve = {
26
26
  'three/nodes': (res, packageName, index, path) => {
27
27
  return "three/examples/jsm/nodes/Nodes.js";
28
28
  },
29
- 'three': (res, packageName, index, _path) => {
30
- return path.resolve(projectDir, 'node_modules', 'three');
31
- },
29
+ 'three': "auto-resolve",
32
30
 
33
31
  // Handle all previous imports where users did import using @needle-engine/src
34
32
  '@needle-tools/engine/src': (res, packageName, index, path) => {
@@ -61,6 +59,10 @@ const packages_to_resolve = {
61
59
  'three-mesh-bvh': "auto-resolve",
62
60
  'postprocessing': "auto-resolve",
63
61
  '@dimforge/rapier3d-compat': "auto-resolve",
62
+
63
+ '@needle-tools/gltf-progressive': "auto-resolve",
64
+ '@needle-tools/materialx': "auto-resolve",
65
+ '@needle-tools/materialx/needle': "auto-resolve"
64
66
  }
65
67
 
66
68
  /**
@@ -76,7 +78,10 @@ export const needleViteAlias = (command, config, userSettings) => {
76
78
  let outputDebugFile = null;
77
79
  function log(...msg) {
78
80
  console.log(...msg);
79
- if (debug && outputDebugFile) outputDebugFile.write(msg.join(" ") + "\n");
81
+ if (debug) logToFile(...msg);
82
+ }
83
+ function logToFile(...msg) {
84
+ outputDebugFile?.write(msg.join(" ") + "\n");
80
85
  }
81
86
  if (debug) {
82
87
  const outputFilePath = path.resolve(projectDir, 'node_modules/.vite/needle.alias.log');
@@ -118,6 +123,7 @@ export const needleViteAlias = (command, config, userSettings) => {
118
123
  },
119
124
  }
120
125
 
126
+ /** @type {string|undefined} */
121
127
  let lastImporter = "";
122
128
  /** This plugin logs all imports. This helps to find cases where incorrect folders are found/resolved. */
123
129
 
@@ -140,15 +146,16 @@ export const needleViteAlias = (command, config, userSettings) => {
140
146
  // verbose logging for all imports
141
147
  if (lastImporter !== importer) {
142
148
  lastImporter = importer;
143
- log(`[needle-alias] Resolving: ${importer} (file${options?.ssr ? ", SSR" : ""})`);
149
+ logToFile(`[needle-alias] Resolving: ${importer} (file${options?.ssr ? ", SSR" : ""})`);
144
150
  }
145
- log(`[needle-alias] → ${id}`);
151
+ logToFile(`[needle-alias] → ${id}`);
146
152
  return;
147
153
  },
148
154
  }
149
155
  if (debug) return [debuggingPlugin, aliasPlugin];
150
156
  return [aliasPlugin];
151
157
 
158
+
152
159
  /**
153
160
  * Adds a path resolver to the alias dictionary.
154
161
  * @param {string} name - The name of the package to resolve.
@@ -163,23 +170,29 @@ export const needleViteAlias = (command, config, userSettings) => {
163
170
  const callback = typeof value === "function" ? value : null;
164
171
 
165
172
  let fullpath = path.resolve(projectDir, 'node_modules', name);
166
- if (!existsSync(fullpath)) {
167
- fullpath = path.resolve(projectDir, 'node_modules', "@needle-tools/engine", "node_modules", name);
173
+ // if (!existsSync(path.resolve(fullpath, "package.json")))
174
+ {
175
+ const pathInEngine = path.resolve(projectDir, 'node_modules', "@needle-tools/engine", "node_modules", name);
176
+ if (existsSync(pathInEngine)) {
177
+ fullpath = pathInEngine;
178
+ }
168
179
  }
169
180
 
181
+ const workingDirectory = `${process.cwd()}/`;
182
+
170
183
  if (existsSync(fullpath)) {
171
184
  aliasDict[name] = (packageName, index, path) => {
172
185
  if (callback !== null) {
173
186
  const overrideResult = callback(fullpath, packageName, index, path);
174
187
  if (typeof overrideResult === "string")
175
188
  if (existsSync(overrideResult)) {
176
- if (debug) console.warn(`[needle-alias] \"${path}\" was requested and resolved to \"${overrideResult}\"`);
189
+ if (debug && overrideResult !== packageName) console.warn(`[needle-alias] Resolved \"${path}\"\"${overrideResult.substring(workingDirectory.length).replaceAll("\\", "/")}\"`);
177
190
  return overrideResult;
178
191
  }
179
192
  }
180
193
 
181
- if (debug && path != packageName) {
182
- console.warn(`[needle-alias] \"${path}\" was requested and resolved to \"${fullpath}\"`);
194
+ if (debug && path !== packageName) {
195
+ console.warn(`[needle-alias] Resolved \"${path}\"\"${fullpath.substring(workingDirectory.length).replaceAll("\\", "/")}\"`);
183
196
  }
184
197
 
185
198
  return fullpath;
package/src/engine/api.ts CHANGED
@@ -33,6 +33,7 @@ export * from "./engine_context.js";
33
33
  export * from "./engine_context_registry.js";
34
34
  export * from "./engine_coroutine.js"
35
35
  export * from "./engine_create_objects.js";
36
+ export * from "./engine_feature_flags.js"
36
37
  export * from "./engine_gameobject.js";
37
38
  export { Gizmos } from "./engine_gizmos.js"
38
39
  export * from "./engine_gltf.js";
@@ -42,7 +43,7 @@ export { InstancingUtil } from "./engine_instancing.js";
42
43
  export { hasCommercialLicense, hasIndieLicense, hasProLicense } from "./engine_license.js";
43
44
  export * from "./engine_lifecycle_api.js";
44
45
  export { NeedleEngineModelLoader } from "./engine_loaders.callbacks.js";
45
- export { loadAsset, loadSync,parseSync } from "./engine_loaders.js";
46
+ export { loadAsset, loadSync, parseSync } from "./engine_loaders.js";
46
47
  export * from "./engine_math.js";
47
48
  export { MODULES as NEEDLE_ENGINE_MODULES } from "./engine_modules.js";
48
49
  export * from "./engine_networking.js";
@@ -59,6 +60,7 @@ export * from "./engine_physics.js";
59
60
  export * from "./engine_physics.types.js";
60
61
  export * from "./engine_physics_rapier.js";
61
62
  export * from "./engine_playerview.js";
63
+ export { loadPMREM } from "./engine_pmrem.js";
62
64
  export * from "./engine_scenelighting.js";
63
65
  export * from "./engine_serialization.js";
64
66
  export { type ISerializable } from "./engine_serialization_core.js";
@@ -122,7 +122,8 @@ export class AnimationUtils {
122
122
  console.warn("No AnimationComponent found in parent hierarchy of object and no 'createAnimationComponent' callback was provided in options.")
123
123
  continue;
124
124
  }
125
- animationComponent = opts.createAnimationComponent(file.scene, animation)
125
+ animationComponent = opts.createAnimationComponent(file.scene, animation);
126
+ obj.addComponent(animationComponent);
126
127
  }
127
128
  if (animationComponent.addClip) {
128
129
  animationComponent.addClip(animation);
@@ -0,0 +1,8 @@
1
+
2
+
3
+ export namespace NEEDLE_ENGINE_FEATURE_FLAGS {
4
+
5
+ // eslint-disable-next-line prefer-const
6
+ export let experimentalSmartHierarchyUpdate = false;
7
+
8
+ }
@@ -105,11 +105,7 @@ export class InstantiateOptions implements IInstantiateOptions {
105
105
  // });
106
106
 
107
107
 
108
- const $isActive = Symbol("isActive");
109
108
  export function isActiveSelf(go: Object3D): boolean {
110
- // if (go[$isActive] === undefined) {
111
- // go[$isActive] = true;
112
- // }
113
109
  return go.visible;
114
110
  }
115
111
 
@@ -3,6 +3,7 @@ import { CubeCamera, Object3D, Scene, WebGLCubeRenderTarget } from 'three';
3
3
  import { isDevEnvironment } from "./debug/index.js";
4
4
  import * as constants from "./engine_constants.js";
5
5
  import { ContextRegistry } from "./engine_context_registry.js";
6
+ import { NEEDLE_ENGINE_FEATURE_FLAGS } from './engine_feature_flags.js';
6
7
  import { isActiveSelf } from './engine_gameobject.js';
7
8
  import { safeInvoke } from "./engine_generic_utils.js";
8
9
  import type { IComponent, IContext } from './engine_types.js';
@@ -31,7 +32,7 @@ export function processNewScripts(context: IContext) {
31
32
  if (debug)
32
33
  console.log("Register new components", context.new_scripts.length, [...context.new_scripts], context.alias ? ("element: " + context.alias) : context["hash"], context);
33
34
 
34
-
35
+
35
36
  if (context.new_scripts_pre_setup_callbacks.length > 0) {
36
37
  for (const cb of context.new_scripts_pre_setup_callbacks) {
37
38
  if (!cb) continue;
@@ -39,7 +40,7 @@ export function processNewScripts(context: IContext) {
39
40
  }
40
41
  context.new_scripts_pre_setup_callbacks.length = 0;
41
42
  }
42
-
43
+
43
44
  if (context.new_scripts.length <= 0) return;
44
45
 
45
46
  // TODO: update all the code from above to use this logic
@@ -269,8 +270,22 @@ export function isNeedleXRSessionEventReceiver(script: any, mode: XRSessionMode
269
270
  }
270
271
 
271
272
 
273
+ let needsUpdate = true;
274
+ export function markHierarchyDirty() {
275
+ needsUpdate = true;
276
+ }
277
+
272
278
  /** @internal */
273
- export function updateIsActive(obj?: Object3D) {
279
+ export function updateIsActive(obj?: Object3D, force: boolean = false) {
280
+
281
+ if (NEEDLE_ENGINE_FEATURE_FLAGS.experimentalSmartHierarchyUpdate) {
282
+
283
+ if (!force) {
284
+ if (!needsUpdate) return;
285
+ }
286
+ needsUpdate = false;
287
+ }
288
+
274
289
  if (!obj) obj = ContextRegistry.Current.scene;
275
290
  if (!obj) {
276
291
  console.trace("Invalid call - no current context.");
@@ -295,11 +310,11 @@ function updateIsActiveInHierarchyRecursiveRuntime(go: Object3D, activeInHierarc
295
310
  return false;
296
311
  }
297
312
 
298
- const isActive = isActiveSelf(go);
313
+ const activeSelf = isActiveSelf(go);
299
314
  if (activeInHierarchy) {
300
- activeInHierarchy = isActive;
315
+ activeInHierarchy = activeSelf;
301
316
  // IF we update activeInHierarchy within a disabled hierarchy we need to check the parent
302
- if (activeInHierarchy && go.parent) {
317
+ if (activeInHierarchy && go.parent && level === 0) {
303
318
  const parent = go.parent;
304
319
  activeInHierarchy = parent[constants.activeInHierarchyFieldName];
305
320
  if (activeInHierarchy === undefined) {
@@ -315,12 +330,13 @@ function updateIsActiveInHierarchyRecursiveRuntime(go: Object3D, activeInHierarc
315
330
 
316
331
  const prevActive = go[constants.activeInHierarchyFieldName];
317
332
  const changed = prevActive !== activeInHierarchy;
318
- go[constants.activeInHierarchyFieldName] = activeInHierarchy;
319
333
 
320
334
  // only raise events here if we didnt call enable etc already
321
335
  if (changed) {
336
+ go[constants.activeInHierarchyFieldName] = activeInHierarchy;
337
+
322
338
  if (debugHierarchy)
323
- console.warn("ACTIVE CHANGE", go.name, isActive, go.visible, activeInHierarchy, "changed?" + changed, go);
339
+ console.warn("ACTIVE CHANGE", go.name, activeSelf, go.visible, activeInHierarchy, "changed?" + changed, go);
324
340
  if (allowEventCall) {
325
341
  perComponent(go, comp => {
326
342
  if (activeInHierarchy) {
@@ -4,12 +4,16 @@ import { EXRLoader } from "three/examples/jsm/loaders/EXRLoader";
4
4
  import { KTX2Loader } from "three/examples/jsm/loaders/KTX2Loader";
5
5
  import { RGBELoader } from "three/examples/jsm/loaders/RGBELoader";
6
6
 
7
- import { disposeObjectResources, setDisposable } from "./engine_assetdatabase.js";
8
-
9
7
  const running: Map<string, Promise<Texture | null>> = new Map();
10
8
 
11
9
  // #region api
12
10
 
11
+ /**
12
+ * Loads a PMREM texture from the given URL. This also supports the ultra-fast preprocessed environment maps (PMREM) format.
13
+ * @param url The URL of the PMREM texture to load.
14
+ * @param renderer The WebGLRenderer to use for loading the texture.
15
+ * @returns A promise that resolves to the loaded texture or null if loading failed.
16
+ */
13
17
  export function loadPMREM(url: string, renderer: WebGLRenderer): Promise<Texture | null> {
14
18
  if (running.has(url)) {
15
19
  return running.get(url)!;
@@ -17,47 +21,13 @@ export function loadPMREM(url: string, renderer: WebGLRenderer): Promise<Texture
17
21
  const actualUrl = new URL(url, window.location.href);
18
22
  const promise = internalLoadPMREM(actualUrl, renderer);
19
23
  running.set(url, promise);
24
+ promise.finally(() => {
25
+ running.delete(url);
26
+ });
20
27
  return promise;
21
28
  }
22
29
 
23
30
 
24
-
25
- // #region Cache
26
-
27
- declare type SkyboxCacheEntry = { src: string, texture: Promise<Texture | null> };
28
- function ensureGlobalCache() {
29
- if (!globalThis["NEEDLE_ENGINE_SKYBOX_TEXTURES"])
30
- globalThis["NEEDLE_ENGINE_SKYBOX_TEXTURES"] = new Array<SkyboxCacheEntry>();
31
- return globalThis["NEEDLE_ENGINE_SKYBOX_TEXTURES"] as Array<SkyboxCacheEntry>;
32
- }
33
-
34
- function tryGetPreviouslyLoadedTexture(src: string) {
35
- const cache = ensureGlobalCache();
36
- const found = cache.find(x => x.src === src);
37
- if (found) {
38
- return found.texture;
39
- }
40
- return null;
41
- }
42
- async function disposeCachedTexture(tex: Promise<Texture | null>) {
43
- const texture = await tex;
44
- if (!texture) return;
45
- setDisposable(texture, true);
46
- disposeObjectResources(texture);
47
- }
48
- function registerPromise(src: string, texture: Promise<Texture | null>) {
49
- const cache = ensureGlobalCache();
50
- // Make sure the cache doesnt get too big
51
- while (cache.length > 5) {
52
- const entry = cache.shift();
53
- if (entry) { disposeCachedTexture(entry.texture); }
54
- }
55
- texture.then(t => { return setDisposable(t, false) });
56
- cache.push({ src, texture });
57
- }
58
-
59
-
60
-
61
31
  // #region loading
62
32
 
63
33
 
@@ -67,11 +37,6 @@ async function internalLoadPMREM(url: URL, renderer: WebGLRenderer) {
67
37
  const pathname = url.pathname;
68
38
  const isPMREM_URL: boolean = url.toString().toLowerCase().includes("pmrem") || url.searchParams.get("pmrem") != null;
69
39
 
70
- const cached = tryGetPreviouslyLoadedTexture(pathname);
71
- if (cached) {
72
- const res = await cached;
73
- if (res?.source?.data?.length > 0 || res?.source?.data?.data?.length) return res;
74
- }
75
40
  const isEXR = pathname.endsWith(".exr");
76
41
  const isHdr = pathname.endsWith(".hdr");
77
42
  const isKtx2 = pathname.endsWith(".ktx2");
@@ -110,7 +75,6 @@ async function internalLoadPMREM(url: URL, renderer: WebGLRenderer) {
110
75
  return tex;
111
76
  });
112
77
 
113
- registerPromise(str, promise);
114
78
  const texture = await promise.catch(_err => {
115
79
  console.warn("Failed to load texture from url:", url);
116
80
  return null;
@@ -22,11 +22,11 @@ const debug = getParam("debugextensions");
22
22
 
23
23
  // lazily import the GLTFAnimationPointerExtension in case it doesnt exist (e.g. using vanilla three)
24
24
  let GLTFAnimationPointerExtension: any;
25
- const KHR_ANIMATIONPOINTER_IMPORT = import("three/examples/jsm/loaders/GLTFLoaderAnimationPointer.js").then(async mod => {
25
+ const KHR_ANIMATIONPOINTER_IMPORT = import("@needle-tools/three-animation-pointer").then(async mod => {
26
26
  GLTFAnimationPointerExtension = mod.GLTFAnimationPointerExtension;
27
27
  return GLTFAnimationPointerExtension;
28
28
  }).catch(e => {
29
- console.warn("Failed to import GLTFLoaderAnimationPointer. Please use @needle-tools/three for full KHR_animation support", e);
29
+ console.warn("Failed to import GLTFLoaderAnimationPointer. Please use @needle-tools/three-animationpointer for full KHR_animation support", e);
30
30
  });
31
31
 
32
32
 
@@ -1,7 +1,7 @@
1
1
  import { Object3D, Quaternion, Vector3 } from "three";
2
2
  import { TransformControlsGizmo } from "three/examples/jsm/controls/TransformControls.js";
3
3
 
4
- import { addComponent, addNewComponent, getComponent, getComponentInChildren, getComponentInParent, getComponents, getComponentsInChildren, getComponentsInParent, getOrAddComponent, removeComponent } from "../../engine/engine_components.js";
4
+ import { addComponent, getComponent, getComponentInChildren, getComponentInParent, getComponents, getComponentsInChildren, getComponentsInParent, getOrAddComponent, removeComponent } from "../../engine/engine_components.js";
5
5
  import { destroy, isActiveSelf, setActive } from "../../engine/engine_gameobject.js";
6
6
  import {
7
7
  getTempVector,
@@ -15,7 +15,9 @@ import {
15
15
  setWorldScale
16
16
  }
17
17
  from "../../engine/engine_three_utils.js";
18
- import type { ComponentInit, Constructor, ConstructorConcrete, HideFlags,IComponent as Component, IComponent } from "../../engine/engine_types.js";
18
+ import type { ComponentInit, Constructor, ConstructorConcrete, HideFlags, IComponent as Component, IComponent } from "../../engine/engine_types.js";
19
+ import { NEEDLE_ENGINE_FEATURE_FLAGS } from "../engine_feature_flags.js";
20
+ import { markHierarchyDirty } from "../engine_mainloop_utils.js";
19
21
  import { applyPrototypeExtensions, registerPrototypeExtensions } from "./ExtensionUtils.js";
20
22
 
21
23
 
@@ -150,6 +152,27 @@ export function apply(object: Object3D) {
150
152
  }
151
153
  }
152
154
 
155
+ if (NEEDLE_ENGINE_FEATURE_FLAGS.experimentalSmartHierarchyUpdate) {
156
+
157
+ const addFn = Object3D.prototype.add;
158
+ Object3D.prototype.add = function (...args: any) {
159
+ markHierarchyDirty();
160
+ return addFn.apply(this, args);
161
+ }
162
+
163
+ const attachFn = Object3D.prototype.attach;
164
+ Object3D.prototype.attach = function (...args: any) {
165
+ markHierarchyDirty();
166
+ return attachFn.apply(this, args);
167
+ }
168
+
169
+ const removeFn = Object3D.prototype.remove;
170
+ Object3D.prototype.remove = function (...args: any) {
171
+ markHierarchyDirty();
172
+ return removeFn.apply(this, args);
173
+ }
174
+ }
175
+
153
176
 
154
177
  Object3D.prototype["SetActive"] = function (active: boolean) {
155
178
  this.visible = active;
@@ -217,9 +217,9 @@ export class RemoteSkybox extends Behaviour {
217
217
  if (debug) console.warn("RemoteSkybox: Failed to load texture from url", url);
218
218
  return false;
219
219
  }
220
- // Check if we're still enabled
221
- if (!this.enabled) {
222
- if (debug) console.warn("RemoteSkybox: Component is not enabled, aborting setSkybox");
220
+ // Check if we're not disabled or destroyed
221
+ if (!this.enabled || this.destroyed) {
222
+ if (debug) console.warn("RemoteSkybox: Component is disabled or destroyed");
223
223
  return false;
224
224
  }
225
225
  // Check if the url has changed while loading
@@ -239,7 +239,6 @@ export class RemoteSkybox extends Behaviour {
239
239
  const envMap = this._prevLoadedEnvironment;
240
240
  if (!envMap) return;
241
241
 
242
-
243
242
  if ((envMap instanceof CubeTexture || envMap instanceof CompressedCubeTexture) || envMap.mapping == CubeUVReflectionMapping) {
244
243
  // Nothing to do
245
244
  }
@@ -248,6 +247,11 @@ export class RemoteSkybox extends Behaviour {
248
247
  envMap.needsUpdate = true;
249
248
  }
250
249
 
250
+ if(this.destroyed) return;
251
+ if(!this.context) {
252
+ console.warn("RemoteSkybox: Context is not available - can not apply skybox.");
253
+ return;
254
+ }
251
255
 
252
256
  // capture state
253
257
  if (this.context.scene.background !== envMap)