@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.
Files changed (98) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/needle-engine.d.ts +187 -36
  3. package/dist/needle-engine.js +385 -385
  4. package/dist/needle-engine.js.map +4 -4
  5. package/dist/needle-engine.min.js +40 -40
  6. package/dist/needle-engine.min.js.map +4 -4
  7. package/lib/engine/engine_components.js +2 -2
  8. package/lib/engine/engine_components.js.map +1 -1
  9. package/lib/engine/engine_networking_instantiate.d.ts +1 -1
  10. package/lib/engine/engine_networking_instantiate.js +3 -0
  11. package/lib/engine/engine_networking_instantiate.js.map +1 -1
  12. package/lib/engine/engine_serialization_builtin_serializer.d.ts +6 -0
  13. package/lib/engine/engine_serialization_builtin_serializer.js +31 -6
  14. package/lib/engine/engine_serialization_builtin_serializer.js.map +1 -1
  15. package/lib/engine/engine_serialization_core.d.ts +1 -0
  16. package/lib/engine/engine_serialization_core.js +6 -0
  17. package/lib/engine/engine_serialization_core.js.map +1 -1
  18. package/lib/engine/engine_setup.js +2 -2
  19. package/lib/engine/engine_setup.js.map +1 -1
  20. package/lib/engine/engine_texture.d.ts +3 -0
  21. package/lib/engine/engine_texture.js +4 -0
  22. package/lib/engine/engine_texture.js.map +1 -0
  23. package/lib/engine/extensions/{NEEDLE_deferred_texture.d.ts → NEEDLE_progressive.d.ts} +2 -2
  24. package/lib/engine/extensions/{NEEDLE_deferred_texture.js → NEEDLE_progressive.js} +6 -6
  25. package/lib/engine/extensions/NEEDLE_progressive.js.map +1 -0
  26. package/lib/engine/extensions/extensions.js +2 -2
  27. package/lib/engine/extensions/extensions.js.map +1 -1
  28. package/lib/engine-components/Camera.js +17 -2
  29. package/lib/engine-components/Camera.js.map +1 -1
  30. package/lib/engine-components/Light.js +1 -0
  31. package/lib/engine-components/Light.js.map +1 -1
  32. package/lib/engine-components/OrbitControls.js +6 -2
  33. package/lib/engine-components/OrbitControls.js.map +1 -1
  34. package/lib/engine-components/Renderer.js +3 -3
  35. package/lib/engine-components/Renderer.js.map +1 -1
  36. package/lib/engine-components/Voip.js +13 -4
  37. package/lib/engine-components/Voip.js.map +1 -1
  38. package/lib/engine-components/codegen/components.d.ts +6 -2
  39. package/lib/engine-components/codegen/components.js +6 -2
  40. package/lib/engine-components/codegen/components.js.map +1 -1
  41. package/lib/engine-components/export/{GltfExport.d.ts → gltf/GltfExport.d.ts} +2 -2
  42. package/lib/engine-components/export/{GltfExport.js → gltf/GltfExport.js} +7 -7
  43. package/lib/engine-components/export/gltf/GltfExport.js.map +1 -0
  44. package/lib/engine-components/export/usdz/Extension.d.ts +9 -0
  45. package/lib/engine-components/export/usdz/Extension.js +2 -0
  46. package/lib/engine-components/export/usdz/Extension.js.map +1 -0
  47. package/lib/engine-components/export/usdz/USDZExporter.d.ts +25 -0
  48. package/lib/engine-components/export/usdz/USDZExporter.js +193 -0
  49. package/lib/engine-components/export/usdz/USDZExporter.js.map +1 -0
  50. package/lib/engine-components/export/usdz/extensions/Animation.d.ts +44 -0
  51. package/lib/engine-components/export/usdz/extensions/Animation.js +264 -0
  52. package/lib/engine-components/export/usdz/extensions/Animation.js.map +1 -0
  53. package/lib/engine-components/export/usdz/types.d.ts +34 -0
  54. package/lib/engine-components/export/usdz/types.js +2 -0
  55. package/lib/engine-components/export/usdz/types.js.map +1 -0
  56. package/lib/engine-components/export/usdz/utils/animationutils.d.ts +3 -0
  57. package/lib/engine-components/export/usdz/utils/animationutils.js +46 -0
  58. package/lib/engine-components/export/usdz/utils/animationutils.js.map +1 -0
  59. package/lib/engine-components/export/usdz/utils/quicklook.d.ts +2 -0
  60. package/lib/engine-components/export/usdz/utils/quicklook.js +36 -0
  61. package/lib/engine-components/export/usdz/utils/quicklook.js.map +1 -0
  62. package/lib/engine-components/export/usdz/utils/timeutils.d.ts +1 -0
  63. package/lib/engine-components/export/usdz/utils/timeutils.js +15 -0
  64. package/lib/engine-components/export/usdz/utils/timeutils.js.map +1 -0
  65. package/lib/engine-components/ui/Graphic.d.ts +2 -0
  66. package/lib/engine-components/ui/Graphic.js +15 -0
  67. package/lib/engine-components/ui/Graphic.js.map +1 -1
  68. package/lib/engine-components/ui/Utils.d.ts +2 -1
  69. package/lib/engine-components/ui/Utils.js +5 -3
  70. package/lib/engine-components/ui/Utils.js.map +1 -1
  71. package/package.json +2 -2
  72. package/src/engine/codegen/register_types.js +14 -6
  73. package/src/engine/engine_components.ts +2 -2
  74. package/src/engine/engine_networking_instantiate.ts +4 -1
  75. package/src/engine/engine_serialization_builtin_serializer.ts +35 -7
  76. package/src/engine/engine_serialization_core.ts +7 -1
  77. package/src/engine/engine_setup.ts +2 -2
  78. package/src/engine/engine_texture.ts +6 -0
  79. package/src/engine/extensions/{NEEDLE_deferred_texture.ts → NEEDLE_progressive.ts} +9 -11
  80. package/src/engine/extensions/extensions.ts +2 -2
  81. package/src/engine-components/Camera.ts +17 -3
  82. package/src/engine-components/Light.ts +3 -1
  83. package/src/engine-components/OrbitControls.ts +7 -3
  84. package/src/engine-components/Renderer.ts +3 -3
  85. package/src/engine-components/Voip.ts +14 -4
  86. package/src/engine-components/codegen/components.ts +6 -2
  87. package/src/engine-components/export/{GltfExport.ts → gltf/GltfExport.ts} +7 -7
  88. package/src/engine-components/export/usdz/Extension.ts +12 -0
  89. package/src/engine-components/export/usdz/USDZExporter.ts +216 -0
  90. package/src/engine-components/export/usdz/extensions/Animation.ts +306 -0
  91. package/src/engine-components/export/usdz/types.ts +39 -0
  92. package/src/engine-components/export/usdz/utils/animationutils.ts +60 -0
  93. package/src/engine-components/export/usdz/utils/quicklook.ts +43 -0
  94. package/src/engine-components/export/usdz/utils/timeutils.ts +20 -0
  95. package/src/engine-components/ui/Graphic.ts +15 -1
  96. package/src/engine-components/ui/Utils.ts +5 -3
  97. package/lib/engine/extensions/NEEDLE_deferred_texture.js.map +0 -1
  98. 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":"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"}
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../engine-components/export/usdz/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import { Object3D } from "three";
2
+ import { AnimationExtension } from "../extensions/Animation";
3
+ export declare function registerAnimatorsImplictly(root: Object3D, ext: AnimationExtension): void;
@@ -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,2 @@
1
+ import { Context } from "../../../../engine/engine_setup";
2
+ export declare function ensureQuicklookLinkIsCreated(context: Context): HTMLAnchorElement;
@@ -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":"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"}
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 schedula a function at a specific moment in the update loop */
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 schedula a function at a specific moment in the update loop */
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["__scheduledActions"];
70
+ let cache = caller[$scheduledActionKey];
69
71
  if (!cache)
