@needle-tools/engine 4.11.3 → 4.11.4-next.a568de7

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 (122) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/generateMeshBVH.worker-B9bjdr6J.js +25 -0
  3. package/dist/{needle-engine.bundle-B_aGaFmh.js → needle-engine.bundle-DpWrB4yf.js} +5306 -5268
  4. package/dist/{needle-engine.bundle-TscA1IdQ.min.js → needle-engine.bundle-lEVjhicZ.min.js} +133 -133
  5. package/dist/{needle-engine.bundle-YQ3I1QD8.umd.cjs → needle-engine.bundle-nX51yB5a.umd.cjs} +132 -132
  6. package/dist/needle-engine.js +2 -2
  7. package/dist/needle-engine.min.js +1 -1
  8. package/dist/needle-engine.umd.cjs +1 -1
  9. package/dist/{vendor-H-9KkM5B.umd.cjs → vendor-6kAXU6fm.umd.cjs} +39 -39
  10. package/dist/{vendor-BahM12Xj.min.js → vendor-CsyK1CFs.min.js} +46 -46
  11. package/dist/{vendor-Becub4o1.js → vendor-petGQl0N.js} +3130 -3069
  12. package/lib/engine/api.d.ts +1 -0
  13. package/lib/engine/api.js +1 -0
  14. package/lib/engine/api.js.map +1 -1
  15. package/lib/engine/engine_addressables.d.ts +74 -11
  16. package/lib/engine/engine_addressables.js +74 -11
  17. package/lib/engine/engine_addressables.js.map +1 -1
  18. package/lib/engine/engine_camera.fit.d.ts +48 -3
  19. package/lib/engine/engine_camera.fit.js +29 -0
  20. package/lib/engine/engine_camera.fit.js.map +1 -1
  21. package/lib/engine/engine_context.d.ts +18 -3
  22. package/lib/engine/engine_context.js +18 -3
  23. package/lib/engine/engine_context.js.map +1 -1
  24. package/lib/engine/engine_utils.d.ts +0 -23
  25. package/lib/engine/engine_utils.js +0 -202
  26. package/lib/engine/engine_utils.js.map +1 -1
  27. package/lib/engine/engine_utils_attributes.d.ts +48 -0
  28. package/lib/engine/engine_utils_attributes.js +70 -0
  29. package/lib/engine/engine_utils_attributes.js.map +1 -0
  30. package/lib/engine/engine_utils_qrcode.d.ts +23 -0
  31. package/lib/engine/engine_utils_qrcode.js +234 -0
  32. package/lib/engine/engine_utils_qrcode.js.map +1 -0
  33. package/lib/engine/extensions/NEEDLE_components.d.ts +4 -4
  34. package/lib/engine/extensions/NEEDLE_components.js +36 -17
  35. package/lib/engine/extensions/NEEDLE_components.js.map +1 -1
  36. package/lib/engine/webcomponents/buttons.js +1 -1
  37. package/lib/engine/webcomponents/buttons.js.map +1 -1
  38. package/lib/engine-components/Animation.d.ts +1 -1
  39. package/lib/engine-components/Animation.js +1 -1
  40. package/lib/engine-components/AnimationCurve.d.ts +3 -0
  41. package/lib/engine-components/AnimationCurve.js +3 -0
  42. package/lib/engine-components/AnimationCurve.js.map +1 -1
  43. package/lib/engine-components/Animator.d.ts +2 -1
  44. package/lib/engine-components/Animator.js +2 -1
  45. package/lib/engine-components/Animator.js.map +1 -1
  46. package/lib/engine-components/AnimatorController.d.ts +3 -0
  47. package/lib/engine-components/AnimatorController.js +3 -0
  48. package/lib/engine-components/AnimatorController.js.map +1 -1
  49. package/lib/engine-components/LookAtConstraint.d.ts +4 -0
  50. package/lib/engine-components/LookAtConstraint.js +4 -0
  51. package/lib/engine-components/LookAtConstraint.js.map +1 -1
  52. package/lib/engine-components/NeedleMenu.d.ts +1 -0
  53. package/lib/engine-components/NeedleMenu.js +1 -0
  54. package/lib/engine-components/NeedleMenu.js.map +1 -1
  55. package/lib/engine-components/NestedGltf.d.ts +3 -0
  56. package/lib/engine-components/NestedGltf.js +3 -0
  57. package/lib/engine-components/NestedGltf.js.map +1 -1
  58. package/lib/engine-components/ReflectionProbe.d.ts +4 -0
  59. package/lib/engine-components/ReflectionProbe.js +4 -0
  60. package/lib/engine-components/ReflectionProbe.js.map +1 -1
  61. package/lib/engine-components/Renderer.js +14 -40
  62. package/lib/engine-components/Renderer.js.map +1 -1
  63. package/lib/engine-components/RendererLightmap.d.ts +7 -0
  64. package/lib/engine-components/RendererLightmap.js +30 -21
  65. package/lib/engine-components/RendererLightmap.js.map +1 -1
  66. package/lib/engine-components/SeeThrough.d.ts +3 -0
  67. package/lib/engine-components/SeeThrough.js +3 -0
  68. package/lib/engine-components/SeeThrough.js.map +1 -1
  69. package/lib/engine-components/Skybox.d.ts +3 -0
  70. package/lib/engine-components/Skybox.js +3 -0
  71. package/lib/engine-components/Skybox.js.map +1 -1
  72. package/lib/engine-components/SpriteRenderer.d.ts +14 -1
  73. package/lib/engine-components/SpriteRenderer.js +17 -1
  74. package/lib/engine-components/SpriteRenderer.js.map +1 -1
  75. package/lib/engine-components/splines/Spline.d.ts +3 -0
  76. package/lib/engine-components/splines/Spline.js +3 -0
  77. package/lib/engine-components/splines/Spline.js.map +1 -1
  78. package/lib/engine-components/splines/SplineUtils.d.ts +3 -0
  79. package/lib/engine-components/splines/SplineUtils.js +3 -0
  80. package/lib/engine-components/splines/SplineUtils.js.map +1 -1
  81. package/lib/engine-components/splines/SplineWalker.d.ts +3 -0
  82. package/lib/engine-components/splines/SplineWalker.js +3 -0
  83. package/lib/engine-components/splines/SplineWalker.js.map +1 -1
  84. package/lib/engine-components/timeline/PlayableDirector.d.ts +2 -1
  85. package/lib/engine-components/timeline/PlayableDirector.js +16 -9
  86. package/lib/engine-components/timeline/PlayableDirector.js.map +1 -1
  87. package/lib/engine-components/timeline/SignalAsset.d.ts +11 -1
  88. package/lib/engine-components/timeline/SignalAsset.js +11 -1
  89. package/lib/engine-components/timeline/SignalAsset.js.map +1 -1
  90. package/lib/engine-components/ui/Raycaster.d.ts +18 -0
  91. package/lib/engine-components/ui/Raycaster.js +18 -0
  92. package/lib/engine-components/ui/Raycaster.js.map +1 -1
  93. package/package.json +2 -2
  94. package/src/engine/api.ts +1 -0
  95. package/src/engine/engine_addressables.ts +76 -11
  96. package/src/engine/engine_camera.fit.ts +50 -4
  97. package/src/engine/engine_context.ts +18 -3
  98. package/src/engine/engine_utils.ts +0 -229
  99. package/src/engine/engine_utils_attributes.ts +72 -0
  100. package/src/engine/engine_utils_qrcode.ts +266 -0
  101. package/src/engine/extensions/NEEDLE_components.ts +47 -26
  102. package/src/engine/webcomponents/buttons.ts +1 -1
  103. package/src/engine-components/Animation.ts +1 -1
  104. package/src/engine-components/AnimationCurve.ts +4 -1
  105. package/src/engine-components/Animator.ts +3 -2
  106. package/src/engine-components/AnimatorController.ts +3 -0
  107. package/src/engine-components/LookAtConstraint.ts +6 -1
  108. package/src/engine-components/NeedleMenu.ts +1 -0
  109. package/src/engine-components/NestedGltf.ts +3 -0
  110. package/src/engine-components/ReflectionProbe.ts +4 -0
  111. package/src/engine-components/Renderer.ts +14 -42
  112. package/src/engine-components/RendererLightmap.ts +34 -20
  113. package/src/engine-components/SeeThrough.ts +3 -0
  114. package/src/engine-components/Skybox.ts +3 -0
  115. package/src/engine-components/SpriteRenderer.ts +18 -2
  116. package/src/engine-components/splines/Spline.ts +3 -0
  117. package/src/engine-components/splines/SplineUtils.ts +3 -1
  118. package/src/engine-components/splines/SplineWalker.ts +3 -0
  119. package/src/engine-components/timeline/PlayableDirector.ts +16 -10
  120. package/src/engine-components/timeline/SignalAsset.ts +13 -2
  121. package/src/engine-components/ui/Raycaster.ts +19 -0
  122. package/dist/generateMeshBVH.worker-2qGLkQjg.js +0 -25
