@needle-tools/engine 3.3.0-alpha → 3.4.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 (101) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/needle-engine.js +26116 -24881
  3. package/dist/needle-engine.min.js +384 -383
  4. package/dist/needle-engine.umd.cjs +372 -371
  5. package/lib/engine/codegen/register_types.js +50 -2
  6. package/lib/engine/codegen/register_types.js.map +1 -1
  7. package/lib/engine/engine_gameobject.d.ts +1 -1
  8. package/lib/engine/engine_gameobject.js +4 -2
  9. package/lib/engine/engine_gameobject.js.map +1 -1
  10. package/lib/engine/engine_three_utils.js +2 -2
  11. package/lib/engine/engine_three_utils.js.map +1 -1
  12. package/lib/engine-components/Animation.js +4 -0
  13. package/lib/engine-components/Animation.js.map +1 -1
  14. package/lib/engine-components/codegen/components.d.ts +25 -1
  15. package/lib/engine-components/codegen/components.js +25 -1
  16. package/lib/engine-components/codegen/components.js.map +1 -1
  17. package/lib/engine-components/export/usdz/Extension.d.ts +4 -4
  18. package/lib/engine-components/export/usdz/ThreeUSDZExporter.d.ts +86 -0
  19. package/lib/engine-components/export/usdz/ThreeUSDZExporter.js +830 -0
  20. package/lib/engine-components/export/usdz/ThreeUSDZExporter.js.map +1 -0
  21. package/lib/engine-components/export/usdz/USDZExporter.d.ts +6 -3
  22. package/lib/engine-components/export/usdz/USDZExporter.js +34 -11
  23. package/lib/engine-components/export/usdz/USDZExporter.js.map +1 -1
  24. package/lib/engine-components/export/usdz/extensions/Animation.d.ts +15 -15
  25. package/lib/engine-components/export/usdz/extensions/Animation.js +24 -29
  26. package/lib/engine-components/export/usdz/extensions/Animation.js.map +1 -1
  27. package/lib/engine-components/export/usdz/extensions/DocumentExtension.d.ts +5 -0
  28. package/lib/engine-components/export/usdz/extensions/DocumentExtension.js +7 -0
  29. package/lib/engine-components/export/usdz/extensions/DocumentExtension.js.map +1 -0
  30. package/lib/engine-components/export/usdz/extensions/USDZText.d.ts +47 -0
  31. package/lib/engine-components/export/usdz/extensions/USDZText.js +114 -0
  32. package/lib/engine-components/export/usdz/extensions/USDZText.js.map +1 -0
  33. package/lib/engine-components/export/usdz/extensions/behavior/Actions.d.ts +30 -0
  34. package/lib/engine-components/export/usdz/extensions/behavior/Actions.js +89 -0
  35. package/lib/engine-components/export/usdz/extensions/behavior/Actions.js.map +1 -0
  36. package/lib/engine-components/export/usdz/extensions/behavior/Behaviour.d.ts +23 -0
  37. package/lib/engine-components/export/usdz/extensions/behavior/Behaviour.js +114 -0
  38. package/lib/engine-components/export/usdz/extensions/behavior/Behaviour.js.map +1 -0
  39. package/lib/engine-components/export/usdz/extensions/behavior/BehaviourComponents.d.ts +96 -0
  40. package/lib/engine-components/export/usdz/extensions/behavior/BehaviourComponents.js +421 -0
  41. package/lib/engine-components/export/usdz/extensions/behavior/BehaviourComponents.js.map +1 -0
  42. package/lib/engine-components/export/usdz/extensions/behavior/BehavioursBuilder.d.ts +111 -0
  43. package/lib/engine-components/export/usdz/extensions/behavior/BehavioursBuilder.js +409 -0
  44. package/lib/engine-components/export/usdz/extensions/behavior/BehavioursBuilder.js.map +1 -0
  45. package/lib/engine-components/postprocessing/PostProcessingHandler.js.map +1 -1
  46. package/lib/engine-components/ui/BaseUIComponent.d.ts +2 -0
  47. package/lib/engine-components/ui/BaseUIComponent.js +6 -0
  48. package/lib/engine-components/ui/BaseUIComponent.js.map +1 -1
  49. package/lib/engine-components/ui/Canvas.d.ts +11 -1
  50. package/lib/engine-components/ui/Canvas.js +72 -3
  51. package/lib/engine-components/ui/Canvas.js.map +1 -1
  52. package/lib/engine-components/ui/Graphic.js.map +1 -1
  53. package/lib/engine-components/ui/Image.js +4 -4
  54. package/lib/engine-components/ui/Image.js.map +1 -1
  55. package/lib/engine-components/ui/Interfaces.d.ts +11 -0
  56. package/lib/engine-components/ui/Interfaces.js +11 -0
  57. package/lib/engine-components/ui/Interfaces.js.map +1 -1
  58. package/lib/engine-components/ui/Layout.d.ts +65 -3
  59. package/lib/engine-components/ui/Layout.js +304 -3
  60. package/lib/engine-components/ui/Layout.js.map +1 -1
  61. package/lib/engine-components/ui/RectTransform.d.ts +8 -7
  62. package/lib/engine-components/ui/RectTransform.js +63 -35
  63. package/lib/engine-components/ui/RectTransform.js.map +1 -1
  64. package/lib/engine-components/utils/LookAt.d.ts +7 -1
  65. package/lib/engine-components/utils/LookAt.js +43 -6
  66. package/lib/engine-components/utils/LookAt.js.map +1 -1
  67. package/lib/engine-components/webxr/WebXRImageTracking.d.ts +4 -3
  68. package/lib/engine-components/webxr/WebXRImageTracking.js +81 -25
  69. package/lib/engine-components/webxr/WebXRImageTracking.js.map +1 -1
  70. package/lib/tsconfig.tsbuildinfo +1 -1
  71. package/package.json +1 -1
  72. package/plugins/vite/reload.js +13 -2
  73. package/src/engine/codegen/register_types.js +52 -4
  74. package/src/engine/engine_gameobject.ts +3 -2
  75. package/src/engine/engine_three_utils.ts +2 -2
  76. package/src/engine-components/Animation.ts +4 -0
  77. package/src/engine-components/codegen/components.ts +25 -1
  78. package/src/engine-components/export/usdz/Extension.ts +4 -5
  79. package/src/engine-components/export/usdz/ThreeUSDZExporter.ts +1280 -0
  80. package/src/engine-components/export/usdz/USDZExporter.ts +39 -17
  81. package/src/engine-components/export/usdz/extensions/Animation.ts +37 -45
  82. package/src/engine-components/export/usdz/extensions/DocumentExtension.ts +10 -0
  83. package/src/engine-components/export/usdz/extensions/USDZText.ts +142 -0
  84. package/src/engine-components/export/usdz/extensions/behavior/Actions.ts +99 -0
  85. package/src/engine-components/export/usdz/extensions/behavior/Behaviour.ts +181 -0
  86. package/src/engine-components/export/usdz/extensions/behavior/BehaviourComponents.ts +503 -0
  87. package/src/engine-components/export/usdz/extensions/behavior/BehavioursBuilder.ts +459 -0
  88. package/src/engine-components/postprocessing/PostProcessingHandler.ts +1 -1
  89. package/src/engine-components/ui/BaseUIComponent.ts +7 -1
  90. package/src/engine-components/ui/Canvas.ts +80 -5
  91. package/src/engine-components/ui/Graphic.ts +2 -0
  92. package/src/engine-components/ui/Image.ts +3 -3
  93. package/src/engine-components/ui/Interfaces.ts +30 -6
  94. package/src/engine-components/ui/Layout.ts +303 -4
  95. package/src/engine-components/ui/RectTransform.ts +65 -40
  96. package/src/engine-components/utils/LookAt.ts +60 -7
  97. package/src/engine-components/webxr/WebXRImageTracking.ts +100 -27
  98. package/lib/engine-components/export/usdz/types.d.ts +0 -34
  99. package/lib/engine-components/export/usdz/types.js +0 -2
  100. package/lib/engine-components/export/usdz/types.js.map +0 -1
  101. package/src/engine-components/export/usdz/types.ts +0 -39
