@needle-tools/engine 2.29.0-pre → 2.30.0-pre
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 +9 -0
- package/dist/needle-engine.d.ts +44 -8
- package/dist/needle-engine.js +347 -343
- package/dist/needle-engine.js.map +4 -4
- package/dist/needle-engine.min.js +20 -16
- package/dist/needle-engine.min.js.map +4 -4
- package/lib/engine/engine.d.ts +1 -0
- package/lib/engine/engine_serialization.d.ts +1 -0
- package/lib/engine/engine_serialization.js +1 -0
- package/lib/engine/engine_serialization.js.map +1 -1
- package/lib/engine/engine_setup.d.ts +5 -0
- package/lib/engine/engine_setup.js +6 -0
- package/lib/engine/engine_setup.js.map +1 -1
- package/lib/engine/engine_utils.d.ts +1 -1
- package/lib/engine/engine_utils.js +25 -8
- package/lib/engine/engine_utils.js.map +1 -1
- package/lib/engine/extensions/NEEDLE_deferred_texture.d.ts +1 -1
- package/lib/engine/extensions/NEEDLE_deferred_texture.js +26 -14
- package/lib/engine/extensions/NEEDLE_deferred_texture.js.map +1 -1
- package/lib/engine/extensions/extension_utils.js +24 -13
- package/lib/engine/extensions/extension_utils.js.map +1 -1
- package/lib/engine/extensions/extensions.js +3 -1
- package/lib/engine/extensions/extensions.js.map +1 -1
- package/lib/engine-components/Camera.js +7 -0
- package/lib/engine-components/Camera.js.map +1 -1
- package/lib/engine-components/OrbitControls.js +2 -1
- package/lib/engine-components/OrbitControls.js.map +1 -1
- package/lib/engine-components/Renderer.d.ts +1 -0
- package/lib/engine-components/Renderer.js +10 -3
- package/lib/engine-components/Renderer.js.map +1 -1
- package/lib/engine-components/ScreenCapture.d.ts +1 -0
- package/lib/engine-components/ScreenCapture.js +265 -1
- package/lib/engine-components/ScreenCapture.js.map +1 -1
- package/lib/engine-components/SpectatorCamera.js +29 -5
- package/lib/engine-components/SpectatorCamera.js.map +1 -1
- package/lib/engine-components/SyncedRoom.js +2 -0
- package/lib/engine-components/SyncedRoom.js.map +1 -1
- package/lib/engine-components/VideoPlayer.d.ts +10 -1
- package/lib/engine-components/VideoPlayer.js +64 -15
- package/lib/engine-components/VideoPlayer.js.map +1 -1
- package/lib/engine-components/Volume.d.ts +4 -0
- package/lib/engine-components/Volume.js +44 -3
- package/lib/engine-components/Volume.js.map +1 -1
- package/lib/engine-components/WebARSessionRoot.d.ts +9 -2
- package/lib/engine-components/WebARSessionRoot.js +69 -24
- package/lib/engine-components/WebARSessionRoot.js.map +1 -1
- package/lib/engine-components/WebXR.d.ts +6 -3
- package/lib/engine-components/WebXR.js +42 -7
- package/lib/engine-components/WebXR.js.map +1 -1
- package/lib/engine-components/WebXRAvatar.js +4 -0
- package/lib/engine-components/WebXRAvatar.js.map +1 -1
- package/lib/engine-components/WebXRController.js +13 -7
- package/lib/engine-components/WebXRController.js.map +1 -1
- package/lib/engine-components/ui/CanvasGroup.d.ts +1 -0
- package/lib/engine-components/ui/CanvasGroup.js +1 -0
- package/lib/engine-components/ui/CanvasGroup.js.map +1 -1
- package/lib/engine-components/ui/EventSystem.js +13 -4
- package/lib/engine-components/ui/EventSystem.js.map +1 -1
- package/lib/engine-components/ui/Graphic.d.ts +1 -0
- package/lib/engine-components/ui/Graphic.js +2 -0
- package/lib/engine-components/ui/Graphic.js.map +1 -1
- package/lib/engine-components/ui/Interfaces.d.ts +2 -0
- package/package.json +2 -2
- package/src/engine/engine_serialization.ts +3 -1
- package/src/engine/engine_setup.ts +6 -0
- package/src/engine/engine_utils.ts +34 -8
- package/src/engine/extensions/NEEDLE_deferred_texture.ts +25 -19
- package/src/engine/extensions/extension_utils.ts +24 -12
- package/src/engine/extensions/extensions.ts +3 -2
- package/src/engine-components/Camera.ts +9 -1
- package/src/engine-components/OrbitControls.ts +2 -1
- package/src/engine-components/Renderer.ts +11 -3
- package/src/engine-components/ScreenCapture.ts +312 -2
- package/src/engine-components/SpectatorCamera.ts +28 -5
- package/src/engine-components/SyncedRoom.ts +1 -0
- package/src/engine-components/VideoPlayer.ts +97 -21
- package/src/engine-components/Volume.ts +47 -4
- package/src/engine-components/WebARSessionRoot.ts +78 -28
- package/src/engine-components/WebXR.ts +50 -15
- package/src/engine-components/WebXRAvatar.ts +5 -0
- package/src/engine-components/WebXRController.ts +20 -14
- package/src/engine-components/ui/CanvasGroup.ts +2 -0
- package/src/engine-components/ui/EventSystem.ts +21 -15
- package/src/engine-components/ui/Graphic.ts +3 -0
- package/src/engine-components/ui/Interfaces.ts +2 -0
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,15 @@ All notable changes to this package will be documented in this file.
|
|
|
4
4
|
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
|
|
5
5
|
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
|
6
6
|
|
|
7
|
+
## [2.30.0-pre] - 2022-10-12
|
|
8
|
+
- Add: Quest 2 passthrough support
|
|
9
|
+
- Add: UI Graphic components now support ``raycastTarget`` again
|
|
10
|
+
- Add: VideoPlayer now supports ``materialTarget`` option which allows for assigning any renderer in the scene that should be used as a video canvas
|
|
11
|
+
- Changed: updated three-mesh-ui dependency version
|
|
12
|
+
- Changed: updated needle-gltfTransform extensions package, fixing an issue with passthrough of texture json pointers
|
|
13
|
+
- Changed: selecting SpectatorCam now requires click (instead of just listening to pointer up event)
|
|
14
|
+
- Fix: Avatars using instanced materials should now update transforms correctly again
|
|
15
|
+
|
|
7
16
|
## [2.29.0-pre] - 2022-10-10
|
|
8
17
|
- Add: Context.removeCamera method
|
|
9
18
|
- Add: SpectatorCam allows to follow other users across devices by clicking on respective avatar (e.g. clicking SyncedCam avatar or WebXR avatar, ESC or long press to stop spectating)
|
package/dist/needle-engine.d.ts
CHANGED
|
@@ -57,7 +57,7 @@ declare module "engine/engine_utils" {
|
|
|
57
57
|
type deepClonePredicate = (owner: any, propertyName: string, current: any) => boolean;
|
|
58
58
|
export function deepClone(obj: any, predicate?: deepClonePredicate): any;
|
|
59
59
|
export function delay(milliseconds: number): Promise<void>;
|
|
60
|
-
export function getPath(
|
|
60
|
+
export function getPath(source: SourceIdentifier | undefined, uri: string): string;
|
|
61
61
|
export type WriteCallback = (data: any) => void;
|
|
62
62
|
export class Watch {
|
|
63
63
|
subscribeWrite(callback: WriteCallback): void;
|
|
@@ -960,7 +960,7 @@ declare module "engine/extensions/NEEDLE_deferred_texture" {
|
|
|
960
960
|
import { Context } from "engine/engine_setup";
|
|
961
961
|
export const EXTENSION_NAME = "NEEDLE_deferred_texture";
|
|
962
962
|
export class NEEDLE_deferred_texture implements GLTFLoaderPlugin {
|
|
963
|
-
static assignTextureLOD(context: Context, material: Material, level?: number): void;
|
|
963
|
+
static assignTextureLOD(context: Context, source: SourceIdentifier | undefined, material: Material, level?: number): void;
|
|
964
964
|
get name(): string;
|
|
965
965
|
private parser;
|
|
966
966
|
private sourceId;
|
|
@@ -1018,6 +1018,7 @@ declare module "engine-components/Renderer" {
|
|
|
1018
1018
|
private _isInstancingEnabled;
|
|
1019
1019
|
private handles;
|
|
1020
1020
|
private prevLayers;
|
|
1021
|
+
private clearInstancingState;
|
|
1021
1022
|
setInstancingEnabled(enabled: boolean): boolean;
|
|
1022
1023
|
start(): void;
|
|
1023
1024
|
onEnable(): void;
|
|
@@ -1584,6 +1585,7 @@ declare module "engine/engine_serialization" {
|
|
|
1584
1585
|
import { serializeObject, deserializeObject } from "engine/engine_serialization_core";
|
|
1585
1586
|
import * as builtin from "engine/engine_serialization_builtin_serializer";
|
|
1586
1587
|
export { serializeObject, deserializeObject, builtin };
|
|
1588
|
+
export { serializeable } from "engine/engine_serialization_decorator";
|
|
1587
1589
|
}
|
|
1588
1590
|
declare module "engine/extensions/NEEDLE_components" {
|
|
1589
1591
|
import { GLTF, GLTFLoaderPlugin, GLTFParser } from "three/examples/jsm/loaders/GLTFLoader";
|
|
@@ -2411,20 +2413,27 @@ declare module "engine-components/WebXRController" {
|
|
|
2411
2413
|
declare module "engine-components/WebARSessionRoot" {
|
|
2412
2414
|
import { Behaviour } from "engine-components/Component";
|
|
2413
2415
|
import * as THREE from 'three';
|
|
2414
|
-
import { XRPose } from "three";
|
|
2416
|
+
import { Matrix4, XRPose } from "three";
|
|
2415
2417
|
import { WebAR } from "engine-components/WebXR";
|
|
2416
2418
|
export class WebARSessionRoot extends Behaviour {
|
|
2417
2419
|
webAR: WebAR | null;
|
|
2420
|
+
get rig(): THREE.Object3D | undefined;
|
|
2418
2421
|
invertForward: boolean;
|
|
2419
2422
|
get arScale(): number;
|
|
2420
2423
|
set arScale(val: number);
|
|
2424
|
+
private readonly _initalMatrix;
|
|
2425
|
+
private readonly _selectStartFn;
|
|
2426
|
+
private readonly _selectEndFn;
|
|
2427
|
+
start(): void;
|
|
2421
2428
|
private _arScale;
|
|
2422
2429
|
private _rig;
|
|
2423
2430
|
private _startPose;
|
|
2424
2431
|
private _placementPose;
|
|
2425
2432
|
private _isTouching;
|
|
2433
|
+
private _rigStartPose;
|
|
2426
2434
|
onBegin(session: THREE.XRSession): void;
|
|
2427
|
-
onUpdate(rig: THREE.Object3D | null, _session: THREE.XRSession, pose: XRPose | null | undefined):
|
|
2435
|
+
onUpdate(rig: THREE.Object3D | null, _session: THREE.XRSession, pose: XRPose | null | undefined): boolean;
|
|
2436
|
+
placeAt(rig: THREE.Object3D | null, mat: Matrix4): void;
|
|
2428
2437
|
onEnd(rig: THREE.Object3D | null, _session: THREE.XRSession): void;
|
|
2429
2438
|
private onSelectStart;
|
|
2430
2439
|
private onSelectEnd;
|
|
@@ -2471,7 +2480,7 @@ declare module "engine-components/WebXR" {
|
|
|
2471
2480
|
static createARButton(webXR: WebXR, opts?: CreateButtonOptions): HTMLButtonElement;
|
|
2472
2481
|
static resetButtonStyles(button: any): void;
|
|
2473
2482
|
endSession(): void;
|
|
2474
|
-
get Rig(): THREE.Object3D
|
|
2483
|
+
get Rig(): THREE.Object3D;
|
|
2475
2484
|
private controllers;
|
|
2476
2485
|
get Controllers(): WebXRController[];
|
|
2477
2486
|
get LeftController(): WebXRController | null;
|
|
@@ -2511,7 +2520,8 @@ declare module "engine-components/WebXR" {
|
|
|
2511
2520
|
private onEnterXR_HandleMirrorWindow;
|
|
2512
2521
|
}
|
|
2513
2522
|
export class WebAR {
|
|
2514
|
-
|
|
2523
|
+
get webxr(): WebXR;
|
|
2524
|
+
private _webxr;
|
|
2515
2525
|
private reticle;
|
|
2516
2526
|
private hitTestSource;
|
|
2517
2527
|
private reticleActive;
|
|
@@ -2524,9 +2534,11 @@ declare module "engine-components/WebXR" {
|
|
|
2524
2534
|
constructor(webxr: WebXR);
|
|
2525
2535
|
private arDomOverlay;
|
|
2526
2536
|
private arOverlayElement;
|
|
2537
|
+
private noHitTestAvailable;
|
|
2538
|
+
private didPlaceARSessionRoot;
|
|
2527
2539
|
getAROverlayContainer(): HTMLElement | null;
|
|
2528
2540
|
setReticleActive(active: boolean): void;
|
|
2529
|
-
onBegin(session: THREE.XRSession): void
|
|
2541
|
+
onBegin(session: THREE.XRSession): Promise<void>;
|
|
2530
2542
|
onEnd(_session: THREE.XRSession): void;
|
|
2531
2543
|
onUpdate(session: THREE.XRSession, frame: THREE.XRFrame): void;
|
|
2532
2544
|
}
|
|
@@ -2865,10 +2877,12 @@ declare module "engine-components/DragControls" {
|
|
|
2865
2877
|
}
|
|
2866
2878
|
declare module "engine-components/ui/Interfaces" {
|
|
2867
2879
|
export interface ICanvasGroup {
|
|
2880
|
+
get isCanvasGroup(): boolean;
|
|
2868
2881
|
blocksRaycasts: boolean;
|
|
2869
2882
|
interactable: boolean;
|
|
2870
2883
|
}
|
|
2871
2884
|
export interface IGraphic {
|
|
2885
|
+
get isGraphic(): boolean;
|
|
2872
2886
|
raycastTarget: boolean;
|
|
2873
2887
|
}
|
|
2874
2888
|
}
|
|
@@ -3073,6 +3087,10 @@ declare module "engine/engine_setup" {
|
|
|
3073
3087
|
OnAfterRender = 4,
|
|
3074
3088
|
PhysicsStep = 10
|
|
3075
3089
|
}
|
|
3090
|
+
export enum XRSessionMode {
|
|
3091
|
+
ImmersiveVR = "immersive-vr",
|
|
3092
|
+
ImmersiveAR = "immersive-ar"
|
|
3093
|
+
}
|
|
3076
3094
|
export type OnBeforeRenderCallback = (renderer: THREE.WebGLRenderer, scene: THREE.Scene, camera: THREE.Camera, geometry: THREE.BufferGeometry, material: THREE.Material, group: THREE.Group) => void;
|
|
3077
3095
|
export class Context {
|
|
3078
3096
|
private static _current;
|
|
@@ -3091,6 +3109,7 @@ declare module "engine/engine_setup" {
|
|
|
3091
3109
|
get domX(): number;
|
|
3092
3110
|
get domY(): number;
|
|
3093
3111
|
get isInXR(): boolean;
|
|
3112
|
+
xrSessionMode: XRSessionMode | undefined;
|
|
3094
3113
|
get xrSession(): THREE.XRSession | null;
|
|
3095
3114
|
get arOverlayElement(): HTMLElement;
|
|
3096
3115
|
scene: THREE.Scene;
|
|
@@ -3755,11 +3774,20 @@ declare module "engine-components/VideoPlayer" {
|
|
|
3755
3774
|
Direct = 2,
|
|
3756
3775
|
APIOnly = 3
|
|
3757
3776
|
}
|
|
3777
|
+
export enum VideoRenderMode {
|
|
3778
|
+
CameraFarPlane = 0,
|
|
3779
|
+
CameraNearPlane = 1,
|
|
3780
|
+
RenderTexture = 2,
|
|
3781
|
+
MaterialOverride = 3
|
|
3782
|
+
}
|
|
3758
3783
|
export class VideoPlayer extends Behaviour {
|
|
3759
3784
|
renderer: THREE.Object3D | null;
|
|
3760
3785
|
playOnAwake: boolean;
|
|
3761
3786
|
playOnEnable?: boolean;
|
|
3762
|
-
|
|
3787
|
+
private renderMode?;
|
|
3788
|
+
private targetMaterialProperty?;
|
|
3789
|
+
private targetMaterialRenderer?;
|
|
3790
|
+
private targetTexture?;
|
|
3763
3791
|
private time;
|
|
3764
3792
|
private _playbackSpeed;
|
|
3765
3793
|
get playbackSpeed(): number;
|
|
@@ -3808,6 +3836,7 @@ declare module "engine-components/ScreenCapture" {
|
|
|
3808
3836
|
private captureStream;
|
|
3809
3837
|
open(force?: boolean): Promise<void>;
|
|
3810
3838
|
close(): void;
|
|
3839
|
+
private handleNetworkedVideo;
|
|
3811
3840
|
}
|
|
3812
3841
|
}
|
|
3813
3842
|
declare module "engine-components/ShadowCatcher" {
|
|
@@ -4140,10 +4169,14 @@ declare module "engine-components/Volume" {
|
|
|
4140
4169
|
export class VolumeProfile {
|
|
4141
4170
|
components?: VolumeComponent[];
|
|
4142
4171
|
apply(context: Context): void;
|
|
4172
|
+
unapply(context: Context): void;
|
|
4173
|
+
private onUpdate;
|
|
4143
4174
|
}
|
|
4144
4175
|
export class Volume extends Behaviour {
|
|
4145
4176
|
sharedProfile?: VolumeProfile;
|
|
4177
|
+
awake(): void;
|
|
4146
4178
|
onEnable(): void;
|
|
4179
|
+
onDisable(): void;
|
|
4147
4180
|
}
|
|
4148
4181
|
}
|
|
4149
4182
|
declare module "engine-components/WebXRGrabRendering" {
|
|
@@ -4575,6 +4608,7 @@ declare module "engine-components/ui/Graphic" {
|
|
|
4575
4608
|
import { Texture } from 'three';
|
|
4576
4609
|
import { RectTransform } from "engine-components/ui/RectTransform";
|
|
4577
4610
|
export class Graphic extends BaseUIComponent implements IGraphic {
|
|
4611
|
+
get isGraphic(): boolean;
|
|
4578
4612
|
get color(): RGBAColor;
|
|
4579
4613
|
set color(col: RGBAColor);
|
|
4580
4614
|
protected onColorChanged(): void;
|
|
@@ -4726,6 +4760,7 @@ declare module "engine-components/ui/CanvasGroup" {
|
|
|
4726
4760
|
export class CanvasGroup extends Behaviour implements ICanvasGroup {
|
|
4727
4761
|
get alpha(): number;
|
|
4728
4762
|
set alpha(val: number);
|
|
4763
|
+
get isCanvasGroup(): boolean;
|
|
4729
4764
|
private _alpha;
|
|
4730
4765
|
interactable: boolean;
|
|
4731
4766
|
blocksRaycasts: boolean;
|
|
@@ -5060,6 +5095,7 @@ declare module "engine/engine" {
|
|
|
5060
5095
|
LoadingOptions: typeof engine_setup.LoadingOptions;
|
|
5061
5096
|
ContextArgs: typeof engine_setup.ContextArgs;
|
|
5062
5097
|
FrameEvent: typeof engine_setup.FrameEvent;
|
|
5098
|
+
XRSessionMode: typeof engine_setup.XRSessionMode;
|
|
5063
5099
|
Context: typeof engine_setup.Context;
|
|
5064
5100
|
};
|
|
5065
5101
|
export { engine as engine };
|