@needle-tools/engine 3.3.0-alpha → 3.5.0-alpha

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 (149) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/needle-engine.js +62620 -61118
  3. package/dist/needle-engine.min.js +434 -410
  4. package/dist/needle-engine.umd.cjs +435 -411
  5. package/lib/engine/api.d.ts +1 -0
  6. package/lib/engine/api.js +1 -0
  7. package/lib/engine/api.js.map +1 -1
  8. package/lib/engine/codegen/register_types.js +50 -2
  9. package/lib/engine/codegen/register_types.js.map +1 -1
  10. package/lib/engine/engine_context.d.ts +1 -1
  11. package/lib/engine/engine_context.js +21 -15
  12. package/lib/engine/engine_context.js.map +1 -1
  13. package/lib/engine/engine_context_registry.d.ts +5 -3
  14. package/lib/engine/engine_context_registry.js +10 -2
  15. package/lib/engine/engine_context_registry.js.map +1 -1
  16. package/lib/engine/engine_element.js.map +1 -1
  17. package/lib/engine/engine_element_loading.js +2 -3
  18. package/lib/engine/engine_element_loading.js.map +1 -1
  19. package/lib/engine/engine_gameobject.d.ts +1 -1
  20. package/lib/engine/engine_gameobject.js +4 -2
  21. package/lib/engine/engine_gameobject.js.map +1 -1
  22. package/lib/engine/engine_input.d.ts +2 -2
  23. package/lib/engine/engine_physics.d.ts +20 -93
  24. package/lib/engine/engine_physics.js +20 -892
  25. package/lib/engine/engine_physics.js.map +1 -1
  26. package/lib/engine/engine_physics.types.js.map +1 -1
  27. package/lib/engine/engine_physics_rapier.d.ts +103 -0
  28. package/lib/engine/engine_physics_rapier.js +1003 -0
  29. package/lib/engine/engine_physics_rapier.js.map +1 -0
  30. package/lib/engine/engine_three_utils.js +2 -2
  31. package/lib/engine/engine_three_utils.js.map +1 -1
  32. package/lib/engine/engine_types.d.ts +50 -1
  33. package/lib/engine/engine_types.js +8 -0
  34. package/lib/engine/engine_types.js.map +1 -1
  35. package/lib/engine-components/Animation.js +4 -0
  36. package/lib/engine-components/Animation.js.map +1 -1
  37. package/lib/engine-components/Collider.js +6 -6
  38. package/lib/engine-components/Collider.js.map +1 -1
  39. package/lib/engine-components/Joints.js +2 -2
  40. package/lib/engine-components/Joints.js.map +1 -1
  41. package/lib/engine-components/RigidBody.d.ts +0 -1
  42. package/lib/engine-components/RigidBody.js +24 -30
  43. package/lib/engine-components/RigidBody.js.map +1 -1
  44. package/lib/engine-components/codegen/components.d.ts +25 -1
  45. package/lib/engine-components/codegen/components.js +25 -1
  46. package/lib/engine-components/codegen/components.js.map +1 -1
  47. package/lib/engine-components/export/usdz/Extension.d.ts +4 -4
  48. package/lib/engine-components/export/usdz/ThreeUSDZExporter.d.ts +86 -0
  49. package/lib/engine-components/export/usdz/ThreeUSDZExporter.js +858 -0
  50. package/lib/engine-components/export/usdz/ThreeUSDZExporter.js.map +1 -0
  51. package/lib/engine-components/export/usdz/USDZExporter.d.ts +6 -3
  52. package/lib/engine-components/export/usdz/USDZExporter.js +34 -11
  53. package/lib/engine-components/export/usdz/USDZExporter.js.map +1 -1
  54. package/lib/engine-components/export/usdz/extensions/Animation.d.ts +15 -15
  55. package/lib/engine-components/export/usdz/extensions/Animation.js +24 -29
  56. package/lib/engine-components/export/usdz/extensions/Animation.js.map +1 -1
  57. package/lib/engine-components/export/usdz/extensions/DocumentExtension.d.ts +5 -0
  58. package/lib/engine-components/export/usdz/extensions/DocumentExtension.js +7 -0
  59. package/lib/engine-components/export/usdz/extensions/DocumentExtension.js.map +1 -0
  60. package/lib/engine-components/export/usdz/extensions/USDZText.d.ts +47 -0
  61. package/lib/engine-components/export/usdz/extensions/USDZText.js +114 -0
  62. package/lib/engine-components/export/usdz/extensions/USDZText.js.map +1 -0
  63. package/lib/engine-components/export/usdz/extensions/behavior/Actions.d.ts +30 -0
  64. package/lib/engine-components/export/usdz/extensions/behavior/Actions.js +89 -0
  65. package/lib/engine-components/export/usdz/extensions/behavior/Actions.js.map +1 -0
  66. package/lib/engine-components/export/usdz/extensions/behavior/Behaviour.d.ts +23 -0
  67. package/lib/engine-components/export/usdz/extensions/behavior/Behaviour.js +114 -0
  68. package/lib/engine-components/export/usdz/extensions/behavior/Behaviour.js.map +1 -0
  69. package/lib/engine-components/export/usdz/extensions/behavior/BehaviourComponents.d.ts +102 -0
  70. package/lib/engine-components/export/usdz/extensions/behavior/BehaviourComponents.js +458 -0
  71. package/lib/engine-components/export/usdz/extensions/behavior/BehaviourComponents.js.map +1 -0
  72. package/lib/engine-components/export/usdz/extensions/behavior/BehavioursBuilder.d.ts +111 -0
  73. package/lib/engine-components/export/usdz/extensions/behavior/BehavioursBuilder.js +409 -0
  74. package/lib/engine-components/export/usdz/extensions/behavior/BehavioursBuilder.js.map +1 -0
  75. package/lib/engine-components/postprocessing/PostProcessingHandler.js.map +1 -1
  76. package/lib/engine-components/ui/BaseUIComponent.d.ts +2 -0
  77. package/lib/engine-components/ui/BaseUIComponent.js +6 -0
  78. package/lib/engine-components/ui/BaseUIComponent.js.map +1 -1
  79. package/lib/engine-components/ui/Canvas.d.ts +11 -1
  80. package/lib/engine-components/ui/Canvas.js +72 -3
  81. package/lib/engine-components/ui/Canvas.js.map +1 -1
  82. package/lib/engine-components/ui/Graphic.js.map +1 -1
  83. package/lib/engine-components/ui/Image.js +4 -4
  84. package/lib/engine-components/ui/Image.js.map +1 -1
  85. package/lib/engine-components/ui/Interfaces.d.ts +11 -0
  86. package/lib/engine-components/ui/Interfaces.js +11 -0
  87. package/lib/engine-components/ui/Interfaces.js.map +1 -1
  88. package/lib/engine-components/ui/Layout.d.ts +65 -3
  89. package/lib/engine-components/ui/Layout.js +304 -3
  90. package/lib/engine-components/ui/Layout.js.map +1 -1
  91. package/lib/engine-components/ui/RectTransform.d.ts +8 -7
  92. package/lib/engine-components/ui/RectTransform.js +66 -36
  93. package/lib/engine-components/ui/RectTransform.js.map +1 -1
  94. package/lib/engine-components/utils/LookAt.d.ts +7 -1
  95. package/lib/engine-components/utils/LookAt.js +43 -6
  96. package/lib/engine-components/utils/LookAt.js.map +1 -1
  97. package/lib/engine-components/webxr/WebXRImageTracking.d.ts +4 -3
  98. package/lib/engine-components/webxr/WebXRImageTracking.js +81 -25
  99. package/lib/engine-components/webxr/WebXRImageTracking.js.map +1 -1
  100. package/lib/tsconfig.tsbuildinfo +1 -1
  101. package/package.json +1 -1
  102. package/plugins/vite/config.js +2 -1
  103. package/plugins/vite/defines.js +30 -0
  104. package/plugins/vite/dependency-watcher.js +173 -0
  105. package/plugins/vite/editor-connection.js +37 -39
  106. package/plugins/vite/index.js +5 -1
  107. package/plugins/vite/reload.js +16 -3
  108. package/src/engine/api.ts +1 -0
  109. package/src/engine/codegen/register_types.js +50 -2
  110. package/src/engine/engine_context.ts +32 -23
  111. package/src/engine/engine_context_registry.ts +13 -6
  112. package/src/engine/engine_element.ts +2 -1
  113. package/src/engine/engine_element_loading.ts +2 -3
  114. package/src/engine/engine_gameobject.ts +3 -2
  115. package/src/engine/engine_input.ts +2 -2
  116. package/src/engine/engine_physics.ts +25 -1020
  117. package/src/engine/engine_physics.types.ts +1 -3
  118. package/src/engine/engine_physics_rapier.ts +1127 -0
  119. package/src/engine/engine_three_utils.ts +2 -2
  120. package/src/engine/engine_types.ts +66 -4
  121. package/src/engine-components/Animation.ts +4 -0
  122. package/src/engine-components/Collider.ts +6 -6
  123. package/src/engine-components/Joints.ts +2 -2
  124. package/src/engine-components/RigidBody.ts +24 -31
  125. package/src/engine-components/codegen/components.ts +25 -1
  126. package/src/engine-components/export/usdz/Extension.ts +4 -5
  127. package/src/engine-components/export/usdz/ThreeUSDZExporter.ts +1312 -0
  128. package/src/engine-components/export/usdz/USDZExporter.ts +39 -17
  129. package/src/engine-components/export/usdz/extensions/Animation.ts +37 -45
  130. package/src/engine-components/export/usdz/extensions/DocumentExtension.ts +10 -0
  131. package/src/engine-components/export/usdz/extensions/USDZText.ts +142 -0
  132. package/src/engine-components/export/usdz/extensions/behavior/Actions.ts +99 -0
  133. package/src/engine-components/export/usdz/extensions/behavior/Behaviour.ts +181 -0
  134. package/src/engine-components/export/usdz/extensions/behavior/BehaviourComponents.ts +545 -0
  135. package/src/engine-components/export/usdz/extensions/behavior/BehavioursBuilder.ts +459 -0
  136. package/src/engine-components/postprocessing/PostProcessingHandler.ts +1 -1
  137. package/src/engine-components/ui/BaseUIComponent.ts +7 -1
  138. package/src/engine-components/ui/Canvas.ts +80 -5
  139. package/src/engine-components/ui/Graphic.ts +2 -0
  140. package/src/engine-components/ui/Image.ts +3 -3
  141. package/src/engine-components/ui/Interfaces.ts +30 -6
  142. package/src/engine-components/ui/Layout.ts +303 -4
  143. package/src/engine-components/ui/RectTransform.ts +67 -41
  144. package/src/engine-components/utils/LookAt.ts +60 -7
  145. package/src/engine-components/webxr/WebXRImageTracking.ts +100 -27
  146. package/lib/engine-components/export/usdz/types.d.ts +0 -34
  147. package/lib/engine-components/export/usdz/types.js +0 -2
  148. package/lib/engine-components/export/usdz/types.js.map +0 -1
  149. package/src/engine-components/export/usdz/types.ts +0 -39