@@ -0,0 +1,48 @@
1
+ /**
2
+ * @internal
3
+ */
4
+ export declare namespace InternalAttributeUtils {
5
+ /**
6
+ * Checks if the given value is considered "falsey" in the context of HTML attributes.
7
+ * A value is considered falsey if it is "0" or "false" (case-insensitive).
8
+ *
9
+ * @param value - The attribute value to check.
10
+ * @returns True if the value is falsey, otherwise false.
11
+ */
12
+ function isFalsey(value: string | null): boolean;
13
+ /**
14
+ * Retrieves the value of the specified attribute from the given element.
15
+ * If the attribute value is considered falsey, it returns null.
16
+ * @returns The attribute value or null if falsey.
17
+ */
18
+ function getAttributeValueIfNotFalsey(element: Element, attributeName: string, opts?: {
19
+ onAttribute: (value: string) => void;
20
+ }): string | null;
21
+ /**
22
+ * Retrieves the value of the specified attribute from the given element.
23
+ * If the attribute value is considered falsey, it returns false.
24
+ * If the attribute is not set at all, it returns null.
25
+ * @returns The attribute value, false if falsey, or null if not set.
26
+ *
27
+ * @example
28
+ * ```typescript
29
+ * const result = HTMLAttributeUtils.getAttributeAndCheckFalsey(element, 'data-example', {
30
+ * onAttribute: (value, falsey) => {
31
+ * console.log(`Attribute value: ${value}
32
+ * , Is falsey: ${falsey}`);
33
+ * }
34
+ * });
35
+ *
36
+ * if (result === false) {
37
+ * console.log('The attribute is set to a falsey value.');
38
+ * } else if (result === null) {
39
+ * console.log('The attribute is not set.');
40
+ * } else {
41
+ * console.log(`The attribute value is: ${result}`);
42
+ * }
43
+ * ```
44
+ */
45
+ function getAttributeAndCheckFalsey(element: Element, attributeName: string, opts?: {
46
+ onAttribute: (value: string, falsey: boolean) => void;
47
+ }): false | string | null;
48
+ }
@@ -0,0 +1,70 @@
1
+ /**
2
+ * @internal
3
+ */
4
+ export var InternalAttributeUtils;
5
+ (function (InternalAttributeUtils) {
6
+ /**
7
+ * Checks if the given value is considered "falsey" in the context of HTML attributes.
8
+ * A value is considered falsey if it is "0" or "false" (case-insensitive).
9
+ *
10
+ * @param value - The attribute value to check.
11
+ * @returns True if the value is falsey, otherwise false.
12
+ */
13
+ function isFalsey(value) {
14
+ return value === "0" || value?.toLowerCase() === "false";
15
+ }
16
+ InternalAttributeUtils.isFalsey = isFalsey;
17
+ /**
18
+ * Retrieves the value of the specified attribute from the given element.
19
+ * If the attribute value is considered falsey, it returns null.
20
+ * @returns The attribute value or null if falsey.
21
+ */
22
+ function getAttributeValueIfNotFalsey(element, attributeName, opts) {
23
+ const attrValue = element.getAttribute(attributeName);
24
+ if (isFalsey(attrValue)) {
25
+ return null;
26
+ }
27
+ opts?.onAttribute?.call(null, attrValue);
28
+ return attrValue;
29
+ }
30
+ InternalAttributeUtils.getAttributeValueIfNotFalsey = getAttributeValueIfNotFalsey;
31
+ /**
32
+ * Retrieves the value of the specified attribute from the given element.
33
+ * If the attribute value is considered falsey, it returns false.
34
+ * If the attribute is not set at all, it returns null.
35
+ * @returns The attribute value, false if falsey, or null if not set.
36
+ *
37
+ * @example
38
+ * ```typescript
39
+ * const result = HTMLAttributeUtils.getAttributeAndCheckFalsey(element, 'data-example', {
40
+ * onAttribute: (value, falsey) => {
41
+ * console.log(`Attribute value: ${value}
42
+ * , Is falsey: ${falsey}`);
43
+ * }
44
+ * });
45
+ *
46
+ * if (result === false) {
47
+ * console.log('The attribute is set to a falsey value.');
48
+ * } else if (result === null) {
49
+ * console.log('The attribute is not set.');
50
+ * } else {
51
+ * console.log(`The attribute value is: ${result}`);
52
+ * }
53
+ * ```
54
+ */
55
+ function getAttributeAndCheckFalsey(element, attributeName, opts) {
56
+ const attrValue = element.getAttribute(attributeName);
57
+ // If the attribute is not set at all we just return
58
+ if (attrValue === null) {
59
+ return null;
60
+ }
61
+ if (isFalsey(attrValue)) {
62
+ opts?.onAttribute?.call(null, attrValue, true);
63
+ return false;
64
+ }
65
+ opts?.onAttribute?.call(null, attrValue, false);
66
+ return attrValue;
67
+ }
68
+ InternalAttributeUtils.getAttributeAndCheckFalsey = getAttributeAndCheckFalsey;
69
+ })(InternalAttributeUtils || (InternalAttributeUtils = {}));
70
+ //# sourceMappingURL=engine_utils_attributes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine_utils_attributes.js","sourceRoot":"","sources":["../../src/engine/engine_utils_attributes.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,KAAW,sBAAsB,CAiEtC;AAjED,WAAiB,sBAAsB;IAEnC;;;;;;OAMG;IACH,SAAgB,QAAQ,CAAC,KAAoB;QACzC,OAAO,KAAK,KAAK,GAAG,IAAI,KAAK,EAAE,WAAW,EAAE,KAAK,OAAO,CAAC;IAC7D,CAAC;IAFe,+BAAQ,WAEvB,CAAA;IAED;;;;OAIG;IACH,SAAgB,4BAA4B,CAAC,OAAgB,EAAE,aAAqB,EAAE,IAA+C;QACjI,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QACtD,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE;YACrB,OAAO,IAAI,CAAC;SACf;QACD,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,SAAU,CAAC,CAAC;QAC1C,OAAO,SAAS,CAAC;IACrB,CAAC;IAPe,mDAA4B,+BAO3C,CAAA;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,SAAgB,0BAA0B,CAAC,OAAgB,EAAE,aAAqB,EAAE,IAA+D;QAC/I,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QACtD,oDAAoD;QACpD,IAAG,SAAS,KAAK,IAAI,EAAE;YACnB,OAAO,IAAI,CAAC;SACf;QACD,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE;YACrB,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,SAAU,EAAE,IAAI,CAAC,CAAC;YAChD,OAAO,KAAK,CAAC;SAChB;QACD,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,SAAU,EAAE,KAAK,CAAC,CAAC;QACjD,OAAO,SAAS,CAAC;IACrB,CAAC;IAZe,iDAA0B,6BAYzC,CAAA;AAEL,CAAC,EAjEgB,sBAAsB,KAAtB,sBAAsB,QAiEtC"}
@@ -0,0 +1,23 @@
1
+ /** Generates a QR code HTML image using https://github.com/davidshimjs/qrcodejs
2
+ * @param args.text The text to encode
3
+ * @param args.width The width of the QR code
4
+ * @param args.height The height of the QR code
5
+ * @param args.colorDark The color of the dark squares
6
+ * @param args.colorLight The color of the light squares
7
+ * @param args.correctLevel The error correction level to use
8
+ * @param args.showLogo If true, the logo will be shown in the center of the QR code. By default the Needle Logo will be used. You can override which logo is being used by setting the `needle-engine` web component's `qr-logo-src` attribute. The logo can also be disabled by setting that attribute to a falsey value (e.g. "0" or "false")
9
+ * @param args.showUrl If true, the URL will be shown below the QR code
10
+ * @param args.domElement The dom element to append the QR code to. If not provided a new div will be created and returned
11
+ * @returns The dom element containing the QR code
12
+ */
13
+ export declare function generateQRCode(args: {
14
+ domElement?: HTMLElement;
15
+ text: string;
16
+ width?: number;
17
+ height?: number;
18
+ colorDark?: string;
19
+ colorLight?: string;
20
+ correctLevel?: any;
21
+ showLogo?: boolean;
22
+ showUrl?: boolean;
23
+ }): Promise<HTMLElement>;
@@ -0,0 +1,234 @@
1
+ import { needleLogoOnlySVG } from "./assets/index.js";
2
+ import { isDevEnvironment } from "./debug/debug.js";
3
+ import { hasCommercialLicense } from "./engine_license.js";
4
+ import { InternalAttributeUtils } from "./engine_utils_attributes.js";
5
+ /** Generates a QR code HTML image using https://github.com/davidshimjs/qrcodejs
6
+ * @param args.text The text to encode
7
+ * @param args.width The width of the QR code
8
+ * @param args.height The height of the QR code
9
+ * @param args.colorDark The color of the dark squares
10
+ * @param args.colorLight The color of the light squares
11
+ * @param args.correctLevel The error correction level to use
12
+ * @param args.showLogo If true, the logo will be shown in the center of the QR code. By default the Needle Logo will be used. You can override which logo is being used by setting the `needle-engine` web component's `qr-logo-src` attribute. The logo can also be disabled by setting that attribute to a falsey value (e.g. "0" or "false")
13
+ * @param args.showUrl If true, the URL will be shown below the QR code
14
+ * @param args.domElement The dom element to append the QR code to. If not provided a new div will be created and returned
15
+ * @returns The dom element containing the QR code
16
+ */
17
+ export async function generateQRCode(args) {
18
+ // Ensure that the QRCode library is loaded
19
+ if (!globalThis["QRCode"]) {
20
+ const url = "https://cdn.jsdelivr.net/gh/davidshimjs/qrcodejs@gh-pages/qrcode.min.js";
21
+ let script = document.head.querySelector(`script[src="${url}"]`);
22
+ if (!script) {
23
+ script = document.createElement("script");
24
+ script.src = url;
25
+ document.head.appendChild(script);
26
+ }
27
+ await new Promise((resolve, _reject) => {
28
+ script.addEventListener("load", () => {
29
+ resolve(true);
30
+ });
31
+ });
32
+ }
33
+ const QRCODE = globalThis["QRCode"];
34
+ const target = args.domElement ?? document.createElement("div");
35
+ const qrCode = new QRCODE(target, {
36
+ width: args.width ?? 256,
37
+ height: args.height ?? 256,
38
+ colorDark: "#000000",
39
+ colorLight: "#ffffff",
40
+ correctLevel: args.showLogo ? QRCODE.CorrectionLevel.H : QRCODE.CorrectLevel.M,
41
+ ...args,
42
+ });
43
+ // Number of rows/columns of the generated QR code
44
+ const moduleCount = qrCode?._oQRCode.moduleCount || 0;
45
+ const canvas = qrCode?._oDrawing?._elCanvas;
46
+ let sizePercentage = 0.25;
47
+ if (moduleCount < 40)
48
+ sizePercentage = Math.floor(moduleCount / 4) / moduleCount;
49
+ else
50
+ sizePercentage = Math.floor(moduleCount / 6) / moduleCount;
51
+ const paddingPercentage = Math.floor(moduleCount / 20) / moduleCount;
52
+ try {
53
+ const img = await internalRenderQRCodeOverlays(canvas, { showLogo: args.showLogo, logoSize: sizePercentage, logoPadding: paddingPercentage }).catch(_e => { });
54
+ if (img) {
55
+ target.innerHTML = "";
56
+ target.append(img);
57
+ }
58
+ }
59
+ catch { } // Ignore
60
+ if (args.showUrl !== false && args.text) {
61
+ // Add link label below the QR code
62
+ // Clean up the text. If it's a URL: remove the protocol, www. part, trailing slashes or trailing question marks
63
+ const existingLabel = target.querySelector(".qr-code-link-label");
64
+ let displayText = args.text.replace(/^(https?:\/\/)?(www\.)?/, "").replace(/\/+$/, "").replace(/\?+$/, "");
65
+ displayText = "Scan to visit " + displayText;
66
+ if (existingLabel) {
67
+ existingLabel.textContent = displayText;
68
+ }
69
+ else {
70
+ // Create a new label
71
+ const linkLabel = document.createElement("div");
72
+ linkLabel.classList.add("qr-code-link-label");
73
+ args.text = displayText;
74
+ linkLabel.textContent = args.text;
75
+ linkLabel.addEventListener("click", (ev) => {
76
+ // Prevent the QR panel from closing
77
+ ev.stopImmediatePropagation();
78
+ });
79
+ linkLabel.style.textAlign = "center";
80
+ linkLabel.style.fontSize = "0.8em";
81
+ linkLabel.style.marginTop = "0.1em";
82
+ linkLabel.style.color = "#000000";
83
+ linkLabel.style.fontFamily = "'Roboto Flex', sans-serif";
84
+ linkLabel.style.opacity = "0.5";
85
+ linkLabel.style.wordBreak = "break-all";
86
+ linkLabel.style.wordWrap = "break-word";
87
+ linkLabel.style.marginBottom = "0.3em";
88
+ // Ensure max. width
89
+ target.style.width = "calc(210px + 20px)";
90
+ target.appendChild(linkLabel);
91
+ }
92
+ }
93
+ return target;
94
+ }
95
+ async function internalRenderQRCodeOverlays(canvas, args) {
96
+ if (!canvas)
97
+ return;
98
+ // Internal settings
99
+ const canvasPadding = 8;
100
+ const shadowBlur = 20;
101
+ const rectanglePadding = args.logoPadding || 1. / 32;
102
+ // With dropshadow under the logo
103
+ /*
104
+ const shadowColor = "#00000099";
105
+ const rectangleRadius = 0.4 * 16;
106
+ */
107
+ // Without dropshadow under the logo
108
+ const shadowColor = "transparent";
109
+ const rectangleRadius = 0;
110
+ // Draw the website's icon in the center of the QR code
111
+ const image = new Image();
112
+ const element = document.querySelector("needle-engine");
113
+ if (!element) {
114
+ console.debug("[QR Code] No web component found");
115
+ }
116
+ const canUseCustomLogo = hasCommercialLicense();
117
+ // Query logo src from needle-engine attribute.
118
+ // For any supported attribute it's possible to use "falsey" values (e.g. "0" or "false" to disable the logo in the QR code)
119
+ let logoSrc = null;
120
+ logoSrc = InternalAttributeUtils.getAttributeAndCheckFalsey(element, "qrcode-logo-src");
121
+ if (canUseCustomLogo && args.showLogo !== true && logoSrc === false)
122
+ return; // Explictly disabled
123
+ logoSrc ||= InternalAttributeUtils.getAttributeAndCheckFalsey(element, "logo-src");
124
+ if (canUseCustomLogo && args.showLogo !== true && logoSrc === false)
125
+ return; // Explicitly disabled
126
+ logoSrc ||= InternalAttributeUtils.getAttributeAndCheckFalsey(element, "loading-logo-src", {
127
+ onAttribute: () => {
128
+ if (isDevEnvironment())
129
+ console.warn("[QR Code] 'loading-logo-src' is deprecated, please use 'logo-src' or 'qrcode-logo-src' instead.");
130
+ else
131
+ console.debug("[QR Code] 'loading-logo-src' is deprecated.");
132
+ }
133
+ });
134
+ if (canUseCustomLogo && args.showLogo !== true && logoSrc === false)
135
+ return; // Explicitly disabled
136
+ if (logoSrc && !canUseCustomLogo) {
137
+ console.warn("[QR Code] Custom logo is only available with a commercial license. Using default Needle logo. Please get a commercial license at https://needle.tools/pricing.");
138
+ logoSrc = null;
139
+ }
140
+ logoSrc ||= needleLogoOnlySVG;
141
+ if (!logoSrc)
142
+ return;
143
+ let haveLogo = false;
144
+ if (args.showLogo !== false) {
145
+ image.src = logoSrc;
146
+ haveLogo = await new Promise((resolve, _reject) => {
147
+ image.onload = () => resolve(true);
148
+ image.onerror = (err) => {
149
+ const errorUrl = logoSrc !== needleLogoOnlySVG ? "'" + logoSrc + "'" : null;
150
+ console.error("[QR Code] Error loading logo image for QR code", errorUrl, isDevEnvironment() ? err : "");
151
+ resolve(false);
152
+ };
153
+ });
154
+ }
155
+ // Add some padding around the canvas – we need to copy the QR code image to a larger canvas
156
+ const paddedCanvas = document.createElement("canvas");
157
+ paddedCanvas.width = canvas.width + canvasPadding;
158
+ paddedCanvas.height = canvas.height + canvasPadding;
159
+ const paddedContext = paddedCanvas.getContext("2d");
160
+ if (!paddedContext) {
161
+ return;
162
+ }
163
+ // Clear with white
164
+ paddedContext.fillStyle = "#ffffff";
165
+ paddedContext.fillRect(0, 0, paddedCanvas.width, paddedCanvas.height);
166
+ paddedContext.drawImage(canvas, canvasPadding / 2, canvasPadding / 2);
167
+ // Enable anti-aliasing
168
+ paddedContext.imageSmoothingEnabled = true;
169
+ paddedContext.imageSmoothingQuality = "high";
170
+ // @ts-ignore
171
+ paddedContext.mozImageSmoothingEnabled = true;
172
+ // @ts-ignore
173
+ paddedContext.webkitImageSmoothingEnabled = true;
174
+ // Draw a slight gradient background with 10% opacity and "lighten" composite operation
175
+ paddedContext.globalCompositeOperation = "lighten";
176
+ const gradient = paddedContext.createLinearGradient(0, 0, 0, paddedCanvas.height);
177
+ gradient.addColorStop(0, "rgb(45, 45, 45)");
178
+ gradient.addColorStop(1, "rgb(45, 45, 45)");
179
+ paddedContext.fillStyle = gradient;
180
+ paddedContext.fillRect(0, 0, paddedCanvas.width, paddedCanvas.height);
181
+ paddedContext.globalCompositeOperation = "source-over";
182
+ let sizeX = Math.min(canvas.width, canvas.height) * (args.logoSize || 0.25);
183
+ let sizeY = sizeX;
184
+ if (haveLogo) {
185
+ // Get aspect of image
186
+ const aspect = image.width / image.height;
187
+ if (aspect > 1)
188
+ sizeY = sizeX / aspect;
189
+ else
190
+ sizeX = sizeY * aspect;
191
+ const rectanglePaddingPx = rectanglePadding * canvas.width;
192
+ // Apply padding
193
+ const sizeForBackground = Math.max(sizeX, sizeY);
194
+ const sizeXPadded = Math.round(sizeForBackground + rectanglePaddingPx);
195
+ const sizeYPadded = Math.round(sizeForBackground + rectanglePaddingPx);
196
+ const x = (paddedCanvas.width - sizeForBackground) / 2;
197
+ const y = (paddedCanvas.height - sizeForBackground) / 2;
198
+ // Draw shape with blurred shadow
199
+ paddedContext.shadowColor = shadowColor;
200
+ paddedContext.shadowBlur = shadowBlur;
201
+ // Draw rounded rectangle with radius
202
+ // Convert 0.4rem to pixels, taking DPI into account
203
+ const radius = rectangleRadius;
204
+ const xPadded = Math.round(x - rectanglePaddingPx / 2);
205
+ const yPadded = Math.round(y - rectanglePaddingPx / 2);
206
+ paddedContext.beginPath();
207
+ paddedContext.moveTo(xPadded + radius, yPadded);
208
+ paddedContext.lineTo(xPadded + sizeXPadded - radius, yPadded);
209
+ paddedContext.quadraticCurveTo(xPadded + sizeXPadded, yPadded, xPadded + sizeXPadded, yPadded + radius);
210
+ paddedContext.lineTo(xPadded + sizeXPadded, yPadded + sizeYPadded - radius);
211
+ paddedContext.quadraticCurveTo(xPadded + sizeXPadded, yPadded + sizeYPadded, xPadded + sizeXPadded - radius, yPadded + sizeYPadded);
212
+ paddedContext.lineTo(xPadded + radius, yPadded + sizeYPadded);
213
+ paddedContext.quadraticCurveTo(xPadded, yPadded + sizeYPadded, xPadded, yPadded + sizeYPadded - radius);
214
+ paddedContext.lineTo(xPadded, yPadded + radius);
215
+ paddedContext.quadraticCurveTo(xPadded, yPadded, xPadded + radius, yPadded);
216
+ paddedContext.fillStyle = "#ffffff";
217
+ paddedContext.closePath();
218
+ paddedContext.fill();
219
+ paddedContext.clip();
220
+ // Reset shadow and draw favicon
221
+ paddedContext.shadowColor = "transparent";
222
+ const logoX = (paddedCanvas.width - sizeX) / 2;
223
+ const logoY = (paddedCanvas.height - sizeY) / 2;
224
+ paddedContext.drawImage(image, logoX, logoY, sizeX, sizeY);
225
+ }
226
+ // Replace the canvas with the padded one
227
+ const paddedImage = paddedCanvas.toDataURL("image/png");
228
+ const img = document.createElement("img");
229
+ img.src = paddedImage;
230
+ img.style.width = "100%";
231
+ img.style.height = "auto";
232
+ return img;
233
+ }
234
+ //# sourceMappingURL=engine_utils_qrcode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine_utils_qrcode.js","sourceRoot":"","sources":["../../src/engine/engine_utils_qrcode.ts"],"names":[],"mappings":"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"}
@@ -12,10 +12,6 @@ declare class ExportData {
12
12
  }
