@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.
- package/CHANGELOG.md +10 -0
- package/dist/needle-engine.js +26116 -24881
- package/dist/needle-engine.min.js +384 -383
- package/dist/needle-engine.umd.cjs +372 -371
- package/lib/engine/codegen/register_types.js +50 -2
- package/lib/engine/codegen/register_types.js.map +1 -1
- package/lib/engine/engine_gameobject.d.ts +1 -1
- package/lib/engine/engine_gameobject.js +4 -2
- package/lib/engine/engine_gameobject.js.map +1 -1
- package/lib/engine/engine_three_utils.js +2 -2
- package/lib/engine/engine_three_utils.js.map +1 -1
- package/lib/engine-components/Animation.js +4 -0
- package/lib/engine-components/Animation.js.map +1 -1
- package/lib/engine-components/codegen/components.d.ts +25 -1
- package/lib/engine-components/codegen/components.js +25 -1
- package/lib/engine-components/codegen/components.js.map +1 -1
- package/lib/engine-components/export/usdz/Extension.d.ts +4 -4
- package/lib/engine-components/export/usdz/ThreeUSDZExporter.d.ts +86 -0
- package/lib/engine-components/export/usdz/ThreeUSDZExporter.js +830 -0
- package/lib/engine-components/export/usdz/ThreeUSDZExporter.js.map +1 -0
- package/lib/engine-components/export/usdz/USDZExporter.d.ts +6 -3
- package/lib/engine-components/export/usdz/USDZExporter.js +34 -11
- package/lib/engine-components/export/usdz/USDZExporter.js.map +1 -1
- package/lib/engine-components/export/usdz/extensions/Animation.d.ts +15 -15
- package/lib/engine-components/export/usdz/extensions/Animation.js +24 -29
- package/lib/engine-components/export/usdz/extensions/Animation.js.map +1 -1
- package/lib/engine-components/export/usdz/extensions/DocumentExtension.d.ts +5 -0
- package/lib/engine-components/export/usdz/extensions/DocumentExtension.js +7 -0
- package/lib/engine-components/export/usdz/extensions/DocumentExtension.js.map +1 -0
- package/lib/engine-components/export/usdz/extensions/USDZText.d.ts +47 -0
- package/lib/engine-components/export/usdz/extensions/USDZText.js +114 -0
- package/lib/engine-components/export/usdz/extensions/USDZText.js.map +1 -0
- package/lib/engine-components/export/usdz/extensions/behavior/Actions.d.ts +30 -0
- package/lib/engine-components/export/usdz/extensions/behavior/Actions.js +89 -0
- package/lib/engine-components/export/usdz/extensions/behavior/Actions.js.map +1 -0
- package/lib/engine-components/export/usdz/extensions/behavior/Behaviour.d.ts +23 -0
- package/lib/engine-components/export/usdz/extensions/behavior/Behaviour.js +114 -0
- package/lib/engine-components/export/usdz/extensions/behavior/Behaviour.js.map +1 -0
- package/lib/engine-components/export/usdz/extensions/behavior/BehaviourComponents.d.ts +96 -0
- package/lib/engine-components/export/usdz/extensions/behavior/BehaviourComponents.js +421 -0
- package/lib/engine-components/export/usdz/extensions/behavior/BehaviourComponents.js.map +1 -0
- package/lib/engine-components/export/usdz/extensions/behavior/BehavioursBuilder.d.ts +111 -0
- package/lib/engine-components/export/usdz/extensions/behavior/BehavioursBuilder.js +409 -0
- package/lib/engine-components/export/usdz/extensions/behavior/BehavioursBuilder.js.map +1 -0
- package/lib/engine-components/postprocessing/PostProcessingHandler.js.map +1 -1
- package/lib/engine-components/ui/BaseUIComponent.d.ts +2 -0
- package/lib/engine-components/ui/BaseUIComponent.js +6 -0
- package/lib/engine-components/ui/BaseUIComponent.js.map +1 -1
- package/lib/engine-components/ui/Canvas.d.ts +11 -1
- package/lib/engine-components/ui/Canvas.js +72 -3
- package/lib/engine-components/ui/Canvas.js.map +1 -1
- package/lib/engine-components/ui/Graphic.js.map +1 -1
- package/lib/engine-components/ui/Image.js +4 -4
- package/lib/engine-components/ui/Image.js.map +1 -1
- package/lib/engine-components/ui/Interfaces.d.ts +11 -0
- package/lib/engine-components/ui/Interfaces.js +11 -0
- package/lib/engine-components/ui/Interfaces.js.map +1 -1
- package/lib/engine-components/ui/Layout.d.ts +65 -3
- package/lib/engine-components/ui/Layout.js +304 -3
- package/lib/engine-components/ui/Layout.js.map +1 -1
- package/lib/engine-components/ui/RectTransform.d.ts +8 -7
- package/lib/engine-components/ui/RectTransform.js +63 -35
- package/lib/engine-components/ui/RectTransform.js.map +1 -1
- package/lib/engine-components/utils/LookAt.d.ts +7 -1
- package/lib/engine-components/utils/LookAt.js +43 -6
- package/lib/engine-components/utils/LookAt.js.map +1 -1
- package/lib/engine-components/webxr/WebXRImageTracking.d.ts +4 -3
- package/lib/engine-components/webxr/WebXRImageTracking.js +81 -25
- package/lib/engine-components/webxr/WebXRImageTracking.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/plugins/vite/reload.js +13 -2
- package/src/engine/codegen/register_types.js +52 -4
- package/src/engine/engine_gameobject.ts +3 -2
- package/src/engine/engine_three_utils.ts +2 -2
- package/src/engine-components/Animation.ts +4 -0
- package/src/engine-components/codegen/components.ts +25 -1
- package/src/engine-components/export/usdz/Extension.ts +4 -5
- package/src/engine-components/export/usdz/ThreeUSDZExporter.ts +1280 -0
- package/src/engine-components/export/usdz/USDZExporter.ts +39 -17
- package/src/engine-components/export/usdz/extensions/Animation.ts +37 -45
- package/src/engine-components/export/usdz/extensions/DocumentExtension.ts +10 -0
- package/src/engine-components/export/usdz/extensions/USDZText.ts +142 -0
- package/src/engine-components/export/usdz/extensions/behavior/Actions.ts +99 -0
- package/src/engine-components/export/usdz/extensions/behavior/Behaviour.ts +181 -0
- package/src/engine-components/export/usdz/extensions/behavior/BehaviourComponents.ts +503 -0
- package/src/engine-components/export/usdz/extensions/behavior/BehavioursBuilder.ts +459 -0
- package/src/engine-components/postprocessing/PostProcessingHandler.ts +1 -1
- package/src/engine-components/ui/BaseUIComponent.ts +7 -1
- package/src/engine-components/ui/Canvas.ts +80 -5
- package/src/engine-components/ui/Graphic.ts +2 -0
- package/src/engine-components/ui/Image.ts +3 -3
- package/src/engine-components/ui/Interfaces.ts +30 -6
- package/src/engine-components/ui/Layout.ts +303 -4
- package/src/engine-components/ui/RectTransform.ts +65 -40
- package/src/engine-components/utils/LookAt.ts +60 -7
- package/src/engine-components/webxr/WebXRImageTracking.ts +100 -27
- package/lib/engine-components/export/usdz/types.d.ts +0 -34
- package/lib/engine-components/export/usdz/types.js +0 -2
- package/lib/engine-components/export/usdz/types.js.map +0 -1
- package/src/engine-components/export/usdz/types.ts +0 -39
|
@@ -6,18 +6,49 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
import { serializable } from "../../engine/engine_serialization";
|
|
8
8
|
import { Behaviour } from "../Component";
|
|
9
|
-
import { Object3D } from "three";
|
|
10
|
-
import { getWorldPosition,
|
|
9
|
+
import { Matrix4, Object3D, Quaternion, Vector3 } from "three";
|
|
10
|
+
import { getWorldPosition, getWorldQuaternion, setWorldQuaternion } from "../../engine/engine_three_utils";
|
|
11
|
+
import { USDObject } from "../../engine-components/export/usdz/ThreeUSDZExporter";
|
|
12
|
+
import { ActionBuilder, BehaviorModel, TriggerBuilder, USDVec3 } from "../../engine-components/export/usdz/extensions/behavior/BehavioursBuilder";
|
|
11
13
|
export class LookAt extends Behaviour {
|
|
12
14
|
target;
|
|
13
15
|
invertForward = false;
|
|
16
|
+
keepUpDirection = true;
|
|
17
|
+
copyTargetRotation = false;
|
|
18
|
+
static flipYQuat = new Quaternion().setFromAxisAngle(new Vector3(0, 1, 0), Math.PI);
|
|
14
19
|
onBeforeRender() {
|
|
15
|
-
|
|
20
|
+
let target = this.target;
|
|
21
|
+
if (!target)
|
|
22
|
+
target = this.context.mainCamera;
|
|
23
|
+
if (!target)
|
|
16
24
|
return;
|
|
17
|
-
|
|
18
|
-
|
|
25
|
+
const lookTarget = getWorldPosition(target);
|
|
26
|
+
const lookFrom = getWorldPosition(this.gameObject);
|
|
27
|
+
if (this.keepUpDirection)
|
|
28
|
+
lookTarget.y = lookFrom.y;
|
|
29
|
+
if (this.copyTargetRotation)
|
|
30
|
+
setWorldQuaternion(this.gameObject, getWorldQuaternion(target));
|
|
19
31
|
else
|
|
20
|
-
|
|
32
|
+
this.gameObject.lookAt(lookTarget);
|
|
33
|
+
if (this.invertForward)
|
|
34
|
+
this.gameObject.quaternion.multiply(LookAt.flipYQuat);
|
|
35
|
+
}
|
|
36
|
+
createBehaviours(ext, model, _context) {
|
|
37
|
+
if (model.uuid === this.gameObject.uuid) {
|
|
38
|
+
let alignmentTarget = model;
|
|
39
|
+
// not entirely sure why we need to do this - looks like LookAt with up vector doesn't work properly in
|
|
40
|
+
// QuickLook, so we need to introduce an empty parent and rotate the model by 90° around Y
|
|
41
|
+
if (this.keepUpDirection) {
|
|
42
|
+
const parent = USDObject.createEmptyParent(model);
|
|
43
|
+
alignmentTarget = parent;
|
|
44
|
+
// rotate by 90° - counter-rotation on the parent makes sure
|
|
45
|
+
// that without Preliminary Behaviours it still looks right
|
|
46
|
+
parent.matrix.multiply(new Matrix4().makeRotationZ(Math.PI / 2));
|
|
47
|
+
model.matrix.multiply(new Matrix4().makeRotationZ(-Math.PI / 2));
|
|
48
|
+
}
|
|
49
|
+
const lookAt = new BehaviorModel("lookat " + this.name, TriggerBuilder.sceneStartTrigger(), ActionBuilder.lookAtCameraAction(alignmentTarget, undefined, this.invertForward ? USDVec3.back : USDVec3.forward, this.keepUpDirection ? USDVec3.up : USDVec3.zero));
|
|
50
|
+
ext.addBehavior(lookAt);
|
|
51
|
+
}
|
|
21
52
|
}
|
|
22
53
|
}
|
|
23
54
|
__decorate([
|
|
@@ -26,4 +57,10 @@ __decorate([
|
|
|
26
57
|
__decorate([
|
|
27
58
|
serializable()
|
|
28
59
|
], LookAt.prototype, "invertForward", void 0);
|
|
60
|
+
__decorate([
|
|
61
|
+
serializable()
|
|
62
|
+
], LookAt.prototype, "keepUpDirection", void 0);
|
|
63
|
+
__decorate([
|
|
64
|
+
serializable()
|
|
65
|
+
], LookAt.prototype, "copyTargetRotation", void 0);
|
|
29
66
|
//# sourceMappingURL=LookAt.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LookAt.js","sourceRoot":"","sources":["../../../src/engine-components/utils/LookAt.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"LookAt.js","sourceRoot":"","sources":["../../../src/engine-components/utils/LookAt.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="webxr" />
|
|
2
1
|
import { Behaviour } from "../Component";
|
|
3
2
|
import { Object3D, Quaternion, Vector3 } from "three";
|
|
4
3
|
import { AssetReference } from "../../engine/engine_addressables";
|
|
@@ -13,7 +12,8 @@ export declare class WebXRTrackedImage {
|
|
|
13
12
|
getPosition(vec: Vector3): Vector3;
|
|
14
13
|
/** Copy the image rotation to a quaternion */
|
|
15
14
|
getQuaternion(quat: Quaternion): Quaternion;
|
|
16
|
-
|
|
15
|
+
private static y180;
|
|
16
|
+
applyToObject(object: Object3D, t01?: number | undefined): void;
|
|
17
17
|
private static _positionBuffer;
|
|
18
18
|
private static _rotationBuffer;
|
|
19
19
|
private _position;
|
|
@@ -37,11 +37,12 @@ export declare class WebXRImageTracking extends Behaviour {
|
|
|
37
37
|
private readonly trackedImageIndexMap;
|
|
38
38
|
private static _imageElements;
|
|
39
39
|
awake(): void;
|
|
40
|
+
private xr;
|
|
40
41
|
onEnable(): void;
|
|
41
42
|
onDisable(): void;
|
|
42
43
|
private onModifyAROptions;
|
|
43
44
|
private imageToObjectMap;
|
|
44
45
|
private onImageTrackingUpdate;
|
|
45
46
|
private onXRStarted;
|
|
46
|
-
|
|
47
|
+
private onXRUpdate;
|
|
47
48
|
}
|
|
@@ -4,12 +4,15 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
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
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
import { WebXR } from "./WebXR";
|
|
7
|
+
import { WebXR, WebXREvent } from "./WebXR";
|
|
8
8
|
import { serializable } from "../../engine/engine_serialization";
|
|
9
9
|
import { Behaviour, GameObject } from "../Component";
|
|
10
10
|
import { Quaternion, Vector3 } from "three";
|
|
11
11
|
import { CircularBuffer, getParam } from "../../engine/engine_utils";
|
|
12
12
|
import { AssetReference } from "../../engine/engine_addressables";
|
|
13
|
+
import { showBalloonWarning } from "../../engine/debug";
|
|
14
|
+
import { USDZExporter } from "../../engine-components/export/usdz/USDZExporter";
|
|
15
|
+
import { imageToCanvas } from "../../engine-components/export/usdz/ThreeUSDZExporter";
|
|
13
16
|
// https://github.com/immersive-web/marker-tracking/blob/main/explainer.md
|
|
14
17
|
const debug = getParam("debugimagetracking");
|
|
15
18
|
export class WebXRTrackedImage {
|
|
@@ -19,15 +22,6 @@ export class WebXRTrackedImage {
|
|
|
19
22
|
get model() { return this._trackedImage; }
|
|
20
23
|
measuredSize;
|
|
21
24
|
state;
|
|
22
|
-
// private _matrix: Matrix4 | null = null;
|
|
23
|
-
// private get matrix(): Matrix4 {
|
|
24
|
-
// if (!this._matrix) {
|
|
25
|
-
// // this._matrix = WebXRTrackedImage._matrixBuffer.get();
|
|
26
|
-
// // const matrix = this._pose.transform.matrix;
|
|
27
|
-
// // this._matrix.fromArray(matrix);
|
|
28
|
-
// }
|
|
29
|
-
// return this._matrix!;
|
|
30
|
-
// }
|
|
31
25
|
/** Copy the image position to a vector */
|
|
32
26
|
getPosition(vec) {
|
|
33
27
|
this.ensureTransformData();
|
|
@@ -40,12 +34,22 @@ export class WebXRTrackedImage {
|
|
|
40
34
|
quat.copy(this._rotation);
|
|
41
35
|
return quat;
|
|
42
36
|
}
|
|
43
|
-
|
|
37
|
+
static y180 = new Quaternion().setFromAxisAngle(new Vector3(0, 1, 0), Math.PI);
|
|
38
|
+
applyToObject(object, t01 = undefined) {
|
|
44
39
|
this.ensureTransformData();
|
|
45
|
-
|
|
46
|
-
object.quaternion.
|
|
40
|
+
// check if position/_position or rotation/_rotation changed more than just a little bit
|
|
41
|
+
const haveChanged = object.position.distanceToSquared(this._position) > 0.05 || object.quaternion.angleTo(this._rotation) > 0.05;
|
|
42
|
+
if (t01 === undefined || t01 >= 1 || haveChanged) {
|
|
43
|
+
object.position.copy(this._position);
|
|
44
|
+
object.quaternion.copy(this._rotation);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
t01 = Math.max(0, Math.min(1, t01));
|
|
48
|
+
object.position.lerp(this._position, t01);
|
|
49
|
+
object.quaternion.slerp(this._rotation, t01);
|
|
50
|
+
}
|
|
51
|
+
object.quaternion.multiply(WebXRTrackedImage.y180);
|
|
47
52
|
}
|
|
48
|
-
// private static _matrixBuffer: CircularBuffer<Matrix4> = new CircularBuffer(() => new Matrix4(), 20);
|
|
49
53
|
static _positionBuffer = new CircularBuffer(() => new Vector3(), 20);
|
|
50
54
|
static _rotationBuffer = new CircularBuffer(() => new Quaternion(), 20);
|
|
51
55
|
_position;
|
|
@@ -55,8 +59,12 @@ export class WebXRTrackedImage {
|
|
|
55
59
|
this._position = WebXRTrackedImage._positionBuffer.get();
|
|
56
60
|
this._rotation = WebXRTrackedImage._rotationBuffer.get();
|
|
57
61
|
const t = this._pose.transform;
|
|
58
|
-
|
|
59
|
-
this.
|
|
62
|
+
// when parented to the world, we need to flip data here
|
|
63
|
+
//this._position.set(-t.position.x, t.position.y, -t.position.z);
|
|
64
|
+
// this._rotation.set(-t.orientation.x, t.orientation.y, -t.orientation.z, t.orientation.w);
|
|
65
|
+
// for some reason when parented to the XRRig, we need the original data
|
|
66
|
+
this._position.set(t.position.x, t.position.y, t.position.z);
|
|
67
|
+
this._rotation.set(t.orientation.x, t.orientation.y, t.orientation.z, t.orientation.w);
|
|
60
68
|
}
|
|
61
69
|
}
|
|
62
70
|
_trackingComponent;
|
|
@@ -95,6 +103,26 @@ __decorate([
|
|
|
95
103
|
__decorate([
|
|
96
104
|
serializable()
|
|
97
105
|
], WebXRImageTrackingModel.prototype, "imageDoesNotMove", void 0);
|
|
106
|
+
class ImageTrackingExtension {
|
|
107
|
+
get extensionName() { return "image-tracking"; }
|
|
108
|
+
filename;
|
|
109
|
+
widthInMeters;
|
|
110
|
+
imageData;
|
|
111
|
+
constructor(filename, imageData, widthInMeters) {
|
|
112
|
+
this.filename = filename;
|
|
113
|
+
this.imageData = imageData;
|
|
114
|
+
this.widthInMeters = widthInMeters;
|
|
115
|
+
}
|
|
116
|
+
onAfterHierarchy(_context, writer) {
|
|
117
|
+
writer.beginBlock(`def Preliminary_ReferenceImage "AnchoringReferenceImage"`);
|
|
118
|
+
writer.appendLine(`uniform asset image = @tracker/` + this.filename + `@`);
|
|
119
|
+
writer.appendLine(`uniform double physicalWidth = ` + (this.widthInMeters * 100).toFixed(8));
|
|
120
|
+
writer.closeBlock();
|
|
121
|
+
}
|
|
122
|
+
onAfterSerialize(context) {
|
|
123
|
+
context.files['tracker/' + this.filename] = this.imageData;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
98
126
|
export class WebXRImageTracking extends Behaviour {
|
|
99
127
|
trackedImages;
|
|
100
128
|
trackedImageIndexMap = new Map();
|
|
@@ -112,19 +140,35 @@ export class WebXRImageTracking extends Behaviour {
|
|
|
112
140
|
imageElement.addEventListener("load", async () => {
|
|
113
141
|
const img = await createImageBitmap(imageElement);
|
|
114
142
|
WebXRImageTracking._imageElements.set(url, img);
|
|
143
|
+
// read back Uint8Array to use in USDZ -
|
|
144
|
+
// TODO better would be to do that once we actually need it
|
|
145
|
+
const canvas = await imageToCanvas(img);
|
|
146
|
+
if (canvas) {
|
|
147
|
+
const blob = await new Promise(resolve => canvas.toBlob(resolve, 'image/png', 1));
|
|
148
|
+
const arrayBuffer = await blob.arrayBuffer();
|
|
149
|
+
const exporter = GameObject.findObjectOfType(USDZExporter);
|
|
150
|
+
if (exporter) {
|
|
151
|
+
exporter.extensions.push(new ImageTrackingExtension("marker.png", new Uint8Array(arrayBuffer), this.trackedImages[0].widthInMeters));
|
|
152
|
+
exporter.anchoringType = "image";
|
|
153
|
+
}
|
|
154
|
+
}
|
|
115
155
|
});
|
|
116
156
|
}
|
|
117
157
|
}
|
|
118
158
|
}
|
|
119
159
|
}
|
|
160
|
+
xr = null;
|
|
120
161
|
onEnable() {
|
|
121
|
-
|
|
122
|
-
WebXR.addEventListener(
|
|
162
|
+
this.xr = GameObject.findObjectOfType(WebXR);
|
|
163
|
+
WebXR.addEventListener(WebXREvent.ModifyAROptions, this.onModifyAROptions);
|
|
164
|
+
WebXR.addEventListener(WebXREvent.XRStarted, this.onXRStarted);
|
|
165
|
+
WebXR.addEventListener(WebXREvent.XRUpdate, this.onXRUpdate);
|
|
123
166
|
this.addEventListener("image-tracking", this.onImageTrackingUpdate);
|
|
124
167
|
}
|
|
125
168
|
onDisable() {
|
|
126
|
-
WebXR.removeEventListener(
|
|
127
|
-
WebXR.removeEventListener(
|
|
169
|
+
WebXR.removeEventListener(WebXREvent.ModifyAROptions, this.onModifyAROptions);
|
|
170
|
+
WebXR.removeEventListener(WebXREvent.XRStarted, this.onXRStarted);
|
|
171
|
+
WebXR.removeEventListener(WebXREvent.XRUpdate, this.onXRUpdate);
|
|
128
172
|
this.removeEventListener("image-tracking", this.onImageTrackingUpdate);
|
|
129
173
|
}
|
|
130
174
|
onModifyAROptions = (event) => {
|
|
@@ -179,8 +223,10 @@ export class WebXRImageTracking extends Behaviour {
|
|
|
179
223
|
asset = GameObject.instantiate(asset);
|
|
180
224
|
if (asset) {
|
|
181
225
|
trackedData.object = asset;
|
|
182
|
-
|
|
183
|
-
|
|
226
|
+
// make sure to parent to the WebXR.rig
|
|
227
|
+
if (this.xr) {
|
|
228
|
+
this.xr.Rig.add(asset);
|
|
229
|
+
}
|
|
184
230
|
image.applyToObject(asset);
|
|
185
231
|
if (!asset.activeSelf)
|
|
186
232
|
GameObject.setActive(asset, true);
|
|
@@ -195,6 +241,9 @@ export class WebXRImageTracking extends Behaviour {
|
|
|
195
241
|
continue;
|
|
196
242
|
if (!trackedData.object)
|
|
197
243
|
continue;
|
|
244
|
+
if (this.xr) {
|
|
245
|
+
this.xr.Rig.add(trackedData.object);
|
|
246
|
+
}
|
|
198
247
|
image.applyToObject(trackedData.object);
|
|
199
248
|
if (!trackedData.object.activeSelf)
|
|
200
249
|
GameObject.setActive(trackedData.object, true);
|
|
@@ -207,9 +256,16 @@ export class WebXRImageTracking extends Behaviour {
|
|
|
207
256
|
trackedData.frames = 0;
|
|
208
257
|
}
|
|
209
258
|
};
|
|
210
|
-
|
|
259
|
+
onXRUpdate = (evt) => {
|
|
260
|
+
const frame = evt.frame;
|
|
261
|
+
if (!frame)
|
|
262
|
+
return;
|
|
263
|
+
if (frame.session && !("getImageTrackingResults" in frame)) {
|
|
264
|
+
showBalloonWarning("Image tracking is currently not supported on this device. On Chrome for Android, you can enable the <a href=\"chrome://flags/#webxr-incubations\">chrome://flags/#webxr-incubations</a> flag.");
|
|
265
|
+
return;
|
|
266
|
+
}
|
|
211
267
|
//@ts-ignore
|
|
212
|
-
if (frame
|
|
268
|
+
if (frame.session && typeof frame.getImageTrackingResults === "function") {
|
|
213
269
|
//@ts-ignore
|
|
214
270
|
const results = frame.getImageTrackingResults();
|
|
215
271
|
if (results.length) {
|
|
@@ -242,7 +298,7 @@ export class WebXRImageTracking extends Behaviour {
|
|
|
242
298
|
}
|
|
243
299
|
}
|
|
244
300
|
}
|
|
245
|
-
}
|
|
301
|
+
};
|
|
246
302
|
}
|
|
247
303
|
__decorate([
|
|
248
304
|
serializable(WebXRImageTrackingModel)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebXRImageTracking.js","sourceRoot":"","sources":["../../../src/engine-components/webxr/WebXRImageTracking.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAY,UAAU,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAElE,0EAA0E;AAE1E,MAAM,KAAK,GAAG,QAAQ,CAAC,oBAAoB,CAAC,CAAC;AAE7C,MAAM,OAAO,iBAAiB;IAE1B,IAAI,GAAG,KAAa,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;IAC5D,IAAI,aAAa,KAAK,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,IAAI,SAAS,CAAC,CAAC,CAAC;IAC7E,IAAI,MAAM,KAAkB,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAClD,IAAI,KAAK,KAA8B,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IAC1D,YAAY,CAAS;IACrB,KAAK,CAAyB;IAEvC,0CAA0C;IAC1C,kCAAkC;IAClC,2BAA2B;IAC3B,mEAAmE;IACnE,yDAAyD;IACzD,6CAA6C;IAC7C,QAAQ;IACR,4BAA4B;IAC5B,IAAI;IAEJ,0CAA0C;IAC1C,WAAW,CAAC,GAAY;QACpB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzB,OAAO,GAAG,CAAC;IACf,CAAC;IAED,8CAA8C;IAC9C,aAAa,CAAC,IAAgB;QAC1B,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,aAAa,CAAC,MAAgB;QAC1B,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;IAED,uGAAuG;IAC/F,MAAM,CAAC,eAAe,GAA4B,IAAI,cAAc,CAAC,GAAG,EAAE,CAAC,IAAI,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9F,MAAM,CAAC,eAAe,GAA+B,IAAI,cAAc,CAAC,GAAG,EAAE,CAAC,IAAI,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;IACpG,SAAS,CAAW;IACpB,SAAS,CAAc;IACvB,mBAAmB;QACvB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACjB,IAAI,CAAC,SAAS,GAAG,iBAAiB,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC;YACzD,IAAI,CAAC,SAAS,GAAG,iBAAiB,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC;YACzD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;YAC/B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC/D,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;SAC5F;IACL,CAAC;IAEgB,kBAAkB,CAAqB;IACvC,aAAa,CAA0B;IACvC,OAAO,CAAc;IACrB,KAAK,CAAM;IAE5B,YAAY,OAA2B,EAAE,YAAqC,EAAE,MAAmB,EAAE,YAAoB,EAAE,KAA6B,EAAE,IAAS;QAC/J,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC;QAAA,CAAC;QACnC,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACtB,CAAC;;AAML,MAAM,OAAO,uBAAuB;IAGhC,KAAK,CAAU;IAGf,aAAa,CAAU;IAGvB,MAAM,CAAkB;IAGxB,oBAAoB,GAAY,KAAK,CAAC;IAGtC,gBAAgB,GAAY,KAAK,CAAC;CACrC;AAbG;IADC,YAAY,CAAC,GAAG,CAAC;sDACH;AAGf;IADC,YAAY,EAAE;8DACQ;AAGvB;IADC,YAAY,CAAC,cAAc,CAAC;uDACL;AAGxB;IADC,YAAY,EAAE;qEACuB;AAGtC;IADC,YAAY,EAAE;iEACmB;AAGtC,MAAM,OAAO,kBAAmB,SAAQ,SAAS;IAG7C,aAAa,CAA6B;IAEzB,oBAAoB,GAAyC,IAAI,GAAG,EAAE,CAAC;IAEhF,MAAM,CAAC,cAAc,GAAoC,IAAI,GAAG,EAAE,CAAC;IAE3E,KAAK;QACD,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,aAAa,EAAE;YAC3C,IAAI,YAAY,CAAC,KAAK,EAAE;gBACpB,IAAI,kBAAkB,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;iBAC9D;qBACI;oBACD,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC;oBAC/B,kBAAkB,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oBACjD,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAqB,CAAC;oBACvE,YAAY,CAAC,GAAG,GAAG,GAAG,CAAC;oBACvB,YAAY,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE;wBAC7C,MAAM,GAAG,GAAG,MAAM,iBAAiB,CAAC,YAAY,CAAC,CAAC;wBAClD,kBAAkB,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;oBACpD,CAAC,CAAC,CAAC;iBACN;aACJ;SACJ;IACL,CAAC;IAED,QAAQ;QACJ,KAAK,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACpE,KAAK,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACtD,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAA;IACvE,CAAC;IAED,SAAS;QACL,KAAK,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACvE,KAAK,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACzD,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAA;IAC1E,CAAC;IAEO,iBAAiB,GAAG,CAAC,KAAU,EAAE,EAAE;QACvC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC;QAC7B,MAAM,QAAQ,GAAG,OAAO,CAAC,gBAAgB,IAAI,EAAE,CAAC;QAChD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YACpC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACpC,OAAO,CAAC,gBAAgB,GAAG,QAAQ,CAAC;QAEpC,OAAO,CAAC,aAAa,GAAG,EAAE,CAAC;QAC3B,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,aAAa,EAAE;YAC3C,IAAI,YAAY,CAAC,KAAK,EAAE,MAAM,IAAI,YAAY,CAAC,aAAa,GAAG,CAAC,EAAE;gBAC9D,MAAM,MAAM,GAAG,kBAAkB,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBACzE,IAAI,MAAM,EAAE;oBACR,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;oBAC1E,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC;wBACvB,KAAK,EAAE,MAAM;wBACb,aAAa,EAAE,YAAY,CAAC,aAAa;qBAC5C,CAAC,CAAC;iBACN;aACJ;SACJ;IACL,CAAC,CAAA;IAEO,gBAAgB,GAAgF,IAAI,GAAG,EAAE,CAAC;IAE1G,qBAAqB,GAAG,CAAC,KAAU,EAAE,EAAE;QAC3C,MAAM,MAAM,GAAG,KAAK,CAAC,MAA6B,CAAC;QAEnD,iDAAiD;QACjD,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACjD,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,KAAK;gBAAE,SAAS;YACvC,IAAI,KAAK,GAAG,KAAK,CAAC;YAClB,KAAK,MAAM,YAAY,IAAI,MAAM,EAAE;gBAC/B,IAAI,YAAY,CAAC,KAAK,KAAK,KAAK,EAAE;oBAC9B,KAAK,GAAG,IAAI,CAAC;oBACb,MAAM;iBACT;aACJ;YACD,IAAI,CAAC,KAAK,EAAE;gBACR,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;aAC9C;SACJ;QAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YACxB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;YAC1B,mGAAmG;YACnG,IAAI,CAAC,KAAK,CAAC,MAAM;gBAAE,SAAS;YAE5B,IAAI,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACnD,IAAI,WAAW,KAAK,SAAS,EAAE;gBAC3B,WAAW,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;gBAC1C,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;gBAE9C,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC,KAAwB,EAAE,EAAE;oBAC5D,IAAI,KAAK,CAAC,oBAAoB;wBAC1B,KAAK,GAAG,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;oBAE1C,IAAI,KAAK,EAAE;wBACP,WAAY,CAAC,MAAM,GAAG,KAAK,CAAC;wBAC5B,IAAI,KAAK,KAAK,IAAI,CAAC,UAAU;4BACzB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBAC/B,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;wBAC3B,IAAI,CAAC,KAAK,CAAC,UAAU;4BACjB,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;qBACzC;gBACL,CAAC,CAAC,CAAC;aACN;iBACI;gBACD,WAAW,CAAC,MAAM,EAAE,CAAC;gBAErB,4FAA4F;gBAC5F,yCAAyC;gBACzC,IAAI,KAAK,CAAC,gBAAgB,IAAI,WAAW,CAAC,MAAM,GAAG,EAAE;oBACjD,SAAS;gBAEb,IAAI,CAAC,WAAW,CAAC,MAAM;oBAAE,SAAS;gBAElC,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBACxC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU;oBAC9B,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;aACtD;SACJ;IACL,CAAC,CAAA;IAEO,WAAW,GAAG,CAAC,CAAM,EAAE,EAAE;QAC7B,4CAA4C;QAC5C,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,EAAE;YACtD,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;SAC1B;IACL,CAAC,CAAC;IAEF,cAAc,CAAC,KAAqB;QAChC,YAAY;QACZ,IAAI,KAAK,EAAE,OAAO,IAAI,OAAO,KAAK,CAAC,uBAAuB,KAAK,UAAU,EAAE;YACvE,YAAY;YACZ,MAAM,OAAO,GAAG,KAAK,CAAC,uBAAuB,EAAE,CAAC;YAChD,IAAI,OAAO,CAAC,MAAM,EAAE;gBAChB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC;gBAC3D,IAAI,KAAK,EAAE;oBACP,MAAM,MAAM,GAAwB,EAAE,CAAC;oBACvC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;wBAC1B,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC;wBAChC,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;wBAC/D,IAAI,YAAY,EAAE;4BACd,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;4BACrD,MAAM,KAAK,GAAG,MAAM,CAAC,aAAa,CAAC;4BACnC,MAAM,SAAS,GAAG,IAAI,iBAAiB,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;4BAC5G,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;yBAC1B;6BACI;4BACD,IAAI,KAAK,EAAE;gCACP,OAAO,CAAC,IAAI,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;6BAC1D;yBACJ;qBACJ;oBACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;wBACnB,IAAI;4BACA,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,gBAAgB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;yBAC7E;wBACD,OAAO,CAAC,EAAE;4BACN,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;yBACpB;qBACJ;iBACJ;aACJ;SACJ;IACL,CAAC;;AAlKD;IADC,YAAY,CAAC,uBAAuB,CAAC;yDACI"}
|
|
1
|
+
{"version":3,"file":"WebXRImageTracking.js","sourceRoot":"","sources":["../../../src/engine-components/webxr/WebXRImageTracking.ts"],"names":[],"mappings":"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"}
|