@@ -1,11 +1,312 @@
1
- import { Behaviour } from "../Component";
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { Behaviour, GameObject } from "../Component";
8
+ import { serializable } from "../../engine/engine_serialization";
9
+ import { Canvas } from "./Canvas";
10
+ import { RectTransform } from "./RectTransform";
11
+ import { getParam } from "../../engine/engine_utils";
12
+ const debug = getParam("debuguilayout");
13
+ export class Padding {
14
+ left = 0;
15
+ right = 0;
16
+ top = 0;
17
+ bottom = 0;
18
+ get vertical() {
19
+ return this.top + this.bottom;
20
+ }
21
+ get horizontal() {
22
+ return this.left + this.right;
23
+ }
24
+ }
25
+ __decorate([
26
+ serializable()
27
+ ], Padding.prototype, "left", void 0);
28
+ __decorate([
29
+ serializable()
30
+ ], Padding.prototype, "right", void 0);
31
+ __decorate([
32
+ serializable()
33
+ ], Padding.prototype, "top", void 0);
34
+ __decorate([
35
+ serializable()
36
+ ], Padding.prototype, "bottom", void 0);
37
+ export var TextAnchor;
38
+ (function (TextAnchor) {
39
+ TextAnchor[TextAnchor["UpperLeft"] = 0] = "UpperLeft";
40
+ TextAnchor[TextAnchor["UpperCenter"] = 1] = "UpperCenter";
41
+ TextAnchor[TextAnchor["UpperRight"] = 2] = "UpperRight";
42
+ TextAnchor[TextAnchor["MiddleLeft"] = 3] = "MiddleLeft";
43
+ TextAnchor[TextAnchor["MiddleCenter"] = 4] = "MiddleCenter";
44
+ TextAnchor[TextAnchor["MiddleRight"] = 5] = "MiddleRight";
45
+ TextAnchor[TextAnchor["LowerLeft"] = 6] = "LowerLeft";
46
+ TextAnchor[TextAnchor["LowerCenter"] = 7] = "LowerCenter";
47
+ TextAnchor[TextAnchor["LowerRight"] = 8] = "LowerRight";
48
+ TextAnchor[TextAnchor["Custom"] = 9] = "Custom";
49
+ })(TextAnchor || (TextAnchor = {}));
50
+ var Axis;
51
+ (function (Axis) {
52
+ Axis["Horizontal"] = "x";
53
+ Axis["Vertical"] = "y";
54
+ })(Axis || (Axis = {}));
2
55
  export class LayoutGroup extends Behaviour {
56
+ _rectTransform = null;
57
+ get rectTransform() {
58
+ return this._rectTransform;
59
+ }
60
+ onParentRectTransformChanged(_comp) {
61
+ this._needsUpdate = true;
62
+ }
63
+ _needsUpdate = false;
64
+ get isDirty() {
65
+ return this._needsUpdate;
66
+ }
67
+ get isLayoutGroup() {
68
+ return true;
69
+ }
70
+ updateLayout() {
71
+ if (!this._rectTransform)
72
+ return;
73
+ if (debug)
74
+ console.warn("Layout Update", this.context.time.frame, this.name);
75
+ this._needsUpdate = false;
76
+ this.onCalculateLayout(this._rectTransform);
77
+ }
78
+ // onBeforeRender(): void {
79
+ // this.updateLayout();
80
+ // }
81
+ childAlignment = TextAnchor.UpperLeft;
3
82
  reverseArrangement = false;
83
+ spacing = 0;
84
+ padding;
85
+ minWidth = 0;
86
+ minHeight = 0;
87
+ flexibleHeight = 0;
88
+ flexibleWidth = 0;
89
+ preferredHeight = 0;
90
+ preferredWidth = 0;
91
+ start() {
92
+ this._needsUpdate = true;
93
+ }
94
+ onEnable() {
95
+ if (debug)
96
+ console.log(this.name, this);
97
+ this._rectTransform = this.gameObject.getComponent(RectTransform);
98
+ const canvas = this.gameObject.getComponentInParent(Canvas);
99
+ if (canvas) {
100
+ canvas.registerLayoutGroup(this);
101
+ }
102
+ this._needsUpdate = true;
103
+ }
104
+ onDisable() {
105
+ const canvas = this.gameObject.getComponentInParent(Canvas);
106
+ if (canvas) {
107
+ canvas.unregisterLayoutGroup(this);
108
+ }
109
+ }
110
+ // for animation:
111
+ set m_Spacing(val) {
112
+ if (val === this.spacing)
113
+ return;
114
+ this._needsUpdate = true;
115
+ this.spacing = val;
116
+ }
117
+ get m_Spacing() {
118
+ return this.spacing;
119
+ }
120
+ }
121
+ __decorate([
122
+ serializable()
123
+ ], LayoutGroup.prototype, "childAlignment", void 0);
124
+ __decorate([
125
+ serializable()
126
+ ], LayoutGroup.prototype, "reverseArrangement", void 0);
127
+ __decorate([
128
+ serializable()
129
+ ], LayoutGroup.prototype, "spacing", void 0);
130
+ __decorate([
131
+ serializable(Padding)
132
+ ], LayoutGroup.prototype, "padding", void 0);
133
+ __decorate([
134
+ serializable()
135
+ ], LayoutGroup.prototype, "minWidth", void 0);
136
+ __decorate([
137
+ serializable()
138
+ ], LayoutGroup.prototype, "minHeight", void 0);
139
+ __decorate([
140
+ serializable()
141
+ ], LayoutGroup.prototype, "flexibleHeight", void 0);
142
+ __decorate([
143
+ serializable()
144
+ ], LayoutGroup.prototype, "flexibleWidth", void 0);
145
+ __decorate([
146
+ serializable()
147
+ ], LayoutGroup.prototype, "preferredHeight", void 0);
148
+ __decorate([
149
+ serializable()
150
+ ], LayoutGroup.prototype, "preferredWidth", void 0);
151
+ export class HorizontalOrVerticalLayoutGroup extends LayoutGroup {
152
+ childControlHeight = true;
153
+ childControlWidth = true;
154
+ childForceExpandHeight = false;
155
+ childForceExpandWidth = false;
156
+ childScaleHeight = false;
157
+ childScaleWidth = false;
158
+ onCalculateLayout(rect) {
159
+ const axis = this.primaryAxis;
160
+ const totalWidth = rect.width;
161
+ let actualWidth = totalWidth;
162
+ const totalHeight = rect.height;
163
+ let actualHeight = totalHeight;
164
+ actualWidth -= this.padding.horizontal;
165
+ actualHeight -= this.padding.vertical;
166
+ // console.log(rt.name, "width=" + totalWidth + ", height=" + totalHeight)
167
+ const paddingAxis = axis === Axis.Horizontal ? this.padding.horizontal : this.padding.vertical;
168
+ const isHorizontal = axis === Axis.Horizontal;
169
+ const isVertical = !isHorizontal;
170
+ const otherAxis = isHorizontal ? "y" : "x";
171
+ const controlSize = isHorizontal ? this.childControlWidth : this.childControlHeight;
172
+ const controlSizeOtherAxis = isHorizontal ? this.childControlHeight : this.childControlWidth;
173
+ const forceExpandSize = isHorizontal ? this.childForceExpandWidth : this.childForceExpandHeight;
174
+ const forceExpandSizeOtherAxis = isHorizontal ? this.childForceExpandHeight : this.childForceExpandWidth;
175
+ const actualExpandSize = isHorizontal ? actualHeight : actualWidth;
176
+ const totalSpace = isHorizontal ? totalWidth : totalHeight;
177
+ // 0 is left/top, 0.5 is middle, 1 is right/bottom
178
+ const alignmentOnAxis = 0.5 * (isHorizontal ? this.childAlignment % 3 : Math.floor(this.childAlignment / 3));
179
+ let start = 0;
180
+ if (isHorizontal) {
181
+ start += this.padding.left;
182
+ }
183
+ else
184
+ start += this.padding.top;
185
+ // Calculate total size of the elements
186
+ let totalChildSize = 0;
187
+ let actualRectTransformChildCount = 0;
188
+ for (let i = 0; i < this.gameObject.children.length; i++) {
189
+ const ch = this.gameObject.children[i];
190
+ const rt = GameObject.getComponent(ch, RectTransform);
191
+ if (rt?.activeAndEnabled) {
192
+ actualRectTransformChildCount += 1;
193
+ if (isHorizontal) {
194
+ totalChildSize += rt.width;
195
+ }
196
+ else {
197
+ totalChildSize += rt.height;
198
+ }
199
+ }
200
+ }
201
+ let sizePerChild = 0;
202
+ const totalSpacing = this.spacing * (actualRectTransformChildCount - 1);
203
+ if (forceExpandSize || controlSize) {
204
+ let size = 0;
205
+ if (isHorizontal) {
206
+ size = actualWidth -= totalSpacing;
207
+ }
208
+ else {
209
+ size = actualHeight -= totalSpacing;
210
+ }
211
+ if (actualRectTransformChildCount > 0)
212
+ sizePerChild = size / actualRectTransformChildCount;
213
+ }
214
+ let leftOffset = 0;
215
+ leftOffset += this.padding.left;
216
+ leftOffset -= this.padding.right;
217
+ if (alignmentOnAxis !== 0) {
218
+ start = totalSpace - totalChildSize;
219
+ start *= alignmentOnAxis;
220
+ start -= totalSpacing * alignmentOnAxis;
221
+ if (isHorizontal) {
222
+ start -= this.padding.right * alignmentOnAxis;
223
+ start += this.padding.left * (1 - alignmentOnAxis);
224
+ if (start < this.padding.left) {
225
+ start = this.padding.left;
226
+ }
227
+ }
228
+ else {
229
+ start -= this.padding.bottom * alignmentOnAxis;
230
+ start += this.padding.top * (1 - alignmentOnAxis);
231
+ if (start < this.padding.top) {
232
+ start = this.padding.top;
233
+ }
234
+ }
235
+ }
236
+ // Apply layout
237
+ let k = 0;
238
+ for (let i = 0; i < this.gameObject.children.length; i++) {
239
+ const ch = this.gameObject.children[i];
240
+ const rt = GameObject.getComponent(ch, RectTransform);
241
+ if (rt?.activeAndEnabled) {
242
+ rt.pivot?.set(.5, .5);
243
+ // Horizontal padding
244
+ const x = totalWidth * .5 + leftOffset * .5;
245
+ if (rt.anchoredPosition.x !== x)
246
+ rt.anchoredPosition.x = x;
247
+ const y = totalHeight * -.5;
248
+ if (rt.anchoredPosition.y !== y)
249
+ rt.anchoredPosition.y = y;
250
+ // Set the size for the secondary axis (e.g. height for a horizontal layout group)
251
+ if (forceExpandSizeOtherAxis && controlSizeOtherAxis && rt.sizeDelta[otherAxis] !== actualExpandSize) {
252
+ rt.sizeDelta[otherAxis] = actualExpandSize;
253
+ }
254
+ // Set the size for the primary axis (e.g. width for a horizontal layout group)
255
+ if (forceExpandSize && controlSize && rt.sizeDelta[axis] !== sizePerChild) {
256
+ rt.sizeDelta[axis] = sizePerChild;
257
+ }
258
+ const size = isHorizontal ? rt.width : rt.height;
259
+ let halfSize = size * .5;
260
+ start += halfSize;
261
+ if (forceExpandSize) {
262
+ let preferredStart = sizePerChild * (k + 1) - sizePerChild * .5;
263
+ if (preferredStart > start)
264
+ start = preferredStart;
265
+ }
266
+ let value = start;
267
+ if (axis === Axis.Vertical)
268
+ value = -value;
269
+ // Only set the position if it's not already the correct one to avoid triggering the rectTransform dirty event
270
+ if (rt.anchoredPosition[axis] !== value) {
271
+ rt.anchoredPosition[axis] = value;
272
+ }
273
+ start += halfSize;
274
+ start += this.spacing;
275
+ k += 1;
276
+ }
277
+ }
278
+ }
4
279
  }