13
13
  export declare class NEEDLE_components implements GLTFLoaderPlugin {
14
14
  get name(): string;
15
- parser?: GLTFParser;
16
- nodeToObjectMap: NodeToObjectMap;
17
- /** The loaded gltf */
18
- gltf: GLTF | null;
19
15
  exportContext: {
20
16
  [nodeIndex: number]: ExportData;
21
17
  };
@@ -28,6 +24,10 @@ export declare class NEEDLE_components implements GLTFLoaderPlugin {
28
24
  afterSerializeUserData(node: Object3D, _nodeDef: any): void;
29
25
  writeNode(node: Object3D, nodeDef: any): void;
30
26
  afterParse(input: any): void;
27
+ parser?: GLTFParser;
28
+ nodeToObjectMap: NodeToObjectMap;
29
+ /** The loaded gltf */
30
+ gltf: GLTF | null;
31
31
  beforeRoot(): null;
32
32
  afterRoot(result: GLTF): Promise<void>;
33
33
  private createComponents;
@@ -1,3 +1,4 @@
1
+ import { isDevEnvironment } from "../debug/debug.js";
1
2
  import { builtinComponentKeyName } from "../engine_constants.js";
2
3
  import { debugExtension } from "../engine_default_parameters.js";
3
4
  import { getLoader } from "../engine_gltf.js";
@@ -23,12 +24,7 @@ export class NEEDLE_components {
23
24
  get name() {
24
25
  return EXTENSION_NAME;
25
26
  }
26
- // import
27
- parser;
28
- nodeToObjectMap = {};
29
- /** The loaded gltf */
30
- gltf = null;
31
- // export
27
+ // #region export
32
28
  exportContext;
33
29
  objectToNodeMap = {};
34
30
  context;
@@ -136,15 +132,17 @@ export class NEEDLE_components {
136
132
  }
137
133
  }
138
134
  // -------------------------------------
139
- // LOADING
140
- // called by GLTFLoader
135
+ // #region import
136
+ parser;
137
+ nodeToObjectMap = {};
138
+ /** The loaded gltf */
139
+ gltf = null;
141
140
  beforeRoot() {
142
141
  if (debug)
143
142
  console.log("BEGIN LOAD");
144
143
  this.nodeToObjectMap = {};
145
144
  return null;
146
145
  }
147
- // called by GLTFLoader
148
146
  async afterRoot(result) {
149
147
  this.gltf = result;
150
148
  const parser = result.parser;
@@ -179,7 +177,7 @@ export class NEEDLE_components {
179
177
  continue;
180
178
  }
181
179
  apply(obj);
182
- loadComponents.push(this.createComponents(obj, data));
180
+ loadComponents.push(this.createComponents(result, node, obj, data));
183
181
  }
184
182
  }
185
183
  }
