@needle-tools/engine 3.36.5-beta → 3.36.6-beta
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 +4 -0
- package/dist/needle-engine.js +3070 -3056
- package/dist/needle-engine.light.js +2380 -2366
- package/dist/needle-engine.light.min.js +328 -328
- package/dist/needle-engine.light.umd.cjs +346 -346
- package/dist/needle-engine.min.js +327 -327
- package/dist/needle-engine.umd.cjs +345 -345
- package/lib/engine/api.d.ts +1 -0
- package/lib/engine/api.js +1 -0
- package/lib/engine/api.js.map +1 -1
- package/lib/engine/engine_camera.d.ts +3 -1
- package/lib/engine/engine_camera.js +3 -1
- package/lib/engine/engine_camera.js.map +1 -1
- package/lib/engine-components/webxr/WebARSessionRoot.d.ts +3 -0
- package/lib/engine-components/webxr/WebARSessionRoot.js +45 -6
- package/lib/engine-components/webxr/WebARSessionRoot.js.map +1 -1
- package/package.json +1 -1
- package/src/engine/api.ts +2 -1
- package/src/engine/engine_camera.ts +3 -2
- package/src/engine-components/webxr/WebARSessionRoot.ts +58 -9
package/lib/engine/api.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export * from "./debug/index.js";
|
|
|
2
2
|
export * from "./engine_addressables.js";
|
|
3
3
|
export * from "./engine_application.js";
|
|
4
4
|
export * from "./engine_assetdatabase.js";
|
|
5
|
+
export { getCameraController, setAutoFitEnabled, setCameraController, useForAutoFit } from "./engine_camera.js";
|
|
5
6
|
export * from "./engine_components.js";
|
|
6
7
|
export * from "./engine_components_internal.js";
|
|
7
8
|
export * from "./engine_components_internal.js";
|
package/lib/engine/api.js
CHANGED
|
@@ -2,6 +2,7 @@ export * from "./debug/index.js";
|
|
|
2
2
|
export * from "./engine_addressables.js";
|
|
3
3
|
export * from "./engine_application.js";
|
|
4
4
|
export * from "./engine_assetdatabase.js";
|
|
5
|
+
export { getCameraController, setAutoFitEnabled, setCameraController, useForAutoFit } from "./engine_camera.js";
|
|
5
6
|
export * from "./engine_components.js";
|
|
6
7
|
export * from "./engine_components_internal.js";
|
|
7
8
|
export * from "./engine_components_internal.js";
|
package/lib/engine/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/engine/api.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAA;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,oBAAoB,
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/engine/api.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAC,iBAAiB,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAC9G,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAA;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC3F,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAE1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC9D,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAA;AACtC,cAAc,aAAa,CAAA"}
|
|
@@ -7,5 +7,7 @@ export declare function getCameraController(cam: Camera): ICameraController | nu
|
|
|
7
7
|
export declare function setCameraController(cam: Camera, cameraController: ICameraController, active: boolean): void;
|
|
8
8
|
/** @internal */
|
|
9
9
|
export declare function useForAutoFit(obj: Object3D): boolean;
|
|
10
|
-
/**
|
|
10
|
+
/**
|
|
11
|
+
* Enable or disable autofitting for the given object
|
|
12
|
+
*/
|
|
11
13
|
export declare function setAutoFitEnabled(obj: Object3D, enabled: boolean): void;
|
|
@@ -22,7 +22,9 @@ export function useForAutoFit(obj) {
|
|
|
22
22
|
// otherwise if anything is set except false we assume it should be included
|
|
23
23
|
return obj[autofit] !== false;
|
|
24
24
|
}
|
|
25
|
-
/**
|
|
25
|
+
/**
|
|
26
|
+
* Enable or disable autofitting for the given object
|
|
27
|
+
*/
|
|
26
28
|
export function setAutoFitEnabled(obj, enabled) {
|
|
27
29
|
obj[autofit] = enabled;
|
|
28
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine_camera.js","sourceRoot":"","sources":["../../src/engine/engine_camera.ts"],"names":[],"mappings":"AAKA,MAAM,iBAAiB,GAAG,yBAAyB,CAAC;AAEpD;GACG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAW;IAC3C,OAAO,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAClC,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,mBAAmB,CAAC,GAAW,EAAE,gBAAmC,EAAE,MAAe;IACjG,IAAI,MAAM;QACN,GAAG,CAAC,iBAAiB,CAAC,GAAG,gBAAgB,CAAC;SACzC;QACD,IAAI,GAAG,CAAC,iBAAiB,CAAC,KAAK,gBAAgB;YAC3C,GAAG,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;KACrC;AACL,CAAC;AAGD,MAAM,OAAO,GAAG,gBAAgB,CAAC;AAEjC,gBAAgB;AAChB,MAAM,UAAU,aAAa,CAAC,GAAa;IACvC,yDAAyD;IACzD,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5C,4EAA4E;IAC5E,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,CAAC;AAClC,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"engine_camera.js","sourceRoot":"","sources":["../../src/engine/engine_camera.ts"],"names":[],"mappings":"AAKA,MAAM,iBAAiB,GAAG,yBAAyB,CAAC;AAEpD;GACG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAW;IAC3C,OAAO,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAClC,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,mBAAmB,CAAC,GAAW,EAAE,gBAAmC,EAAE,MAAe;IACjG,IAAI,MAAM;QACN,GAAG,CAAC,iBAAiB,CAAC,GAAG,gBAAgB,CAAC;SACzC;QACD,IAAI,GAAG,CAAC,iBAAiB,CAAC,KAAK,gBAAgB;YAC3C,GAAG,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;KACrC;AACL,CAAC;AAGD,MAAM,OAAO,GAAG,gBAAgB,CAAC;AAEjC,gBAAgB;AAChB,MAAM,UAAU,aAAa,CAAC,GAAa;IACvC,yDAAyD;IACzD,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5C,4EAA4E;IAC5E,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAa,EAAE,OAAgB;IAC7D,GAAG,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AAC3B,CAAC"}
|
|
@@ -52,6 +52,9 @@ export declare class WebARSessionRoot extends Behaviour {
|
|
|
52
52
|
private onScaleChanged;
|
|
53
53
|
private onRevertSceneChanges;
|
|
54
54
|
private onCreateAnchor;
|
|
55
|
+
private upVec;
|
|
56
|
+
private lookPoint;
|
|
57
|
+
private worldUpVec;
|
|
55
58
|
private applyViewBasedTransform;
|
|
56
59
|
private onApplyPose;
|
|
57
60
|
}
|
|
@@ -160,6 +160,7 @@ export class WebARSessionRoot extends Behaviour {
|
|
|
160
160
|
}
|
|
161
161
|
}
|
|
162
162
|
else {
|
|
163
|
+
// Update anchors, if any
|
|
163
164
|
if (this._anchor && args.xr.referenceSpace) {
|
|
164
165
|
const pose = args.xr.frame.getPose(this._anchor.anchorSpace, args.xr.referenceSpace);
|
|
165
166
|
if (pose && this.context.time.frame % 20 === 0) {
|
|
@@ -173,7 +174,7 @@ export class WebARSessionRoot extends Behaviour {
|
|
|
173
174
|
}
|
|
174
175
|
}
|
|
175
176
|
}
|
|
176
|
-
//
|
|
177
|
+
// Scene has been placed
|
|
177
178
|
if (this.arTouchTransform) {
|
|
178
179
|
if (!this.userInput)
|
|
179
180
|
this.userInput = new WebXRSessionRootUserInput(this.context);
|
|
@@ -220,8 +221,18 @@ export class WebARSessionRoot extends Behaviour {
|
|
|
220
221
|
reticle.matrixAutoUpdate = false;
|
|
221
222
|
reticle.visible = false;
|
|
222
223
|
}
|
|
223
|
-
reticle.position.
|
|
224
|
-
reticle.quaternion.
|
|
224
|
+
reticle["lastPos"] = reticle["lastPos"] || hit.position.clone();
|
|
225
|
+
reticle["lastQuat"] = reticle["lastQuat"] || hit.quaternion.clone();
|
|
226
|
+
// reticle["targetPos"] = reticle["targetPos"] || hit.position.clone();
|
|
227
|
+
// reticle["targetQuat"] = reticle["targetQuat"] || hit.quaternion.clone();
|
|
228
|
+
// TODO we likely want the reticle itself to be placed _exactly_ and then the visuals being lerped,
|
|
229
|
+
// Right now this leads to a "rotation glitch" when going from a horizontal to a vertical surface
|
|
230
|
+
reticle.position.copy(reticle["lastPos"].lerp(hit.position, this.context.time.deltaTime / .1));
|
|
231
|
+
reticle["lastPos"].copy(reticle.position);
|
|
232
|
+
reticle.quaternion.copy(reticle["lastQuat"].slerp(hit.quaternion, this.context.time.deltaTime / .05));
|
|
233
|
+
reticle["lastQuat"].copy(reticle.quaternion);
|
|
234
|
+
// TODO make sure original reticle asset scale is respected, or document it should be uniformly scaled
|
|
235
|
+
// scale *= this.customReticle?.asset?.scale?.x || 1;
|
|
225
236
|
reticle.scale.set(scale, scale, scale);
|
|
226
237
|
// if (this.invertForward) {
|
|
227
238
|
// reticle.rotateY(Math.PI);
|
|
@@ -271,6 +282,9 @@ export class WebARSessionRoot extends Behaviour {
|
|
|
271
282
|
this._isPlacing = false;
|
|
272
283
|
this.context.input.removeEventListener("pointerup", this.onPlaceScene);
|
|
273
284
|
this.onRevertSceneChanges();
|
|
285
|
+
// TODO: we should probably use the non-lerped position and quaternion here
|
|
286
|
+
reticle.position.copy(reticle["lastPos"]);
|
|
287
|
+
reticle.quaternion.copy(reticle["lastQuat"]);
|
|
274
288
|
this.onApplyPose(reticle);
|
|
275
289
|
if (this.useXRAnchor) {
|
|
276
290
|
this.onCreateAnchor(NeedleXRSession.active, hit);
|
|
@@ -311,6 +325,9 @@ export class WebARSessionRoot extends Behaviour {
|
|
|
311
325
|
}
|
|
312
326
|
}
|
|
313
327
|
}
|
|
328
|
+
upVec = new Vector3(0, 1, 0);
|
|
329
|
+
lookPoint = new Vector3();
|
|
330
|
+
worldUpVec = new Vector3(0, 1, 0);
|
|
314
331
|
applyViewBasedTransform(reticle) {
|
|
315
332
|
// Make reticle face the user to unify the placement experience across devices.
|
|
316
333
|
// The pose that we're receiving from the hit test varies between devices:
|
|
@@ -321,9 +338,31 @@ export class WebARSessionRoot extends Behaviour {
|
|
|
321
338
|
const reticleGo = reticle;
|
|
322
339
|
const camWP = camGo.worldPosition;
|
|
323
340
|
const reticleWp = reticleGo.worldPosition;
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
341
|
+
this.upVec.set(0, 1, 0).applyQuaternion(reticle.quaternion);
|
|
342
|
+
// upVec may be pointing AWAY from us, we have to flip it if that's the case
|
|
343
|
+
const camPos = camGo.worldPosition;
|
|
344
|
+
if (camPos) {
|
|
345
|
+
const camToReticle = reticle.position.clone().sub(camPos);
|
|
346
|
+
const angle = camToReticle.angleTo(this.upVec);
|
|
347
|
+
if (angle < Math.PI / 2) {
|
|
348
|
+
this.upVec.negate();
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
const upAngle = this.upVec.angleTo(this.worldUpVec) * 180 / Math.PI;
|
|
352
|
+
// For debugging look angle for AR placement
|
|
353
|
+
// Gizmos.DrawDirection(reticle.position, upVec, "blue", 0.1);
|
|
354
|
+
// Gizmos.DrawLabel(reticle.position, upAngle.toFixed(2), 0.1);
|
|
355
|
+
const angleForWallPlacement = 30;
|
|
356
|
+
if ((upAngle > angleForWallPlacement && upAngle < 180 - angleForWallPlacement) ||
|
|
357
|
+
(upAngle < -angleForWallPlacement && upAngle > -180 + angleForWallPlacement)) {
|
|
358
|
+
this.lookPoint.copy(reticle.position).add(this.upVec);
|
|
359
|
+
this.lookPoint.y = reticle.position.y;
|
|
360
|
+
reticle.lookAt(this.lookPoint);
|
|
361
|
+
}
|
|
362
|
+
else {
|
|
363
|
+
camWP.y = reticleWp.y;
|
|
364
|
+
reticle.lookAt(camWP);
|
|
365
|
+
}
|
|
327
366
|
// TODO: ability to scale the reticle so that we can fit the scene depending on the view angle or distance to the reticle.
|
|
328
367
|
// Currently, doing this leads to wrong placement of the scene.
|
|
329
368
|
/*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebARSessionRoot.js","sourceRoot":"","sources":["../../../src/engine-components/webxr/WebARSessionRoot.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WebARSessionRoot.js","sourceRoot":"","sources":["../../../src/engine-components/webxr/WebARSessionRoot.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@needle-tools/engine",
|
|
3
|
-
"version": "3.36.
|
|
3
|
+
"version": "3.36.6-beta",
|
|
4
4
|
"description": "Needle Engine is a web-based runtime for 3D apps. It runs on your machine for development with great integrations into editors like Unity or Blender - and can be deployed onto any device! It is flexible, extensible and networking and XR are built-in",
|
|
5
5
|
"main": "dist/needle-engine.umd.cjs",
|
|
6
6
|
"type": "module",
|
package/src/engine/api.ts
CHANGED
|
@@ -3,6 +3,7 @@ export * from "./debug/index.js";
|
|
|
3
3
|
export * from "./engine_addressables.js";
|
|
4
4
|
export * from "./engine_application.js";
|
|
5
5
|
export * from "./engine_assetdatabase.js";
|
|
6
|
+
export { getCameraController,setAutoFitEnabled, setCameraController, useForAutoFit } from "./engine_camera.js"
|
|
6
7
|
export * from "./engine_components.js";
|
|
7
8
|
export * from "./engine_components_internal.js";
|
|
8
9
|
export * from "./engine_components_internal.js";
|
|
@@ -20,7 +21,7 @@ export * from "./engine_gltf.js";
|
|
|
20
21
|
export * from "./engine_hot_reload.js";
|
|
21
22
|
export * from "./engine_input.js";
|
|
22
23
|
export { InstancingUtil } from "./engine_instancing.js";
|
|
23
|
-
export { hasCommercialLicense,hasIndieLicense, hasProLicense } from "./engine_license.js";
|
|
24
|
+
export { hasCommercialLicense, hasIndieLicense, hasProLicense } from "./engine_license.js";
|
|
24
25
|
export * from "./engine_lifecycle_api.js";
|
|
25
26
|
export * from "./engine_math.js";
|
|
26
27
|
export * from "./engine_networking.js";
|
|
@@ -32,8 +32,9 @@ export function useForAutoFit(obj: Object3D): boolean {
|
|
|
32
32
|
return obj[autofit] !== false;
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
/**
|
|
35
|
+
/**
|
|
36
|
+
* Enable or disable autofitting for the given object
|
|
37
|
+
*/
|
|
36
38
|
export function setAutoFitEnabled(obj: Object3D, enabled: boolean): void {
|
|
37
39
|
obj[autofit] = enabled;
|
|
38
|
-
|
|
39
40
|
}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import { AxesHelper, DoubleSide, Matrix4, Mesh, MeshBasicMaterial, Object3D, Plane,
|
|
1
|
+
import { AxesHelper, DoubleSide, Matrix4, Mesh, MeshBasicMaterial, Object3D, Plane, Raycaster, RingGeometry, Scene, Vector3 } from "three";
|
|
2
2
|
|
|
3
3
|
import { isDevEnvironment, showBalloonWarning } from "../../engine/debug/index.js";
|
|
4
4
|
import { AssetReference } from "../../engine/engine_addressables.js";
|
|
5
5
|
import { Context } from "../../engine/engine_context.js";
|
|
6
|
-
import { ObjectUtils, PrimitiveType } from "../../engine/engine_create_objects.js";
|
|
7
6
|
import { destroy, instantiate } from "../../engine/engine_gameobject.js";
|
|
8
7
|
import { InputEventQueue, NEPointerEvent } from "../../engine/engine_input.js";
|
|
9
8
|
import { serializable } from "../../engine/engine_serialization_decorator.js";
|
|
10
9
|
import type { IComponent, IGameObject } from "../../engine/engine_types.js";
|
|
11
|
-
import { getParam, isAndroidDevice
|
|
10
|
+
import { getParam, isAndroidDevice } from "../../engine/engine_utils.js";
|
|
12
11
|
import { NeedleXRController, type NeedleXREventArgs, type NeedleXRHitTestResult, NeedleXRSession } from "../../engine/engine_xr.js";
|
|
13
12
|
import { Behaviour, GameObject } from "../Component.js";
|
|
14
13
|
|
|
@@ -190,6 +189,7 @@ export class WebARSessionRoot extends Behaviour {
|
|
|
190
189
|
|
|
191
190
|
}
|
|
192
191
|
else {
|
|
192
|
+
// Update anchors, if any
|
|
193
193
|
if (this._anchor && args.xr.referenceSpace) {
|
|
194
194
|
const pose = args.xr.frame.getPose(this._anchor.anchorSpace, args.xr.referenceSpace);
|
|
195
195
|
if (pose && this.context.time.frame % 20 === 0) {
|
|
@@ -204,7 +204,7 @@ export class WebARSessionRoot extends Behaviour {
|
|
|
204
204
|
}
|
|
205
205
|
}
|
|
206
206
|
|
|
207
|
-
//
|
|
207
|
+
// Scene has been placed
|
|
208
208
|
if (this.arTouchTransform) {
|
|
209
209
|
if (!this.userInput) this.userInput = new WebXRSessionRootUserInput(this.context);
|
|
210
210
|
this.userInput?.enable();
|
|
@@ -255,9 +255,22 @@ export class WebARSessionRoot extends Behaviour {
|
|
|
255
255
|
reticle.visible = false;
|
|
256
256
|
}
|
|
257
257
|
|
|
258
|
-
reticle.position.
|
|
259
|
-
reticle.quaternion.
|
|
258
|
+
reticle["lastPos"] = reticle["lastPos"] || hit.position.clone();
|
|
259
|
+
reticle["lastQuat"] = reticle["lastQuat"] || hit.quaternion.clone();
|
|
260
|
+
// reticle["targetPos"] = reticle["targetPos"] || hit.position.clone();
|
|
261
|
+
// reticle["targetQuat"] = reticle["targetQuat"] || hit.quaternion.clone();
|
|
262
|
+
|
|
263
|
+
// TODO we likely want the reticle itself to be placed _exactly_ and then the visuals being lerped,
|
|
264
|
+
// Right now this leads to a "rotation glitch" when going from a horizontal to a vertical surface
|
|
265
|
+
reticle.position.copy(reticle["lastPos"].lerp(hit.position, this.context.time.deltaTime / .1));
|
|
266
|
+
reticle["lastPos"].copy(reticle.position);
|
|
267
|
+
reticle.quaternion.copy(reticle["lastQuat"].slerp(hit.quaternion, this.context.time.deltaTime / .05));
|
|
268
|
+
reticle["lastQuat"].copy(reticle.quaternion);
|
|
269
|
+
|
|
270
|
+
// TODO make sure original reticle asset scale is respected, or document it should be uniformly scaled
|
|
271
|
+
// scale *= this.customReticle?.asset?.scale?.x || 1;
|
|
260
272
|
reticle.scale.set(scale, scale, scale);
|
|
273
|
+
|
|
261
274
|
// if (this.invertForward) {
|
|
262
275
|
// reticle.rotateY(Math.PI);
|
|
263
276
|
// }
|
|
@@ -317,6 +330,10 @@ export class WebARSessionRoot extends Behaviour {
|
|
|
317
330
|
|
|
318
331
|
this.onRevertSceneChanges();
|
|
319
332
|
|
|
333
|
+
// TODO: we should probably use the non-lerped position and quaternion here
|
|
334
|
+
reticle.position.copy(reticle["lastPos"]);
|
|
335
|
+
reticle.quaternion.copy(reticle["lastQuat"]);
|
|
336
|
+
|
|
320
337
|
this.onApplyPose(reticle);
|
|
321
338
|
|
|
322
339
|
if (this.useXRAnchor) {
|
|
@@ -362,7 +379,12 @@ export class WebARSessionRoot extends Behaviour {
|
|
|
362
379
|
}
|
|
363
380
|
}
|
|
364
381
|
|
|
382
|
+
private upVec: Vector3 = new Vector3(0, 1, 0);
|
|
383
|
+
private lookPoint: Vector3 = new Vector3();
|
|
384
|
+
private worldUpVec: Vector3 = new Vector3(0, 1, 0);
|
|
385
|
+
|
|
365
386
|
private applyViewBasedTransform(reticle: Object3D) {
|
|
387
|
+
|
|
366
388
|
// Make reticle face the user to unify the placement experience across devices.
|
|
367
389
|
// The pose that we're receiving from the hit test varies between devices:
|
|
368
390
|
// - Quest: currently aligned to the mesh that was hit (depends on room setup), has changed a couple times
|
|
@@ -372,9 +394,36 @@ export class WebARSessionRoot extends Behaviour {
|
|
|
372
394
|
const reticleGo = reticle as GameObject;
|
|
373
395
|
const camWP = camGo.worldPosition;
|
|
374
396
|
const reticleWp = reticleGo.worldPosition;
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
397
|
+
|
|
398
|
+
this.upVec.set(0,1,0).applyQuaternion(reticle.quaternion);
|
|
399
|
+
|
|
400
|
+
// upVec may be pointing AWAY from us, we have to flip it if that's the case
|
|
401
|
+
const camPos = camGo.worldPosition;
|
|
402
|
+
if (camPos) {
|
|
403
|
+
const camToReticle = reticle.position.clone().sub(camPos);
|
|
404
|
+
const angle = camToReticle.angleTo(this.upVec);
|
|
405
|
+
if (angle < Math.PI / 2) {
|
|
406
|
+
this.upVec.negate();
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
const upAngle = this.upVec.angleTo(this.worldUpVec) * 180 / Math.PI;
|
|
411
|
+
// For debugging look angle for AR placement
|
|
412
|
+
// Gizmos.DrawDirection(reticle.position, upVec, "blue", 0.1);
|
|
413
|
+
// Gizmos.DrawLabel(reticle.position, upAngle.toFixed(2), 0.1);
|
|
414
|
+
|
|
415
|
+
const angleForWallPlacement = 30;
|
|
416
|
+
if ((upAngle > angleForWallPlacement && upAngle < 180 - angleForWallPlacement) ||
|
|
417
|
+
(upAngle < -angleForWallPlacement && upAngle > -180 + angleForWallPlacement)) {
|
|
418
|
+
|
|
419
|
+
this.lookPoint.copy(reticle.position).add(this.upVec);
|
|
420
|
+
this.lookPoint.y = reticle.position.y;
|
|
421
|
+
reticle.lookAt(this.lookPoint);
|
|
422
|
+
}
|
|
423
|
+
else {
|
|
424
|
+
camWP.y = reticleWp.y;
|
|
425
|
+
reticle.lookAt(camWP);
|
|
426
|
+
}
|
|
378
427
|
|
|
379
428
|
// TODO: ability to scale the reticle so that we can fit the scene depending on the view angle or distance to the reticle.
|
|
380
429
|
// Currently, doing this leads to wrong placement of the scene.
|