@needle-tools/engine 3.2.15-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 +23 -0
- package/dist/needle-engine.js +44005 -36382
- package/dist/needle-engine.min.js +706 -513
- package/dist/needle-engine.umd.cjs +685 -492
- package/lib/engine/codegen/register_types.js +54 -4
- package/lib/engine/codegen/register_types.js.map +1 -1
- package/lib/engine/engine_addressables.d.ts +3 -3
- package/lib/engine/engine_addressables.js +30 -9
- package/lib/engine/engine_addressables.js.map +1 -1
- package/lib/engine/engine_element.js +1 -1
- package/lib/engine/engine_element.js.map +1 -1
- package/lib/engine/engine_gameobject.d.ts +2 -1
- package/lib/engine/engine_gameobject.js +19 -0
- package/lib/engine/engine_gameobject.js.map +1 -1
- package/lib/engine/engine_input.js +10 -0
- package/lib/engine/engine_input.js.map +1 -1
- package/lib/engine/engine_math.d.ts +4 -0
- package/lib/engine/engine_math.js +6 -0
- package/lib/engine/engine_math.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/AnimatorController.js +7 -2
- package/lib/engine-components/AnimatorController.js.map +1 -1
- package/lib/engine-components/OrbitControls.js +13 -4
- package/lib/engine-components/OrbitControls.js.map +1 -1
- package/lib/engine-components/TransformGizmo.d.ts +8 -4
- package/lib/engine-components/TransformGizmo.js +62 -63
- package/lib/engine-components/TransformGizmo.js.map +1 -1
- package/lib/engine-components/codegen/components.d.ts +27 -2
- package/lib/engine-components/codegen/components.js +27 -2
- 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/Button.js +9 -5
- package/lib/engine-components/ui/Button.js.map +1 -1
- package/lib/engine-components/ui/Canvas.d.ts +23 -6
- package/lib/engine-components/ui/Canvas.js +167 -34
- package/lib/engine-components/ui/Canvas.js.map +1 -1
- package/lib/engine-components/ui/EventSystem.d.ts +6 -0
- package/lib/engine-components/ui/EventSystem.js +4 -4
- package/lib/engine-components/ui/EventSystem.js.map +1 -1
- package/lib/engine-components/ui/Graphic.d.ts +5 -2
- package/lib/engine-components/ui/Graphic.js +38 -7
- package/lib/engine-components/ui/Graphic.js.map +1 -1
- package/lib/engine-components/ui/Image.d.ts +1 -0
- package/lib/engine-components/ui/Image.js +14 -5
- package/lib/engine-components/ui/Image.js.map +1 -1
- package/lib/engine-components/ui/InputField.d.ts +1 -0
- package/lib/engine-components/ui/InputField.js +8 -0
- package/lib/engine-components/ui/InputField.js.map +1 -1
- package/lib/engine-components/ui/Interfaces.d.ts +19 -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/Outline.d.ts +7 -0
- package/lib/engine-components/ui/Outline.js +21 -0
- package/lib/engine-components/ui/Outline.js.map +1 -0
- package/lib/engine-components/ui/RectTransform.d.ts +32 -13
- package/lib/engine-components/ui/RectTransform.js +216 -56
- package/lib/engine-components/ui/RectTransform.js.map +1 -1
- package/lib/engine-components/ui/Text.d.ts +13 -10
- package/lib/engine-components/ui/Text.js +177 -246
- package/lib/engine-components/ui/Text.js.map +1 -1
- package/lib/engine-components/utils/LookAt.d.ts +13 -0
- package/lib/engine-components/utils/LookAt.js +66 -0
- package/lib/engine-components/utils/LookAt.js.map +1 -0
- package/lib/engine-components/webxr/WebXRImageTracking.d.ts +12 -3
- package/lib/engine-components/webxr/WebXRImageTracking.js +156 -24
- package/lib/engine-components/webxr/WebXRImageTracking.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/plugins/vite/reload.js +13 -2
- package/src/engine/codegen/register_types.js +56 -6
- package/src/engine/engine_addressables.ts +28 -10
- package/src/engine/engine_element.ts +1 -1
- package/src/engine/engine_gameobject.ts +19 -1
- package/src/engine/engine_input.ts +11 -0
- package/src/engine/engine_math.ts +10 -0
- package/src/engine/engine_three_utils.ts +2 -2
- package/src/engine-components/Animation.ts +4 -0
- package/src/engine-components/AnimatorController.ts +7 -1
- package/src/engine-components/OrbitControls.ts +14 -6
- package/src/engine-components/TransformGizmo.ts +64 -70
- package/src/engine-components/codegen/components.ts +27 -2
- 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/Button.ts +14 -9
- package/src/engine-components/ui/Canvas.ts +178 -39
- package/src/engine-components/ui/EventSystem.ts +16 -9
- package/src/engine-components/ui/Graphic.ts +46 -8
- package/src/engine-components/ui/Image.ts +13 -4
- package/src/engine-components/ui/InputField.ts +9 -1
- package/src/engine-components/ui/Interfaces.ts +39 -3
- package/src/engine-components/ui/Layout.ts +303 -4
- package/src/engine-components/ui/Outline.ts +13 -0
- package/src/engine-components/ui/RectTransform.ts +236 -68
- package/src/engine-components/ui/Text.ts +284 -265
- package/src/engine-components/utils/LookAt.ts +74 -0
- package/src/engine-components/webxr/WebXRImageTracking.ts +179 -31
- 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/lib/engine-components/ui/Keyboard.d.ts +0 -31
- package/lib/engine-components/ui/Keyboard.js +0 -178
- package/lib/engine-components/ui/Keyboard.js.map +0 -1
- package/src/engine-components/export/usdz/types.ts +0 -39
- package/src/engine-components/ui/Keyboard.ts +0 -204
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Behaviour } from "../Component";
|
|
2
|
+
import { Object3D } from "three";
|
|
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 {
|
|
6
|
+
target?: Object3D;
|
|
7
|
+
invertForward: boolean;
|
|
8
|
+
keepUpDirection: boolean;
|
|
9
|
+
copyTargetRotation: boolean;
|
|
10
|
+
private static flipYQuat;
|
|
11
|
+
onBeforeRender(): void;
|
|
12
|
+
createBehaviours(ext: any, model: USDObject, _context: any): void;
|
|
13
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
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 { serializable } from "../../engine/engine_serialization";
|
|
8
|
+
import { Behaviour } from "../Component";
|
|
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";
|
|
13
|
+
export class LookAt extends Behaviour {
|
|
14
|
+
target;
|
|
15
|
+
invertForward = false;
|
|
16
|
+
keepUpDirection = true;
|
|
17
|
+
copyTargetRotation = false;
|
|
18
|
+
static flipYQuat = new Quaternion().setFromAxisAngle(new Vector3(0, 1, 0), Math.PI);
|
|
19
|
+
onBeforeRender() {
|
|
20
|
+
let target = this.target;
|
|
21
|
+
if (!target)
|
|
22
|
+
target = this.context.mainCamera;
|
|
23
|
+
if (!target)
|
|
24
|
+
return;
|
|
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));
|
|
31
|
+
else
|
|
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
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
__decorate([
|
|
55
|
+
serializable(Object3D)
|
|
56
|
+
], LookAt.prototype, "target", void 0);
|
|
57
|
+
__decorate([
|
|
58
|
+
serializable()
|
|
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);
|
|
66
|
+
//# sourceMappingURL=LookAt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LookAt.js","sourceRoot":"","sources":["../../../src/engine-components/utils/LookAt.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,19 @@
|
|
|
1
|
-
/// <reference types="webxr" />
|
|
2
1
|
import { Behaviour } from "../Component";
|
|
3
2
|
import { Object3D, Quaternion, Vector3 } from "three";
|
|
3
|
+
import { AssetReference } from "../../engine/engine_addressables";
|
|
4
4
|
export declare class WebXRTrackedImage {
|
|
5
5
|
get url(): string;
|
|
6
6
|
get widthInMeters(): number;
|
|
7
7
|
get bitmap(): ImageBitmap;
|
|
8
|
+
get model(): WebXRImageTrackingModel;
|
|
8
9
|
readonly measuredSize: number;
|
|
9
10
|
readonly state: "tracked" | "emulated";
|
|
10
11
|
/** Copy the image position to a vector */
|
|
11
12
|
getPosition(vec: Vector3): Vector3;
|
|
12
13
|
/** Copy the image rotation to a quaternion */
|
|
13
14
|
getQuaternion(quat: Quaternion): Quaternion;
|
|
14
|
-
|
|
15
|
+
private static y180;
|
|
16
|
+
applyToObject(object: Object3D, t01?: number | undefined): void;
|
|
15
17
|
private static _positionBuffer;
|
|
16
18
|
private static _rotationBuffer;
|
|
17
19
|
private _position;
|
|
@@ -26,14 +28,21 @@ export declare class WebXRTrackedImage {
|
|
|
26
28
|
export declare class WebXRImageTrackingModel {
|
|
27
29
|
image?: string;
|
|
28
30
|
widthInMeters: number;
|
|
31
|
+
object?: AssetReference;
|
|
32
|
+
createObjectInstance: boolean;
|
|
33
|
+
imageDoesNotMove: boolean;
|
|
29
34
|
}
|
|
30
35
|
export declare class WebXRImageTracking extends Behaviour {
|
|
31
36
|
trackedImages: WebXRImageTrackingModel[];
|
|
32
37
|
private readonly trackedImageIndexMap;
|
|
33
38
|
private static _imageElements;
|
|
34
39
|
awake(): void;
|
|
40
|
+
private xr;
|
|
35
41
|
onEnable(): void;
|
|
36
42
|
onDisable(): void;
|
|
37
43
|
private onModifyAROptions;
|
|
38
|
-
|
|
44
|
+
private imageToObjectMap;
|
|
45
|
+
private onImageTrackingUpdate;
|
|
46
|
+
private onXRStarted;
|
|
47
|
+
private onXRUpdate;
|
|
39
48
|
}
|
|
@@ -4,29 +4,24 @@ 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
|
-
import { Behaviour } from "../Component";
|
|
9
|
+
import { Behaviour, GameObject } from "../Component";
|
|
10
10
|
import { Quaternion, Vector3 } from "three";
|
|
11
11
|
import { CircularBuffer, getParam } from "../../engine/engine_utils";
|
|
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";
|
|
12
16
|
// https://github.com/immersive-web/marker-tracking/blob/main/explainer.md
|
|
13
17
|
const debug = getParam("debugimagetracking");
|
|
14
|
-
const _scaleTemp = new Vector3();
|
|
15
18
|
export class WebXRTrackedImage {
|
|
16
19
|
get url() { return this._trackedImage.image ?? ""; }
|
|
17
20
|
get widthInMeters() { return this._trackedImage.widthInMeters ?? undefined; }
|
|
18
21
|
get bitmap() { return this._bitmap; }
|
|
22
|
+
get model() { return this._trackedImage; }
|
|
19
23
|
measuredSize;
|
|
20
24
|
state;
|
|
21
|
-
// private _matrix: Matrix4 | null = null;
|
|
22
|
-
// private get matrix(): Matrix4 {
|
|
23
|
-
// if (!this._matrix) {
|
|
24
|
-
// // this._matrix = WebXRTrackedImage._matrixBuffer.get();
|
|
25
|
-
// // const matrix = this._pose.transform.matrix;
|
|
26
|
-
// // this._matrix.fromArray(matrix);
|
|
27
|
-
// }
|
|
28
|
-
// return this._matrix!;
|
|
29
|
-
// }
|
|
30
25
|
/** Copy the image position to a vector */
|
|
31
26
|
getPosition(vec) {
|
|
32
27
|
this.ensureTransformData();
|
|
@@ -39,12 +34,22 @@ export class WebXRTrackedImage {
|
|
|
39
34
|
quat.copy(this._rotation);
|
|
40
35
|
return quat;
|
|
41
36
|
}
|
|
42
|
-
|
|
37
|
+
static y180 = new Quaternion().setFromAxisAngle(new Vector3(0, 1, 0), Math.PI);
|
|
38
|
+
applyToObject(object, t01 = undefined) {
|
|
43
39
|
this.ensureTransformData();
|
|
44
|
-
|
|
45
|
-
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);
|
|
46
52
|
}
|
|
47
|
-
// private static _matrixBuffer: CircularBuffer<Matrix4> = new CircularBuffer(() => new Matrix4(), 20);
|
|
48
53
|
static _positionBuffer = new CircularBuffer(() => new Vector3(), 20);
|
|
49
54
|
static _rotationBuffer = new CircularBuffer(() => new Quaternion(), 20);
|
|
50
55
|
_position;
|
|
@@ -54,12 +59,15 @@ export class WebXRTrackedImage {
|
|
|
54
59
|
this._position = WebXRTrackedImage._positionBuffer.get();
|
|
55
60
|
this._rotation = WebXRTrackedImage._rotationBuffer.get();
|
|
56
61
|
const t = this._pose.transform;
|
|
57
|
-
|
|
58
|
-
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);
|
|
59
68
|
}
|
|
60
69
|
}
|
|
61
70
|
_trackingComponent;
|
|
62
|
-
;
|
|
63
71
|
_trackedImage;
|
|
64
72
|
_bitmap;
|
|
65
73
|
_pose;
|
|
@@ -76,6 +84,9 @@ export class WebXRTrackedImage {
|
|
|
76
84
|
export class WebXRImageTrackingModel {
|
|
77
85
|
image;
|
|
78
86
|
widthInMeters;
|
|
87
|
+
object;
|
|
88
|
+
createObjectInstance = false;
|
|
89
|
+
imageDoesNotMove = false;
|
|
79
90
|
}
|
|
80
91
|
__decorate([
|
|
81
92
|
serializable(URL)
|
|
@@ -83,6 +94,35 @@ __decorate([
|
|
|
83
94
|
__decorate([
|
|
84
95
|
serializable()
|
|
85
96
|
], WebXRImageTrackingModel.prototype, "widthInMeters", void 0);
|
|
97
|
+
__decorate([
|
|
98
|
+
serializable(AssetReference)
|
|
99
|
+
], WebXRImageTrackingModel.prototype, "object", void 0);
|
|
100
|
+
__decorate([
|
|
101
|
+
serializable()
|
|
102
|
+
], WebXRImageTrackingModel.prototype, "createObjectInstance", void 0);
|
|
103
|
+
__decorate([
|
|
104
|
+
serializable()
|
|
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
|
+
}
|
|
86
126
|
export class WebXRImageTracking extends Behaviour {
|
|
87
127
|
trackedImages;
|
|
88
128
|
trackedImageIndexMap = new Map();
|
|
@@ -100,16 +140,36 @@ export class WebXRImageTracking extends Behaviour {
|
|
|
100
140
|
imageElement.addEventListener("load", async () => {
|
|
101
141
|
const img = await createImageBitmap(imageElement);
|
|
102
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
|
+
}
|
|
103
155
|
});
|
|
104
156
|
}
|
|
105
157
|
}
|
|
106
158
|
}
|
|
107
159
|
}
|
|
160
|
+
xr = null;
|
|
108
161
|
onEnable() {
|
|
109
|
-
|
|
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);
|
|
166
|
+
this.addEventListener("image-tracking", this.onImageTrackingUpdate);
|
|
110
167
|
}
|
|
111
168
|
onDisable() {
|
|
112
|
-
WebXR.removeEventListener(
|
|
169
|
+
WebXR.removeEventListener(WebXREvent.ModifyAROptions, this.onModifyAROptions);
|
|
170
|
+
WebXR.removeEventListener(WebXREvent.XRStarted, this.onXRStarted);
|
|
171
|
+
WebXR.removeEventListener(WebXREvent.XRUpdate, this.onXRUpdate);
|
|
172
|
+
this.removeEventListener("image-tracking", this.onImageTrackingUpdate);
|
|
113
173
|
}
|
|
114
174
|
onModifyAROptions = (event) => {
|
|
115
175
|
const options = event.detail;
|
|
@@ -131,9 +191,81 @@ export class WebXRImageTracking extends Behaviour {
|
|
|
131
191
|
}
|
|
132
192
|
}
|
|
133
193
|
};
|
|
134
|
-
|
|
194
|
+
imageToObjectMap = new Map();
|
|
195
|
+
onImageTrackingUpdate = (event) => {
|
|
196
|
+
const images = event.detail;
|
|
197
|
+
// disable any objects that are no longer tracked
|
|
198
|
+
for (const [model, object] of this.imageToObjectMap) {
|
|
199
|
+
if (!object.object || !model)
|
|
200
|
+
continue;
|
|
201
|
+
let found = false;
|
|
202
|
+
for (const trackedImage of images) {
|
|
203
|
+
if (trackedImage.model === model) {
|
|
204
|
+
found = true;
|
|
205
|
+
break;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
if (!found) {
|
|
209
|
+
GameObject.setActive(object.object, false);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
for (const image of images) {
|
|
213
|
+
const model = image.model;
|
|
214
|
+
// don't do anything if we don't have an object to track - can be handled externally through events
|
|
215
|
+
if (!model.object)
|
|
216
|
+
continue;
|
|
217
|
+
let trackedData = this.imageToObjectMap.get(model);
|
|
218
|
+
if (trackedData === undefined) {
|
|
219
|
+
trackedData = { object: null, frames: 0 };
|
|
220
|
+
this.imageToObjectMap.set(model, trackedData);
|
|
221
|
+
model.object.loadAssetAsync().then((asset) => {
|
|
222
|
+
if (model.createObjectInstance)
|
|
223
|
+
asset = GameObject.instantiate(asset);
|
|
224
|
+
if (asset) {
|
|
225
|
+
trackedData.object = asset;
|
|
226
|
+
// make sure to parent to the WebXR.rig
|
|
227
|
+
if (this.xr) {
|
|
228
|
+
this.xr.Rig.add(asset);
|
|
229
|
+
}
|
|
230
|
+
image.applyToObject(asset);
|
|
231
|
+
if (!asset.activeSelf)
|
|
232
|
+
GameObject.setActive(asset, true);
|
|
233
|
+
}
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
else {
|
|
237
|
+
trackedData.frames++;
|
|
238
|
+
// TODO we could do a bit more here: e.g. sample for the first 1s or so of getting pose data
|
|
239
|
+
// to improve the tracking quality a bit.
|
|
240
|
+
if (model.imageDoesNotMove && trackedData.frames > 10)
|
|
241
|
+
continue;
|
|
242
|
+
if (!trackedData.object)
|
|
243
|
+
continue;
|
|
244
|
+
if (this.xr) {
|
|
245
|
+
this.xr.Rig.add(trackedData.object);
|
|
246
|
+
}
|
|
247
|
+
image.applyToObject(trackedData.object);
|
|
248
|
+
if (!trackedData.object.activeSelf)
|
|
249
|
+
GameObject.setActive(trackedData.object, true);
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
};
|
|
253
|
+
onXRStarted = (_) => {
|
|
254
|
+
// clear out all frame counters for tracking
|
|
255
|
+
for (const trackedData of this.imageToObjectMap.values()) {
|
|
256
|
+
trackedData.frames = 0;
|
|
257
|
+
}
|
|
258
|
+
};
|
|
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
|
+
}
|
|
135
267
|
//@ts-ignore
|
|
136
|
-
if (frame
|
|
268
|
+
if (frame.session && typeof frame.getImageTrackingResults === "function") {
|
|
137
269
|
//@ts-ignore
|
|
138
270
|
const results = frame.getImageTrackingResults();
|
|
139
271
|
if (results.length) {
|
|
@@ -166,7 +298,7 @@ export class WebXRImageTracking extends Behaviour {
|
|
|
166
298
|
}
|
|
167
299
|
}
|
|
168
300
|
}
|
|
169
|
-
}
|
|
301
|
+
};
|
|
170
302
|
}
|
|
171
303
|
__decorate([
|
|
172
304
|
serializable(WebXRImageTrackingModel)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebXRImageTracking.js","sourceRoot":"","sources":["../../../src/engine-components/webxr/WebXRImageTracking.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WebXRImageTracking.js","sourceRoot":"","sources":["../../../src/engine-components/webxr/WebXRImageTracking.ts"],"names":[],"mappings":"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"}
|