@@ -192,7 +190,7 @@ export class NEEDLE_components {
192
190
  }
193
191
  }
194
192
  }
195
- async createComponents(obj, data) {
193
+ async createComponents(result, node, obj, data) {
196
194
  if (!data)
197
195
  return;
198
196
  const componentData = data[builtinComponentKeyName];
@@ -201,16 +199,37 @@ export class NEEDLE_components {
201
199
  if (debug)
202
200
  console.log(obj.name, componentData);
203
201
  for (const i in componentData) {
204
- const serializedData = componentData[i];
202
+ const data = componentData[i];
205
203
  if (debug)
206
- console.log("Serialized data", JSON.parse(JSON.stringify(serializedData)));
207
- if (serializedData && this.parser) {
208
- tasks.push(resolveReferences(this.parser, serializedData)
209
- .catch(e => console.error(`Error while resolving references (see console for details)\n`, e, obj, serializedData)));
204
+ console.log("Serialized data", JSON.parse(JSON.stringify(data)));
205
+ // Fix for https://linear.app/needle/issue/NE-6779/blender-export-has-missing-sharedmaterials
206
+ if (data?.name === "MeshRenderer" || data?.name === "SkinnedMeshRenderer") {
207
+ if (!data.sharedMaterials) {
208
+ let success = false;
209
+ if ("mesh" in node) {
210
+ const meshIndex = node.mesh;
211
+ if (typeof meshIndex === "number" && result.parser) {
212
+ const meshDef = result.parser.json.meshes?.[meshIndex];
213
+ if (meshDef?.primitives) {
214
+ data.sharedMaterials = meshDef.primitives.map(prim => {
215
+ return "/materials/" + (prim.material ?? 0);
216
+ });
217
+ success = true;
218
+ }
219
+ }
220
+ }
221
+ if (!success && (debug || isDevEnvironment())) {
222
+ console.warn(`[NEEDLE_components] Component '${data.name}' on object '${obj.name}' is not added to a mesh or failed to retrieve materials from glTF.`);
223
+ }
224
+ }
225
+ }
226
+ if (data && this.parser) {
227
+ tasks.push(resolveReferences(this.parser, data)
228
+ .catch(e => console.error(`Error while resolving references (see console for details)\n`, e, obj, data)));
210
229
  }
211
230
  obj.userData = obj.userData || {};
212
231
  obj.userData[builtinComponentKeyName] = obj.userData[builtinComponentKeyName] || [];
213
- obj.userData[builtinComponentKeyName].push(serializedData);
232
+ obj.userData[builtinComponentKeyName].push(data);
214
233
  }
215
234
  await Promise.all(tasks).catch((e) => {
216
235
  console.error("Error while loading components", e);
@@ -1 +1 @@
1
- {"version":3,"file":"NEEDLE_components.js","sourceRoot":"","sources":["../../../src/engine/extensions/NEEDLE_components.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NEEDLE_components.js","sourceRoot":"","sources":["../../../src/engine/extensions/NEEDLE_components.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { isDevEnvironment, showBalloonWarning } from "../debug/debug.js";
2
- import { generateQRCode } from "../engine_utils.js";
2
+ import { generateQRCode } from "../engine_utils_qrcode.js";
3
3
  import { onXRSessionEnd, onXRSessionStart } from "../xr/events.js";
4
4
  import { getIconElement } from "./icons.js";
5
5
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"buttons.js","sourceRoot":"","sources":["../../../src/engine/webcomponents/buttons.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buttons.js","sourceRoot":"","sources":["../../../src/engine/webcomponents/buttons.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEzE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C;;;;GAIG;AACH,MAAM,OAAO,cAAc;IAEf,MAAM,CAAC,SAAS,CAAkB;IAE1C;;;;OAIG;IACH,MAAM,KAAK,QAAQ;QACf,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,WAAW;QACd,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACjB,IAAI,CAAC,SAAS,GAAG,IAAI,cAAc,EAAE,CAAC;SACzC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IACD,mCAAmC;IACnC,MAAM,CAAC,MAAM;QACT,OAAO,IAAI,cAAc,EAAE,CAAC;IAChC,CAAC;IAGO,iBAAiB,CAAqB;IAE9C;;OAEG;IACH,IAAI,gBAAgB;QAChB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IAED,mFAAmF;IACnF,sBAAsB,CAAC,GAAa;QAChC,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,OAAO,IAAI,CAAC,iBAAiB,CAAC;SACjC;QAED,+BAA+B;QAC/B,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE;YAC7B,IAAI,gBAAgB,EAAE;gBAAE,OAAO,CAAC,IAAI,CAAC,+FAA+F,CAAC,CAAC;YACtI,OAAO,IAAI,CAAC;SACf;QAED,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC;QAChC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAC1C,MAAM,CAAC,KAAK,GAAG,gCAAgC,CAAC;QAChD,MAAM,mBAAmB,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;QACzD,MAAM,kBAAkB,GAAG,cAAc,CAAC,iBAAiB,CAAC,CAAC;QAC7D,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;QACxC,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE;YAClB,IAAI,QAAQ,CAAC,iBAAiB,EAAE;gBAC5B,QAAQ,CAAC,cAAc,EAAE,CAAC;aAC7B;iBAAM;gBACH,IAAI,yBAAyB,IAAI,GAAG,CAAC,UAAU,IAAI,OAAO,GAAG,CAAC,UAAU,CAAC,yBAAyB,CAAC,KAAK,UAAU;oBAC9G,GAAG,CAAC,UAAU,CAAC,yBAAyB,CAAC,EAAE,CAAC;qBAC3C,IAAI,mBAAmB,IAAI,GAAG,CAAC,UAAU;oBAC1C,GAAG,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;aAC1C;QACL,CAAC,CAAC;QACF,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,GAAG,EAAE;YAC/C,IAAI,QAAQ,CAAC,iBAAiB,EAAE;gBAC5B,mBAAmB,CAAC,MAAM,EAAE,CAAC;gBAC7B,MAAM,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;gBACvC,MAAM,CAAC,KAAK,GAAG,gCAAgC,CAAC;aACnD;iBAAM;gBACH,kBAAkB,CAAC,MAAM,EAAE,CAAC;gBAC5B,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;gBACxC,MAAM,CAAC,KAAK,GAAG,+BAA+B,CAAC;aAClD;QACL,CAAC,CAAC,CAAC;QACH,sBAAsB;QACtB,UAAU,CAAC,gBAAgB,CAAC,wBAAwB,EAAE,GAAG,EAAE;YACvD,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;QAClC,CAAC,CAAC,CAAC;QACH,UAAU,CAAC,gBAAgB,CAAC,sBAAsB,EAAE,GAAG,EAAE;YACrD,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,WAAW,CAAqB;IAExC,mIAAmI;IACnI,IAAI,UAAU,KAAK,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAE7C,6EAA6E;IAC7E,gBAAgB,CAAC,GAAa;QAC1B,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,OAAO,IAAI,CAAC,WAAW,CAAC;SAC3B;QACD,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACpC,MAAM,CAAC,KAAK,GAAG,sBAAsB,CAAC;QACtC,MAAM,QAAQ,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;QAC9C,MAAM,UAAU,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;QAE/C,qDAAqD;QACrD,oDAAoD;QACpD,oCAAoC;QACpC,IAAI;QACJ,SAAS;QACT,qCAAqC;QACrC,IAAI;QAEJ,IAAI,GAAG,CAAC,WAAW,CAAC,KAAK,EAAE;YACvB,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;SAChC;aACI;YACD,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;SAClC;QACD,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE;YAClB,IAAI,GAAG,CAAC,WAAW,CAAC,KAAK,EAAE;gBACvB,QAAQ,CAAC,MAAM,EAAE,CAAC;gBAClB,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;gBAC/B,GAAG,CAAC,WAAW,CAAC,KAAK,GAAG,KAAK,CAAC;gBAC9B,4CAA4C;aAC/C;iBAAM;gBACH,UAAU,CAAC,MAAM,EAAE,CAAC;gBACpB,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAC7B,GAAG,CAAC,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC;gBAC7B,2CAA2C;aAC9C;QACL,CAAC,CAAC;QACF,OAAO,MAAM,CAAC;IAClB,CAAC;IAGO,SAAS,CAAqB;IAEtC;;OAEG;IACH,IAAI,QAAQ,KAAK,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAEjC,kBAAkB,CAAqB;IAE/C,uFAAuF;IACvF,IAAI,WAAW,CAAC,GAAW;QACvB,uBAAuB;QACvB,IAAI;YACA,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;YACb,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC;SACjC;QAAC,OAAO,CAAC,EAAE;YACR,OAAO,CAAC,IAAI,CAAC,mDAAmD,GAAG,GAAG,CAAC,CAAC;SAC3E;IACL,CAAC;IACD,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,kBAAkB,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC3D,CAAC;IAED;;;;OAIG;IACH,YAAY;QAER,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC,SAAS,CAAC;QAE1C,MAAM,QAAQ,GAAG,IAAI,CAAC;QACtB,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACtD,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC;QAC9B,YAAY,CAAC,SAAS,GAAG,SAAS,CAAC;QACnC,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC;QAChD,YAAY,CAAC,KAAK,GAAG,qDAAqD,CAAC;QAC3E,IAAI,CAAC,0BAA0B,CAAC,YAAY,CAAC,CAAC;QAE9C,MAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACtD,eAAe,CAAC,KAAK,CAAC,OAAO,GAAG;;;;;;;;;SAS/B,CAAC;QAEF,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACpD,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACjD,eAAe,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QAE3C,YAAY,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;YACxC,IAAI,eAAe,CAAC,UAAU;gBAAE,OAAO,UAAU,EAAE,CAAC;YACpD,IAAI,gBAAgB,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;gBACrE,kBAAkB,CAAC,kNAAkN,CAAC,CAAC;aAC1O;YACD,UAAU,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;QAGH,uCAAuC;QACvC,KAAK,UAAU,UAAU;YACrB,kDAAkD;YAClD,0DAA0D;YAC1D,MAAM,uBAAuB,EAAE,CAAC;YAChC,gDAAgD;YAChD,yEAAyE;YACzE,mGAAmG;YACnG,8DAA8D;YAC9D,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;YACpE,MAAM,MAAM,GAAG,cAAc,IAAI,QAAQ,CAAC,IAAI,CAAC;YAC/C,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;YACpC,MAAM,aAAa,GAAG,aAAa,CAAC,qBAAqB,EAAE,CAAC;YAC5D,MAAM,UAAU,GAAG,YAAY,CAAC,qBAAqB,EAAE,CAAC;YACxD,eAAe,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC,KAAK,GAAG,EAAE,GAAG,aAAa,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC;YACzG,MAAM,iBAAiB,GAAG,UAAU,CAAC,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC;YAChE,MAAM,OAAO,GAAG,QAAQ,CAAC;YACzB,IAAI,iBAAiB;gBACjB,eAAe,CAAC,KAAK,CAAC,GAAG,GAAG,QAAQ,UAAU,CAAC,MAAM,QAAQ,eAAe,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC;;gBAEvG,eAAe,CAAC,KAAK,CAAC,GAAG,GAAG,QAAQ,UAAU,CAAC,GAAG,GAAG,aAAa,CAAC,MAAM,QAAQ,eAAe,CAAC,KAAK,CAAC,OAAO,MAAM,OAAO,GAAG,CAAC;YACnI,eAAe,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC;YACpC,eAAe,CAAC,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC;YAC5C,eAAe,CAAC,KAAK,CAAC,UAAU,GAAG,0BAA0B,CAAC;YAE9D,sGAAsG;YACtG,UAAU,CAAC,GAAG,EAAE;gBACZ,eAAe,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC;gBACpC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;YAChE,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YAC9C,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YAE9C,0BAA0B;YAC1B,IAAI,QAAQ,CAAC,iBAAiB,EAAE;gBAC5B,QAAQ,CAAC,iBAAiB,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;aAC3D;;gBAEG,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QAC5C,CAAC;QAED,2DAA2D;QAC3D,SAAS,UAAU;YACf,eAAe,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC;YAC7C,eAAe,CAAC,KAAK,CAAC,UAAU,GAAG,cAAc,CAAC;YAClD,eAAe,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC;YACpC,UAAU,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,WAAW,CAAC,eAAe,CAAC,EAAE,GAAG,CAAC,CAAC;YAChF,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YAChD,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YACjD,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACrD,CAAC;QAAA,CAAC;QAEF,gEAAgE;QAChE,KAAK,UAAU,uBAAuB;YAClC,MAAM,IAAI,GAAG,GAAG,CAAC;YACjB,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC;gBAC9B,IAAI,EAAE,QAAQ,CAAC,WAAW;gBAC1B,KAAK,EAAE,IAAI;gBACX,MAAM,EAAE,IAAI;aACf,CAAC,CAAC;YACH,aAAa,CAAC,SAAS,GAAG,EAAE,CAAC;YAC7B,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QAED,8BAA8B;QAC9B,YAAY,CAAC,gBAAgB,CAAC,cAAc,EAAE,GAAG,EAAE;YAC/C,uBAAuB,EAAE,CAAC;QAC9B,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAEnB,OAAO,YAAY,CAAC;IACxB,CAAC;IAEO,0BAA0B,CAAC,OAAoB;QACnD,gBAAgB,CAAC,CAAC,CAAC,EAAE;YACjB,OAAO,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;YACpD,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,cAAc,CAAC,CAAC,CAAC,EAAE;YACf,IAAI,OAAO,CAAC,kBAAkB,CAAC,IAAI,SAAS;gBACxC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;IACP,CAAC;CACJ"}
@@ -49,7 +49,7 @@ declare class Vec2 {
49
49
  y: number;
50
50
  }
51
51
  /**
52
- * Animation component to play animations on a GameObject
52
+ * Animation component to play animations on a GameObject.
53
53
  * @category Animation and Sequencing
54
54
  * @group Components
55
55
  */
@@ -15,7 +15,7 @@ class Vec2 {
15
15
  y;
16
16
  }
17
17
  /**
18
- * Animation component to play animations on a GameObject
18
+ * Animation component to play animations on a GameObject.
19
19
  * @category Animation and Sequencing
20
20
  * @group Components
21
21
  */
@@ -13,6 +13,9 @@ export declare class Keyframe {
13
13
  }
14
14
  /**
15
15
  * AnimationCurve is a representation of a curve that can be used to animate values over time.
16
+ *
17
+ * @category Animation
18
+ * @group Utilities
16
19
  */
17
20
  export declare class AnimationCurve {
18
21
  /**