70
- cache = caller["__scheduledActions"] = {};
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":"AACA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAiC,MAAM,OAAO,CAAA;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,2GAA2G;AAC3G,wBAAwB;AACxB,2BAA2B;AAC3B,uCAAuC;AACvC,2CAA2C;AAC3C,2DAA2D;AAC3D,YAAY;AACZ,QAAQ;AACR,IAAI;AAEJ,MAAM,UAAU,UAAU,CAAC,GAAmB;IAC1C,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,OAAO,GAAG,CAAC,eAAe,CAAC,KAAK,QAAQ,CAAC;AAC5E,CAAC;AAUD,MAAM,UAAU,oBAAoB,CAAC,eAA+B,EAAE,QAAwB;IAC1F,IAAI,CAAC,eAAe;QAAE,OAAO;IAC7B,kDAAkD;IAClD,cAAc;IACd,mCAAmC;IACnC,MAAM,GAAG,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IACxC,IAAI,GAAG,EAAE,UAAU,KAAK,IAAI,EAAE;QAC1B,sDAAsD;QACtD,wFAAwF;QACxF,GAAG,CAAC,SAAS,GAAG,CAAC,QAAQ,CAAC,WAAW,IAAI,IAAI,CAAC;QAC9C,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;QACnE,GAAG,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,IAAI,KAAK,CAAC;QAC9C,GAAG,CAAC,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/D,eAAe,CAAC,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC;QACjF,eAAe,CAAC,aAAa,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC;KAC7F;IACD,KAAK,MAAM,EAAE,IAAI,eAAe,CAAC,QAAQ,EAAE;QACvC,oBAAoB,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;KACtC;AACL,CAAC;AAOD,+GAA+G;AAC/G,yDAAyD;AACzD,qCAAqC;AACrC,MAAM,UAAU,QAAQ,CAAmB,MAAS,EAAE,KAAa,EAAE,QAAgD;IAEjH,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE;QAC7B,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,CAAC,CAAC;KAC3D;IACD,6CAA6C;IAC7C,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;QACvC,gCAAgC;QAChC,kDAAkD;QAClD,KAAK;QACL,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ;YAC7B,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YACvD,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;YAC9B,OAAO,GAAG,CAAC;QACf,CAAC;KACJ,CAAC,CAAC;IACH,mBAAmB;IACnB,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAC1B,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE;QACd,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;QACzB,MAAM,EAAE,CAAC;IACb,CAAC,CAAC;IACF,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;IAC1B,OAAO,GAAG,CAAC;AACf,CAAC;AAID,MAAM,mBAAmB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAEvD,+DAA+D;AAC/D,qFAAqF;AACrF,MAAM,UAAU,cAAc,CAAC,MAAiB,EAAE,MAAgB,EAAE,SAAqB,UAAU,CAAC,cAAc;IAC9G,IAAI,KAAK,GAAkB,MAAM,CAAC,mBAAmB,CAAC,CAAC;IACvD,IAAI,CAAC,KAAK;QAAE,KAAK,GAAG,MAAM,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC;IAErD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC;IACxB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAAE,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;IACvC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,QAAQ;QAAE,OAAO;IACrB,QAAQ,CAAC,CAAC,GAAG;QACT,SAAS;QACT,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IACxB,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;AAC7B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@needle-tools/engine",
3
- "version": "2.52.0-pre",
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.1",
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.enabled === false) return null;
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) console.warn("could not resolve reference", data, context.target, context.path, context.context.scene);
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
- const res = this.findObjectForGuid(data.guid, context.root);
136
+ let res = this.findObjectForGuid(data.guid, context.root);
133
137
  if (res) {
134
138
  return res;
135
139
  }
136
- else if (context.context) {
140
+ if (context.context) {
137
141
  // if not found within the gltf use the provided context scene
138
142
  // to find references outside
139
- return this.findObjectForGuid(data.guid, context.context?.scene);
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 = window.innerWidth;
138
- this._domY = window.innerHeight;
137
+ this._domX = 0;
138
+ this._domY = 0;
139
139
  return;
140
140
  }
141
141
  if (this._boundingClientRectFrame === this.time.frame) return;
@@ -0,0 +1,6 @@
1
+ import { WebGLRenderTarget } from "three"
2
+
3
+ export class RenderTexture extends WebGLRenderTarget
4
+ {
5
+
6
+ }