@@ -0,0 +1,421 @@
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 { Animator } from "../../../../Animator";
9
+ import { Renderer } from "../../../../Renderer";
10
+ import { serializable } from "../../../../../engine/engine_serialization_decorator";
11
+ import { getWorldPosition, getWorldQuaternion, getWorldScale, setWorldPosition, setWorldQuaternion, setWorldScale } from "../../../../../engine/engine_three_utils";
12
+ import { Object3D, Material, Vector3, Quaternion } from "three";
13
+ import { USDObject } from "../../ThreeUSDZExporter";
14
+ import { ActionBuilder, BehaviorModel, MotionType, Space, TriggerBuilder } from "./BehavioursBuilder";
15
+ export class ChangeTransformOnClick extends Behaviour {
16
+ object;
17
+ target;
18
+ duration = 1;
19
+ relativeMotion = false;
20
+ coroutine = null;
21
+ targetPos = new Vector3();
22
+ targetRot = new Quaternion();
23
+ targetScale = new Vector3();
24
+ *moveToTarget() {
25
+ if (!this.target || !this.object)
26
+ return;
27
+ const thisPos = getWorldPosition(this.object).clone();
28
+ const targetPos = getWorldPosition(this.target).clone();
29
+ const thisRot = getWorldQuaternion(this.object).clone();
30
+ const targetRot = getWorldQuaternion(this.target).clone();
31
+ const thisScale = getWorldScale(this.object).clone();
32
+ const targetScale = getWorldScale(this.target).clone();
33
+ const dist = thisPos.distanceTo(targetPos);
34
+ const rotDist = thisRot.angleTo(targetRot);
35
+ const scaleDist = thisScale.distanceTo(targetScale);
36
+ if (dist < 0.01 && rotDist < 0.01 && scaleDist < 0.01) {
37
+ setWorldPosition(this.object, targetPos);
38
+ setWorldQuaternion(this.object, targetRot);
39
+ setWorldScale(this.object, targetScale);
40
+ this.coroutine = null;
41
+ return;
42
+ }
43
+ let t01 = 0;
44
+ let eased = 0;
45
+ while (t01 < 1) {
46
+ t01 += this.context.time.deltaTime / this.duration;
47
+ if (t01 > 1)
48
+ t01 = 1;
49
+ // apply ease-in-out
50
+ // https://easings.net/
51
+ eased = t01 < 0.5 ? 4 * t01 * t01 * t01 : 1 - Math.pow(-2 * t01 + 2, 3) / 2;
52
+ this.targetPos.lerpVectors(thisPos, targetPos, eased);
53
+ this.targetRot.slerpQuaternions(thisRot, targetRot, eased);
54
+ this.targetScale.lerpVectors(thisScale, targetScale, eased);
55
+ setWorldPosition(this.object, this.targetPos);
56
+ setWorldQuaternion(this.object, this.targetRot);
57
+ setWorldScale(this.object, this.targetScale);
58
+ yield;
59
+ }
60
+ this.coroutine = null;
61
+ }
62
+ *moveRelative() {
63
+ if (!this.target || !this.object)
64
+ return;
65
+ const thisPos = this.object.position.clone();
66
+ const thisRot = this.object.quaternion.clone();
67
+ const thisScale = this.object.scale.clone();
68
+ const posOffset = this.target.position.clone();
69
+ const rotOffset = this.target.quaternion.clone();
70
+ const scaleOffset = this.target.scale.clone();
71
+ // convert into right space
72
+ posOffset.applyQuaternion(this.object.quaternion);
73
+ this.targetPos.copy(this.object.position).add(posOffset);
74
+ this.targetRot.copy(this.object.quaternion).multiply(rotOffset);
75
+ this.targetScale.copy(this.object.scale).multiply(scaleOffset);
76
+ let t01 = 0;
77
+ let eased = 0;
78
+ while (t01 < 1) {
79
+ t01 += this.context.time.deltaTime / this.duration;
80
+ if (t01 > 1)
81
+ t01 = 1;
82
+ // apply ease-in-out
83
+ // https://easings.net/
84
+ eased = t01 < 0.5 ? 4 * t01 * t01 * t01 : 1 - Math.pow(-2 * t01 + 2, 3) / 2;
85
+ this.object.position.lerpVectors(thisPos, this.targetPos, eased);
86
+ this.object.quaternion.slerpQuaternions(thisRot, this.targetRot, eased);
87
+ this.object.scale.lerpVectors(thisScale, this.targetScale, eased);
88
+ yield;
89
+ }
90
+ this.coroutine = null;
91
+ }
92
+ onPointerClick() {
93
+ if (this.coroutine)
94
+ this.stopCoroutine(this.coroutine);
95
+ if (!this.relativeMotion)
96
+ this.coroutine = this.startCoroutine(this.moveToTarget());
97
+ else
98
+ this.coroutine = this.startCoroutine(this.moveRelative());
99
+ }
100
+ beforeCreateDocument(ext) {
101
+ if (this.target && this.object && this.gameObject) {
102
+ const moveForward = new BehaviorModel("Move to " + this.target?.name, TriggerBuilder.tapTrigger(this.gameObject), ActionBuilder.transformAction(this.object, this.target, this.duration, this.relativeMotion ? Space.Relative : Space.Absolute));
103
+ ext.addBehavior(moveForward);
104
+ }
105
+ }
106
+ }
107
+ __decorate([
108
+ serializable(Object3D)
109
+ ], ChangeTransformOnClick.prototype, "object", void 0);
110
+ __decorate([
111
+ serializable(Object3D)
112
+ ], ChangeTransformOnClick.prototype, "target", void 0);
113
+ __decorate([
114
+ serializable()
115
+ ], ChangeTransformOnClick.prototype, "duration", void 0);
116
+ __decorate([
117
+ serializable()
118
+ ], ChangeTransformOnClick.prototype, "relativeMotion", void 0);
119
+ export class ChangeMaterialOnClick extends Behaviour {
120
+ materialToSwitch;
121
+ variantMaterial;
122
+ _objectsWithThisMaterial = [];
123
+ awake() {
124
+ if (this.variantMaterial && this.materialToSwitch) {
125
+ const renderer = GameObject.findObjectsOfType(Renderer);
126
+ for (const rend of renderer) {
127
+ if (rend.sharedMaterial === this.materialToSwitch) {
128
+ this._objectsWithThisMaterial.push(rend);
129
+ }
130
+ }
131
+ }
132
+ }
133
+ onPointerClick() {
134
+ if (!this.variantMaterial)
135
+ return;
136
+ for (const rend of this._objectsWithThisMaterial) {
137
+ rend.sharedMaterial = this.variantMaterial;
138
+ }
139
+ }
140
+ selfModel;
141
+ targetModels = [];
142
+ static _materialTriggersPerId = {};
143
+ createBehaviours(_ext, model, _context) {
144
+ const shouldExport = this._objectsWithThisMaterial.find(o => o.gameObject.uuid === model.uuid);
145
+ if (shouldExport) {
146
+ this.targetModels.push(model);
147
+ }
148
+ if (this.gameObject.uuid === model.uuid) {
149
+ this.selfModel = model;
150
+ if (this.materialToSwitch) {
151
+ if (!ChangeMaterialOnClick._materialTriggersPerId[this.materialToSwitch.uuid])
152
+ ChangeMaterialOnClick._materialTriggersPerId[this.materialToSwitch.uuid] = [];
153
+ ChangeMaterialOnClick._materialTriggersPerId[this.materialToSwitch.uuid].push(this);
154
+ }
155
+ }
156
+ }
157
+ afterCreateDocument(ext, _context) {
158
+ if (!this.materialToSwitch)
159
+ return;
160
+ const handlers = ChangeMaterialOnClick._materialTriggersPerId[this.materialToSwitch.uuid];
161
+ if (handlers) {
162
+ const variants = {};
163
+ for (const handler of handlers) {
164
+ const createdVariants = handler.createVariants();
165
+ if (createdVariants && createdVariants.length > 0)
166
+ variants[handler.selfModel.uuid] = createdVariants;
167
+ }
168
+ const otherVariants = [];
169
+ for (const handler of handlers) {
170
+ for (const key in variants) {
171
+ if (key !== handler.selfModel.uuid) {
172
+ otherVariants.push(variants[key]);
173
+ }
174
+ }
175
+ handler.createAndAttachBehaviors(ext, variants[handler.selfModel.uuid], otherVariants);
176
+ }
177
+ }
178
+ delete ChangeMaterialOnClick._materialTriggersPerId[this.materialToSwitch.uuid];
179
+ }
180
+ createAndAttachBehaviors(ext, myVariants, otherVariants) {
181
+ const start = [];
182
+ const select = [];
183
+ // the order here matters
184
+ for (const target of this.targetModels) {
185
+ const hideOriginal = ActionBuilder.fadeAction(target, 0, false);
186
+ select.push(hideOriginal);
187
+ }
188
+ for (const v of otherVariants) {
189
+ select.push(ActionBuilder.fadeAction(v, 0, false));
190
+ }
191
+ for (const v of myVariants) {
192
+ start.push(ActionBuilder.fadeAction(v, 0, false));
193
+ select.push(ActionBuilder.fadeAction(v, 0, true));
194
+ }
195
+ ext.addBehavior(new BehaviorModel("Select " + this.selfModel.name, TriggerBuilder.tapTrigger(this.selfModel), ActionBuilder.parallel(...select)));
196
+ ext.addBehavior(new BehaviorModel("Start hidden " + this.selfModel.name, TriggerBuilder.sceneStartTrigger(), ActionBuilder.parallel(...start)));
197
+ }
198
+ createVariants() {
199
+ if (!this.variantMaterial)
200
+ return null;
201
+ const variantModels = [];
202
+ for (const target of this.targetModels) {
203
+ const variant = target.clone();
204
+ variant.name += " variant_" + this.variantMaterial.name;
205
+ variant.name = variant.name.replace(/\s/g, "_");
206
+ variant.material = this.variantMaterial;
207
+ variant.geometry = target.geometry;
208
+ variant.matrix = target.matrix;
209
+ if (!target.parent || !target.parent.isEmpty()) {
210
+ USDObject.createEmptyParent(target);
211
+ }
212
+ if (target.parent)
213
+ target.parent.add(variant);
214
+ variantModels.push(variant);
215
+ }
216
+ return variantModels;
217
+ }
218
+ }
219
+ __decorate([
220
+ serializable(Material)
221
+ ], ChangeMaterialOnClick.prototype, "materialToSwitch", void 0);
222
+ __decorate([
223
+ serializable(Material)
224
+ ], ChangeMaterialOnClick.prototype, "variantMaterial", void 0);
225
+ export class SetActiveOnClick extends Behaviour {
226
+ target;
227
+ // TODO bring back, doesn't work yet
228
+ toggleOnClick = false;
229
+ targetState = true;
230
+ hideSelf = true;
231
+ onPointerClick() {
232
+ if (!this.toggleOnClick && this.hideSelf)
233
+ this.gameObject.visible = false;
234
+ if (this.target)
235
+ this.target.visible = this.toggleOnClick ? !this.target.visible : this.targetState;
236
+ }
237
+ selfModel;
238
+ otherModel;
239
+ toggleModel;
240
+ createBehaviours(_, model, _context) {
241
+ if (model.uuid === this.gameObject.uuid) {
242
+ this.selfModel = model;
243
+ }
244
+ }
245
+ stateBeforeCreatingDocument = false;
246
+ beforeCreateDocument() {
247
+ this.stateBeforeCreatingDocument = this.gameObject.visible;
248
+ this.gameObject.visible = true;
249
+ }
250
+ afterCreateDocument(ext, context) {
251
+ if (!this.target)
252
+ return;
253
+ this.otherModel = context.document.findById(this.target.uuid);
254
+ if (this.selfModel && this.otherModel) {
255
+ let hideClickedObject = this.hideSelf;
256
+ let targetState = this.targetState;
257
+ if (this.toggleOnClick) {
258
+ hideClickedObject = true;
259
+ targetState = !this.target.visible;
260
+ // TODO check where we have to create the clone; here it doesn't show up
261
+ this.toggleModel = this.selfModel.clone();
262
+ this.toggleModel.name += "_toggle";
263
+ if (this.selfModel.parent)
264
+ this.selfModel.parent.add(this.toggleModel);
265
+ }
266
+ const sequence = [];
267
+ if (hideClickedObject)
268
+ sequence.push(ActionBuilder.fadeAction(this.selfModel, 0, false));
269
+ if (this.toggleModel)
270
+ sequence.push(ActionBuilder.fadeAction(this.toggleModel, 0, true));
271
+ sequence.push(ActionBuilder.fadeAction(this.otherModel, 0, this.targetState));
272
+ ext.addBehavior(new BehaviorModel("Toggle_" + this.selfModel.name + "_hideSelf", TriggerBuilder.tapTrigger(this.selfModel), ActionBuilder.sequence(...sequence)));
273
+ // TODO this is relatively similar to the material variant switching logic, can we reuse that?
274
+ if (this.toggleOnClick && this.toggleModel) {
275
+ const toggleSequence = [];
276
+ toggleSequence.push(ActionBuilder.fadeAction(this.toggleModel, 0, false));
277
+ toggleSequence.push(ActionBuilder.fadeAction(this.selfModel, 0, true));
278
+ toggleSequence.push(ActionBuilder.fadeAction(this.otherModel, 0, !this.targetState));
279
+ ext.addBehavior(new BehaviorModel("Toggle_" + this.selfModel.name + "_toggleSelf", TriggerBuilder.tapTrigger(this.toggleModel), ActionBuilder.sequence(...toggleSequence)));
280
+ ext.addBehavior(new BehaviorModel("HideOnStart_" + this.gameObject.name, TriggerBuilder.sceneStartTrigger(), ActionBuilder.fadeAction(this.toggleModel, 0, false)));
281
+ }
282
+ }
283
+ this.gameObject.visible = this.stateBeforeCreatingDocument;
284
+ }
285
+ }
286
+ __decorate([
287
+ serializable(Object3D)
288
+ ], SetActiveOnClick.prototype, "target", void 0);
289
+ __decorate([
290
+ serializable()
291
+ ], SetActiveOnClick.prototype, "targetState", void 0);
292
+ __decorate([
293
+ serializable()
294
+ ], SetActiveOnClick.prototype, "hideSelf", void 0);
295
+ export class HideOnStart extends Behaviour {
296
+ start() {
297
+ this.gameObject.visible = false;
298
+ }
299
+ createBehaviours(ext, model, _context) {
300
+ if (model.uuid === this.gameObject.uuid)
301
+ ext.addBehavior(new BehaviorModel("HideOnStart_" + this.gameObject.name, TriggerBuilder.sceneStartTrigger(), ActionBuilder.fadeAction(model, 0, false)));
302
+ }
303
+ beforeCreateDocument() {
304
+ this.gameObject.visible = true;
305
+ }
306
+ afterCreateDocument() {
307
+ this.gameObject.visible = false;
308
+ }
309
+ }
310
+ export class EmphasizeOnClick extends Behaviour {
311
+ target;
312
+ duration = 0.5;
313
+ motionType = MotionType.bounce;
314
+ beforeCreateDocument() { }
315
+ createBehaviours(ext, model, _context) {
316
+ if (!this.target)
317
+ return;
318
+ if (model.uuid === this.gameObject.uuid) {
319
+ const emphasize = new BehaviorModel("emphasize " + this.name, TriggerBuilder.tapTrigger(this.gameObject), ActionBuilder.emphasize(this.target, this.duration, this.motionType, undefined, "basic"));
320
+ ext.addBehavior(emphasize);
321
+ }
322
+ }
323
+ afterCreateDocument(_ext, _context) { }
324
+ }
325
+ __decorate([
326
+ serializable()
327
+ ], EmphasizeOnClick.prototype, "target", void 0);
328
+ __decorate([
329
+ serializable()
330
+ ], EmphasizeOnClick.prototype, "duration", void 0);
331
+ __decorate([
332
+ serializable()
333
+ ], EmphasizeOnClick.prototype, "motionType", void 0);
334
+ export class PlayAnimationOnClick extends Behaviour {
335
+ target;
336
+ animator;
337
+ stateName;
338
+ onPointerClick() {
339
+ if (!this.target)
340
+ return;
341
+ if (this.stateName)
342
+ this.animator?.play(this.stateName, 0, 0, .1);
343
+ }
344
+ selfModel;
345
+ registeredAnimationModel;
346
+ registeredAnimation;
347
+ createBehaviours(_ext, model, _context) {
348
+ if (model.uuid === this.gameObject.uuid)
349
+ this.selfModel = model;
350
+ }
351
+ afterCreateDocument(ext, context) {
352
+ if (!this.registeredAnimation || !this.registeredAnimationModel)
353
+ return;
354
+ const document = context.document;
355
+ document.traverse(model => {
356
+ if (model.uuid === this.target?.uuid && this.registeredAnimation) {
357
+ const playAnimationOnTap = new BehaviorModel("tap " + this.name + " for " + this.stateName + " on " + this.target?.name, TriggerBuilder.tapTrigger(this.selfModel), ActionBuilder.startAnimationAction(model, this.registeredAnimation.start, this.registeredAnimation.duration));
358
+ ext.addBehavior(playAnimationOnTap);
359
+ }
360
+ });
361
+ }
362
+ createAnimation(ext, model, _context) {
363
+ if (this.target && this.animator) {
364
+ const state = this.animator?.runtimeAnimatorController?.findState(this.stateName);
365
+ this.registeredAnimationModel = model;
366
+ this.registeredAnimation = ext.registerAnimation(this.target, state?.motion.clip);
367
+ }
368
+ }
369
+ }
370
+ __decorate([
371
+ serializable(Object3D)
372
+ ], PlayAnimationOnClick.prototype, "target", void 0);
373
+ __decorate([
374
+ serializable(Animator)
375
+ ], PlayAnimationOnClick.prototype, "animator", void 0);
376
+ __decorate([
377
+ serializable()
378
+ ], PlayAnimationOnClick.prototype, "stateName", void 0);
379
+ export class PreliminaryAction extends Behaviour {
380
+ getType() { }
381
+ target;
382
+ getDuration() { }
383
+ ;
384
+ }
385
+ __decorate([
386
+ serializable(Object3D)
387
+ ], PreliminaryAction.prototype, "target", void 0);
388
+ export class PreliminaryTrigger extends Behaviour {
389
+ target;
390
+ }
391
+ __decorate([
392
+ serializable(PreliminaryAction)
393
+ ], PreliminaryTrigger.prototype, "target", void 0);
394
+ export class VisibilityAction extends PreliminaryAction {
395
+ //@type int
396
+ type = VisibilityActionType.Hide;
397
+ duration = 1;
398
+ getType() {
399
+ switch (this.type) {
400
+ case VisibilityActionType.Hide: return "hide";
401
+ case VisibilityActionType.Show: return "show";
402
+ }
403
+ }
404
+ getDuration() {
405
+ return this.duration;
406
+ }
407
+ }
408
+ __decorate([
409
+ serializable()
410
+ ], VisibilityAction.prototype, "type", void 0);
411
+ __decorate([
412
+ serializable()
413
+ ], VisibilityAction.prototype, "duration", void 0);
414
+ export class TapGestureTrigger extends PreliminaryTrigger {
415
+ }
416
+ export var VisibilityActionType;
417
+ (function (VisibilityActionType) {
418
+ VisibilityActionType[VisibilityActionType["Show"] = 0] = "Show";
419
+ VisibilityActionType[VisibilityActionType["Hide"] = 1] = "Hide";
420
+ })(VisibilityActionType || (VisibilityActionType = {}));
421
+ //# sourceMappingURL=BehaviourComponents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BehaviourComponents.js","sourceRoot":"","sources":["../../../../../../src/engine-components/export/usdz/extensions/behavior/BehaviourComponents.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,111 @@
1
+ import { Object3D } from "three";
2
+ import { USDDocument, USDObject, USDWriter } from "../../ThreeUSDZExporter";
3
+ import { BehaviorExtension } from "./Behaviour";
4
+ export interface IBehaviorElement {
5
+ id: string;
6
+ writeTo(document: USDDocument, writer: USDWriter): any;
7
+ }
8
+ export declare class BehaviorModel {
9
+ static global_id: number;
10
+ id: string;
11
+ trigger: IBehaviorElement | IBehaviorElement[];
12
+ action: IBehaviorElement;
13
+ exclusive: boolean;
14
+ makeExclusive(exclusive: boolean): BehaviorModel;
15
+ constructor(id: string, trigger: IBehaviorElement | IBehaviorElement[], action: IBehaviorElement);
16
+ writeTo(_ext: BehaviorExtension, document: USDDocument, writer: USDWriter): void;
17
+ }
18
+ type Target = USDObject | USDObject[] | Object3D | Object3D[];
19
+ export declare class TriggerModel implements IBehaviorElement {
20
+ static global_id: number;
21
+ id: string;
22
+ targetId?: string | Target;
23
+ tokenId?: string;
24
+ type?: string;
25
+ constructor(targetId?: string | Target, id?: string);
26
+ writeTo(document: USDDocument, writer: USDWriter): void;
27
+ }
28
+ export declare class TriggerBuilder {
29
+ static sceneStartTrigger(): TriggerModel;
30
+ static tapTrigger(targetObject: Target): TriggerModel;
31
+ static isTapTrigger(trigger?: TriggerModel): boolean;
32
+ }
33
+ export declare class GroupActionModel implements IBehaviorElement {
34
+ static global_id: number;
35
+ static getId(): number;
36
+ id: string;
37
+ actions: IBehaviorElement[];
38
+ loops: number;
39
+ performCount: number;
40
+ type: string;
41
+ constructor(id: string, actions: IBehaviorElement[]);
42
+ addAction(el: IBehaviorElement): GroupActionModel;
43
+ makeParallel(): GroupActionModel;
44
+ makeSequence(): GroupActionModel;
45
+ makeLooping(): this;
46
+ makeRepeat(count: number): this;
47
+ writeTo(document: USDDocument, writer: USDWriter): void;
48
+ }
49
+ export declare enum MotionType {
50
+ pop = 0,
51
+ blink = 1,
52
+ bounce = 2,
53
+ flip = 3,
54
+ float = 4,
55
+ jiggle = 5,
56
+ pulse = 6,
57
+ spin = 7
58
+ }
59
+ export declare enum Space {
60
+ Relative = "relative",
61
+ Absolute = "absolute"
62
+ }
63
+ export declare class ActionModel implements IBehaviorElement {
64
+ private static global_id;
65
+ id: string;
66
+ tokenId?: string;
67
+ affectedObjects?: string | Target;
68
+ easeType?: string;
69
+ motionType?: string;
70
+ duration?: number;
71
+ moveDistance?: number;
72
+ style?: string;
73
+ type?: string;
74
+ front?: Vec3;
75
+ up?: Vec3;
76
+ start?: number;
77
+ animationSpeed?: number;
78
+ reversed?: boolean;
79
+ pingPong?: boolean;
80
+ xFormTarget?: Target | string;
81
+ clone(): ActionModel;
82
+ constructor(affectedObjects?: string | Target, id?: string);
83
+ writeTo(document: USDDocument, writer: USDWriter): void;
84
+ }
85
+ declare class Vec3 {
86
+ x: number;
87
+ y: number;
88
+ z: number;
89
+ constructor(x: number, y: number, z: number);
90
+ static get up(): Vec3;
91
+ static get right(): Vec3;
92
+ static get forward(): Vec3;
93
+ static get back(): Vec3;
94
+ static get zero(): Vec3;
95
+ }
96
+ export declare class ActionBuilder {
97
+ static sequence(...params: IBehaviorElement[]): GroupActionModel;
98
+ static parallel(...params: IBehaviorElement[]): GroupActionModel;
99
+ static fadeAction(targetObject: Target, duration: number, show: boolean): ActionModel;
100
+ /**
101
+ * creates an action that plays an animation
102
+ * @param start offset in seconds!
103
+ * @param duration in seconds! 0 means play to end
104
+ */
105
+ static startAnimationAction(targetObject: Target, start: number, duration?: number, animationSpeed?: number, reversed?: boolean, pingPong?: boolean): IBehaviorElement;
106
+ static waitAction(duration: number): ActionModel;
107
+ static lookAtCameraAction(targets: Target, duration?: number, front?: Vec3, up?: Vec3): ActionModel;
108
+ static emphasize(targets: Target, duration: number, motionType?: MotionType, moveDistance?: number, style?: string): ActionModel;
109
+ static transformAction(targets: Target, transformTarget: Target, duration: number, transformType: Space, easeType?: string): ActionModel;
110
+ }
111
+ export { Vec3 as USDVec3 };