5
- export class VerticalLayoutGroup extends LayoutGroup {
280
+ __decorate([
281
+ serializable()
282
+ ], HorizontalOrVerticalLayoutGroup.prototype, "childControlHeight", void 0);
283
+ __decorate([
284
+ serializable()
285
+ ], HorizontalOrVerticalLayoutGroup.prototype, "childControlWidth", void 0);
286
+ __decorate([
287
+ serializable()
288
+ ], HorizontalOrVerticalLayoutGroup.prototype, "childForceExpandHeight", void 0);
289
+ __decorate([
290
+ serializable()
291
+ ], HorizontalOrVerticalLayoutGroup.prototype, "childForceExpandWidth", void 0);
292
+ __decorate([
293
+ serializable()
294
+ ], HorizontalOrVerticalLayoutGroup.prototype, "childScaleHeight", void 0);
295
+ __decorate([
296
+ serializable()
297
+ ], HorizontalOrVerticalLayoutGroup.prototype, "childScaleWidth", void 0);
298
+ export class VerticalLayoutGroup extends HorizontalOrVerticalLayoutGroup {
299
+ get primaryAxis() {
300
+ return Axis.Vertical;
301
+ }
6
302
  }
7
- export class HorizontalLayoutGroup extends LayoutGroup {
303
+ export class HorizontalLayoutGroup extends HorizontalOrVerticalLayoutGroup {
304
+ get primaryAxis() {
305
+ return Axis.Horizontal;
306
+ }
8
307
  }
9
308
  export class GridLayoutGroup extends LayoutGroup {
309
+ onCalculateLayout() {
310
+ }
10
311
  }
11
312
  //# sourceMappingURL=Layout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Layout.js","sourceRoot":"","sources":["../../../src/engine-components/ui/Layout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,OAAO,WAAY,SAAQ,SAAS;IACtC,kBAAkB,GAAY,KAAK,CAAC;CACvC;AAED,MAAM,OAAO,mBAAoB,SAAQ,WAAW;CAEnD;AAED,MAAM,OAAO,qBAAsB,SAAQ,WAAW;CAErD;AAED,MAAM,OAAO,eAAgB,SAAQ,WAAW;CAE/C"}
1
+ {"version":3,"file":"Layout.js","sourceRoot":"","sources":["../../../src/engine-components/ui/Layout.ts"],"names":[],"mappings":"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"}
@@ -30,20 +30,21 @@ export declare class RectTransform extends BaseUIComponent implements IRectTrans
30
30
  offsetMax: Vector2;
31
31
  get width(): any;
32
32
  get height(): any;
33
- private lastMatrixWorld;
34
33
  private lastMatrix;
35
34
  private rectBlock;
36
35
  private _transformNeedsUpdate;
37
36
  awake(): void;
38
37
  onEnable(): void;
39
38
  onDisable(): void;
40
- onParentRectTransformChanged(_comp: IRectTransform): void;
41
- private _parentRectTransform?;
42
- private applyTransform;
43
- private _copyMatrixAfterRender;
39
+ onParentRectTransformChanged(comp: IRectTransform): void;
40
+ get isDirty(): boolean;
44
41
  markDirty(): void;
45
- onBeforeRender(): void;
46
- onAfterRender(): void;
42
+ /** Will update the transforms if it changed or is dirty */
43
+ updateTransform(): void;
44
+ private _parentRectTransform?;
45
+ private _lastUpdateFrame;
46
+ private canUpdate;
47
+ private onApplyTransform;
47
48
  /** applies the position offset to the passed in vector */
48
49
  private applyAnchoring;
49
50
  /** applies the pivot offset to the passed in vector */
@@ -13,6 +13,7 @@ import { onChange } from "./Utils";
13
13
  import { foreachComponentEnumerator } from "../../engine/engine_gameobject";
14
14
  import { GameObject } from '../Component';
15
15
  const debug = getParam("debugui");
16
+ const debugLayout = getParam("debuguilayout");
16
17
  export class Size {
17
18
  width;
18
19
  height;
@@ -27,7 +28,7 @@ const tempVec = new Vector3();
27
28
  const tempMatrix = new Matrix4();
28
29
  const tempQuaternion = new Quaternion();
29
30
  export class RectTransform extends BaseUIComponent {
30
- offset = 0.05;
31
+ offset = 0.1;
31
32
  // @serializable(Object3D)
32
33
  // root? : Object3D;
33
34
  get translation() { return this.gameObject.position; }
@@ -73,13 +74,12 @@ export class RectTransform extends BaseUIComponent {
73
74
  }
74
75
  return this.sizeDelta.y;
75
76
  }
76
- lastMatrixWorld;
77
+ // private lastMatrixWorld!: Matrix4;
77
78
  lastMatrix;
78
79
  rectBlock;
79
80
  _transformNeedsUpdate = false;
80
81
  awake() {
81
82
  super.awake();
82
- this.lastMatrixWorld = new Matrix4();
83
83
  this.lastMatrix = new Matrix4();
84
84
  this.rectBlock = new Object3D();
85
85
  ;
@@ -90,9 +90,10 @@ export class RectTransform extends BaseUIComponent {
90
90
  this._anchoredPosition = new Vector3();
91
91
  // TODO: we need to replace this with the watch that e.g. Rigibody is using (or the one in utils?)
92
92
  // perhaps we can also just manually check the few properties in the update loops?
93
- onChange(this, "_anchoredPosition", () => { this._transformNeedsUpdate = true; });
94
- onChange(this, "sizeDelta", () => { this._transformNeedsUpdate = true; });
95
- onChange(this, "pivot", () => { this._transformNeedsUpdate = true; });
93
+ // TODO: check if value actually changed, this is called on assignment
94
+ onChange(this, "_anchoredPosition", () => { this.markDirty(); });
95
+ onChange(this, "sizeDelta", () => { this.markDirty(); });
96
+ onChange(this, "pivot", () => { this.markDirty(); });
96
97
  // When exported with an anchored position offset we remove it here
97
98
  // because it would otherwise be applied twice when the anchoring is animated
98
99
  // Maybe we can get rid of this workaround if we just set the mesh ui position from the
@@ -111,25 +112,63 @@ export class RectTransform extends BaseUIComponent {
111
112
  super.onEnable();
112
113
  this.addShadowComponent(this.rectBlock);
113
114
  this._transformNeedsUpdate = true;
115
+ this.Canvas?.registerTransform(this);
114
116
  }
115
117
  onDisable() {
116
118
  super.onDisable();
117
119
  this.removeShadowComponent();
120
+ this.Canvas?.unregisterTransform(this);
118
121
  }
119
- onParentRectTransformChanged(_comp) {
122
+ onParentRectTransformChanged(comp) {
123
+ if (this._transformNeedsUpdate)
124
+ return;
120
125
  // When the parent rect transform changes we have to to recalculate our transform
126
+ this.onApplyTransform(debugLayout ? `${comp.name} changed` : undefined);
127
+ }
128
+ get isDirty() {
129
+ if (!this._transformNeedsUpdate)
130
+ this._transformNeedsUpdate = !this.lastMatrix.equals(this.gameObject.matrix);
131
+ return this._transformNeedsUpdate;
132
+ }
133
+ // private _copyMatrixAfterRender: boolean = false;
134
+ markDirty() {
135
+ if (this._transformNeedsUpdate)
136
+ return;
137
+ if (debugLayout)
138
+ console.warn("RectTransform markDirty()", this.name);
121
139
  this._transformNeedsUpdate = true;
122
- this.applyTransform();
140
+ // If mark dirty is called explictly we want to allow updating the transform again when updateTransform is called
141
+ // if we dont reset it here we get delayed layout updates
142
+ this._lastUpdateFrame = -1;
143
+ }
144
+ /** Will update the transforms if it changed or is dirty */
145
+ updateTransform() {
146
+ // TODO: instead of checking matrix again it would perhaps be better to test if position, rotation or scale have changed individually?
147
+ const transformChanged = this._transformNeedsUpdate || !this.lastMatrix.equals(this.gameObject.matrix); // || !this.lastMatrixWorld.equals(this.gameObject.matrixWorld);
148
+ if (transformChanged && this.canUpdate()) {
149
+ this.onApplyTransform(this._transformNeedsUpdate ? "Marked dirty" : "Matrix changed");
150
+ }
123
151
  }
124
152
  _parentRectTransform;
125
- applyTransform() {
153
+ _lastUpdateFrame = -1;
154
+ canUpdate() {
155
+ return this._transformNeedsUpdate && this.activeAndEnabled && this._lastUpdateFrame !== this.context.time.frame;
156
+ }
157
+ onApplyTransform(reason) {
158
+ // TODO: need to improve the update logic, with this UI updates have some frame delay but dont happen exponentially per hierarchy
159
+ if (this.context.time.frameCount === this._lastUpdateFrame)
160
+ return;
161
+ this._lastUpdateFrame = this.context.time.frameCount;
126
162
  const uiobject = this.shadowComponent;
127
163
  if (!uiobject)
128
164
  return;
129
- this._transformNeedsUpdate = false;
165
+ if (!this.gameObject.parent)
166
+ return;
130
167
  this._parentRectTransform = GameObject.getComponentInParent(this.gameObject.parent, RectTransform);
131
- if (debug)
132
- console.log("RectTransform ApplyTransform", this.name, this.isRoot());
168
+ this._transformNeedsUpdate = false;
169
+ this.lastMatrix.copy(this.gameObject.matrix);
170
+ if (debugLayout)
171
+ console.warn("RectTransform → ApplyTransform", this.name + " because " + reason);
133
172
  if (!this.isRoot()) {
134
173
  // Reset temp matrix
135
174
  uiobject.matrix.identity();
@@ -155,45 +194,36 @@ export class RectTransform extends BaseUIComponent {
155
194
  tempMatrix.setPosition(tempVec.x, tempVec.y, tempVec.z);
156
195
  uiobject.matrix.premultiply(tempMatrix);
157
196
  // apply scale if necessary
158
- if (this.gameObject.scale.x || this.gameObject.scale.y || this.gameObject.scale.z)
159
- uiobject.matrix.scale(this.gameObject.scale);
197
+ uiobject.matrix.scale(this.gameObject.scale);
160
198
  }
161
199
  else {
162
200
  // We have to rotate the canvas when it's in worldspace
163
201
  const canvas = this.Root;
164
- if (!canvas.screenspace)
202
+ if (canvas && !canvas.screenspace)
165
203
  uiobject.rotation.y = Math.PI;
166
204
  }
167
- this._copyMatrixAfterRender = true;
168
- this.lastMatrix.copy(this.gameObject.matrix);
169
205
  // iterate other components on this object that might need to know about the transform change
170
206
  // e.g. Graphic components should update their width and height
171
207
  const includeChildren = true;
172
- for (const comp of foreachComponentEnumerator(this.gameObject, BaseUIComponent, includeChildren)) {
208
+ for (const comp of foreachComponentEnumerator(this.gameObject, BaseUIComponent, includeChildren, 1)) {
173
209
  if (comp === this)
174
210
  continue;
211
+ if (!comp.activeAndEnabled)
212
+ continue;
175
213
  const callback = comp;
176
- if (callback.onParentRectTransformChanged)
214
+ if (callback.onParentRectTransformChanged) {
215
+ // if (debugLayout) console.log(`RectTransform ${this.name} → call`, comp.name + "/" + comp.constructor.name)
177
216
  callback.onParentRectTransformChanged(this);
217
+ }
178
218
  }
219
+ // const layout = GameObject.getComponentInParent(this.gameObject, ILayoutGroup);
179
220
  }
180
- _copyMatrixAfterRender = false;
181
- markDirty() {
182
- this._transformNeedsUpdate = true;
183
- }
184
- onBeforeRender() {
185
- // TODO: instead of checking matrix again it would perhaps be better to test if position, rotation or scale have changed individually?
186
- const transformChanged = this.gameObject.matrixWorldNeedsUpdate || this._transformNeedsUpdate || !this.lastMatrixWorld.equals(this.gameObject.matrixWorld) || !this.lastMatrix.equals(this.gameObject.matrix);
187
- if (transformChanged) {
188
- this.applyTransform();
189
- }
190
- }
191
- onAfterRender() {
192
- if (this._copyMatrixAfterRender) {
193
- // can we only have this event when the transform changed in this frame? Otherwise all RectTransforms will be iterated. Not sure what is better
194
- this.lastMatrixWorld.copy(this.gameObject.matrixWorld);
195
- }
196
- }
221
+ // onAfterRender() {
222
+ // if (this._copyMatrixAfterRender) {
223
+ // // can we only have this event when the transform changed in this frame? Otherwise all RectTransforms will be iterated. Not sure what is better
224
+ // this.lastMatrixWorld.copy(this.gameObject.matrixWorld);
225
+ // }
226
+ // }
197
227
  /** applies the position offset to the passed in vector */
198
228
  applyAnchoring(pos) {
199
229
  pos.x += this.anchoredPosition.x;
@@ -1 +1 @@
1
- {"version":3,"file":"RectTransform.js","sourceRoot":"","sources":["../../../src/engine-components/ui/RectTransform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RectTransform.js","sourceRoot":"","sources":["../../../src/engine-components/ui/RectTransform.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,13 @@
1
1
  import { Behaviour } from "../Component";
2
2
  import { Object3D } from "three";
3
- export declare class LookAt extends Behaviour {
3
+ import { USDObject } from "../../engine-components/export/usdz/ThreeUSDZExporter";
4
+ import { UsdzBehaviour } from "../../engine-components/export/usdz/extensions/behavior/Behaviour";
5
+ export declare class LookAt extends Behaviour implements UsdzBehaviour {
4
6
  target?: Object3D;
5
7
  invertForward: boolean;
8
+ keepUpDirection: boolean;
9
+ copyTargetRotation: boolean;
10
+ private static flipYQuat;
6
11
  onBeforeRender(): void;
12
+ createBehaviours(ext: any, model: USDObject, _context: any): void;
7
13
  }