@needle-tools/engine 4.13.1 → 4.14.0-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 +9 -0
- package/components.needle.json +1 -1
- package/dist/generateMeshBVH.worker-DiCnZlf3.js +21 -0
- package/dist/gltf-progressive-Bm_6aEi4.js +1528 -0
- package/dist/gltf-progressive-BttGBXw6.umd.cjs +10 -0
- package/dist/gltf-progressive-T5WKTux5.min.js +10 -0
- package/dist/loader.worker-BqODMeeW.js +23 -0
- package/dist/{materialx-B9ddsHcF.min.js → materialx-CJyQZtjt.min.js} +1 -1
- package/dist/{materialx-fkoFuRh3.js → materialx-DMs1E08Z.js} +2 -2
- package/dist/{materialx-BF23AVE8.umd.cjs → materialx-DaKKOoVk.umd.cjs} +1 -1
- package/dist/needle-engine.bundle-BW2VusZV.min.js +1646 -0
- package/dist/{needle-engine.bundle-tjI5Fq2c.umd.cjs → needle-engine.bundle-Cb5bKEqa.umd.cjs} +152 -159
- package/dist/{needle-engine.bundle-DauZUYl7.js → needle-engine.bundle-D9VPvp5o.js} +7798 -7497
- package/dist/needle-engine.d.ts +779 -42
- package/dist/needle-engine.js +416 -415
- package/dist/needle-engine.min.js +1 -1
- package/dist/needle-engine.umd.cjs +1 -1
- package/dist/{postprocessing-BVNrgYZK.min.js → postprocessing-CctM1XIO.min.js} +1 -1
- package/dist/{postprocessing-DdM-tz1j.js → postprocessing-DGm6qJ-I.js} +2 -2
- package/dist/{postprocessing-CI2TjWpu.umd.cjs → postprocessing-Dbl2PJpd.umd.cjs} +1 -1
- package/dist/{three-BW2s1Yl-.umd.cjs → three-BjYim-vL.umd.cjs} +4 -4
- package/dist/{three-VvRoMeIN.js → three-Bvk2VKbF.js} +4210 -4210
- package/dist/{three-I__hSXzr.min.js → three-IG2qPafA.min.js} +33 -33
- package/dist/{three-examples-Bpfu6ke_.umd.cjs → three-examples-BMmNgNCN.umd.cjs} +1 -1
- package/dist/{three-examples-BhfOE7NG.js → three-examples-CMYCd5nH.js} +1 -1
- package/dist/{three-examples-D8zAE_7t.min.js → three-examples-CQl1fFZp.min.js} +1 -1
- package/dist/{three-mesh-ui-C3QbemOV.min.js → three-mesh-ui-5HVE2RV-.min.js} +1 -1
- package/dist/{three-mesh-ui-CcMp-FQm.js → three-mesh-ui-BlakAItG.js} +1 -1
- package/dist/{three-mesh-ui-BU55xDxJ.umd.cjs → three-mesh-ui-D828VbQp.umd.cjs} +1 -1
- package/dist/{vendor-DW7zqjuT.min.js → vendor-BxK0WKmT.min.js} +1 -1
- package/dist/{vendor-COVQl0b8.umd.cjs → vendor-CIDkyBaO.umd.cjs} +1 -1
- package/dist/{vendor-BiyIZ61v.js → vendor-ixwD-vv2.js} +1 -1
- 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_context.js +12 -2
- package/lib/engine/engine_context.js.map +1 -1
- package/lib/engine/engine_lightdata.js +8 -6
- package/lib/engine/engine_lightdata.js.map +1 -1
- package/lib/engine/engine_materialpropertyblock.d.ts +259 -0
- package/lib/engine/engine_materialpropertyblock.js +682 -0
- package/lib/engine/engine_materialpropertyblock.js.map +1 -0
- package/lib/engine/engine_utils.d.ts +1 -0
- package/lib/engine/engine_utils.js +1 -0
- package/lib/engine/engine_utils.js.map +1 -1
- package/lib/engine/engine_utils_screenshot.d.ts +171 -14
- package/lib/engine/engine_utils_screenshot.js +65 -0
- package/lib/engine/engine_utils_screenshot.js.map +1 -1
- package/lib/engine/engine_utils_screenshot.xr.d.ts +1 -1
- package/lib/engine/engine_utils_screenshot.xr.js +1 -1
- package/lib/engine/extensions/NEEDLE_techniques_webgl.js +3 -0
- package/lib/engine/extensions/NEEDLE_techniques_webgl.js.map +1 -1
- package/lib/engine/xr/NeedleXRSession.d.ts +5 -0
- package/lib/engine/xr/NeedleXRSession.js +5 -0
- package/lib/engine/xr/NeedleXRSession.js.map +1 -1
- package/lib/engine-components/Camera.js.map +1 -1
- package/lib/engine-components/DropListener.js.map +1 -1
- package/lib/engine-components/Duplicatable.js.map +1 -1
- package/lib/engine-components/GroundProjection.js.map +1 -1
- package/lib/engine-components/NeedleMenu.js.map +1 -1
- package/lib/engine-components/NestedGltf.js.map +1 -1
- package/lib/engine-components/ReflectionProbe.d.ts +32 -4
- package/lib/engine-components/ReflectionProbe.js +58 -88
- package/lib/engine-components/ReflectionProbe.js.map +1 -1
- package/lib/engine-components/Renderer.d.ts +2 -0
- package/lib/engine-components/Renderer.js +30 -6
- package/lib/engine-components/Renderer.js.map +1 -1
- package/lib/engine-components/RendererLightmap.d.ts +13 -9
- package/lib/engine-components/RendererLightmap.js +67 -81
- package/lib/engine-components/RendererLightmap.js.map +1 -1
- package/lib/engine-components/SeeThrough.d.ts +0 -2
- package/lib/engine-components/SeeThrough.js +114 -88
- package/lib/engine-components/SeeThrough.js.map +1 -1
- package/lib/engine-components/SmoothFollow.js.map +1 -1
- package/lib/engine-components/VideoPlayer.js +6 -0
- package/lib/engine-components/VideoPlayer.js.map +1 -1
- package/lib/engine-components/ui/Button.js.map +1 -1
- package/lib/engine-components/ui/Raycaster.js.map +1 -1
- package/lib/engine-components/utils/OpenURL.d.ts +1 -0
- package/lib/engine-components/utils/OpenURL.js +1 -0
- package/lib/engine-components/utils/OpenURL.js.map +1 -1
- package/lib/engine-components/web/CursorFollow.d.ts +1 -0
- package/lib/engine-components/web/CursorFollow.js +1 -0
- package/lib/engine-components/web/CursorFollow.js.map +1 -1
- package/lib/engine-components/web/ScrollFollow.d.ts +1 -0
- package/lib/engine-components/web/ScrollFollow.js +1 -0
- package/lib/engine-components/web/ScrollFollow.js.map +1 -1
- package/lib/engine-components/web/ViewBox.d.ts +2 -2
- package/lib/engine-components/web/ViewBox.js +2 -2
- package/lib/engine-components/web/ViewBox.js.map +1 -1
- package/lib/engine-components/webxr/WebARCameraBackground.d.ts +9 -0
- package/lib/engine-components/webxr/WebARCameraBackground.js +9 -0
- package/lib/engine-components/webxr/WebARCameraBackground.js.map +1 -1
- package/lib/engine-components/webxr/WebXR.d.ts +1 -0
- package/lib/engine-components/webxr/WebXR.js +1 -0
- package/lib/engine-components/webxr/WebXR.js.map +1 -1
- package/lib/engine-components/webxr/WebXRPlaneTracking.js.map +1 -1
- package/lib/engine-components/webxr/controllers/XRControllerFollow.js.map +1 -1
- package/lib/engine-components/webxr/controllers/XRControllerMovement.js.map +1 -1
- package/package.json +5 -5
- package/plugins/vite/build-pipeline.js +16 -2
- package/src/engine/api.ts +1 -0
- package/src/engine/engine_context.ts +17 -3
- package/src/engine/engine_lightdata.ts +8 -6
- package/src/engine/engine_materialpropertyblock.ts +866 -0
- package/src/engine/engine_utils.ts +1 -0
- package/src/engine/engine_utils_screenshot.ts +241 -17
- package/src/engine/engine_utils_screenshot.xr.ts +1 -1
- package/src/engine/extensions/NEEDLE_techniques_webgl.ts +3 -0
- package/src/engine/xr/NeedleXRSession.ts +5 -0
- package/src/engine-components/Camera.ts +2 -2
- package/src/engine-components/ContactShadows.ts +1 -1
- package/src/engine-components/DropListener.ts +1 -1
- package/src/engine-components/Duplicatable.ts +1 -1
- package/src/engine-components/GroundProjection.ts +3 -0
- package/src/engine-components/NeedleMenu.ts +3 -0
- package/src/engine-components/NestedGltf.ts +1 -1
- package/src/engine-components/ReflectionProbe.ts +64 -105
- package/src/engine-components/Renderer.ts +34 -6
- package/src/engine-components/RendererLightmap.ts +75 -87
- package/src/engine-components/SeeThrough.ts +124 -109
- package/src/engine-components/SmoothFollow.ts +2 -2
- package/src/engine-components/VideoPlayer.ts +6 -0
- package/src/engine-components/ui/Button.ts +1 -1
- package/src/engine-components/ui/Raycaster.ts +1 -1
- package/src/engine-components/utils/OpenURL.ts +1 -0
- package/src/engine-components/web/CursorFollow.ts +1 -0
- package/src/engine-components/web/ScrollFollow.ts +1 -0
- package/src/engine-components/web/ViewBox.ts +9 -2
- package/src/engine-components/webxr/WebARCameraBackground.ts +12 -3
- package/src/engine-components/webxr/WebXR.ts +1 -0
- package/src/engine-components/webxr/WebXRPlaneTracking.ts +3 -3
- package/src/engine-components/webxr/controllers/XRControllerFollow.ts +1 -1
- package/src/engine-components/webxr/controllers/XRControllerMovement.ts +4 -4
- package/dist/generateMeshBVH.worker-iyfPIK6R.js +0 -21
- package/dist/gltf-progressive-BURrJW0U.umd.cjs +0 -8
- package/dist/gltf-progressive-DHLDFNvQ.min.js +0 -8
- package/dist/gltf-progressive-eiJCrjLb.js +0 -1400
- package/dist/loader.worker-C1GG9A7C.js +0 -23
- package/dist/needle-engine.bundle-BNIUpreS.min.js +0 -1653
- package/src/include/three/DragControls.js +0 -232
|
@@ -604,11 +604,17 @@ export class VideoPlayer extends Behaviour {
|
|
|
604
604
|
const videoMaterial = this._videoMaterial as any;
|
|
605
605
|
|
|
606
606
|
if (!this.targetMaterialProperty) {
|
|
607
|
+
if (debug && videoMaterial[fieldName] === undefined) {
|
|
608
|
+
console.warn(`The target material does not have a '${fieldName}' property, video might not render correctly.`);
|
|
609
|
+
}
|
|
607
610
|
videoMaterial[fieldName] = this._videoTexture;
|
|
608
611
|
}
|
|
609
612
|
else {
|
|
610
613
|
switch (this.targetMaterialProperty) {
|
|
611
614
|
default:
|
|
615
|
+
if (debug && videoMaterial[this.targetMaterialProperty] === undefined) {
|
|
616
|
+
console.warn(`The target material does not have a '${this.targetMaterialProperty}' property, video might not render correctly.`);
|
|
617
|
+
}
|
|
612
618
|
videoMaterial[fieldName] = this._videoTexture;
|
|
613
619
|
break;
|
|
614
620
|
// doesnt render:
|
|
@@ -204,7 +204,7 @@ export class Button extends Behaviour implements IPointerEventHandler {
|
|
|
204
204
|
// image? : Image;
|
|
205
205
|
|
|
206
206
|
@serializable()
|
|
207
|
-
set interactable(value) {
|
|
207
|
+
set interactable(value: boolean) {
|
|
208
208
|
this._interactable = value;
|
|
209
209
|
if (this._image) {
|
|
210
210
|
this._image.setInteractable(value);
|
|
@@ -19,6 +19,7 @@ export enum OpenURLMode {
|
|
|
19
19
|
* OpenURL behaviour opens a URL in a new tab or window when the object (or any if it's children) is clicked.
|
|
20
20
|
*
|
|
21
21
|
* @category Interactivity
|
|
22
|
+
* @category Web
|
|
22
23
|
* @group Components
|
|
23
24
|
*/
|
|
24
25
|
export class OpenURL extends Behaviour implements IPointerClickHandler {
|
|
@@ -8,6 +8,13 @@ import { registerType } from "../../engine/engine_typestore.js";
|
|
|
8
8
|
import { getParam } from "../../engine/engine_utils.js";
|
|
9
9
|
import { RGBAColor } from "../../engine/js-extensions/RGBAColor.js";
|
|
10
10
|
import { Behaviour } from "../Component.js";
|
|
11
|
+
// Type-only imports for TSDoc @see links
|
|
12
|
+
import type { Context } from "../../engine/engine_context.js";
|
|
13
|
+
import type { Camera as CameraComponent } from "../Camera.js";
|
|
14
|
+
import type { DragControls } from "../DragControls.js";
|
|
15
|
+
import type { LookAtConstraint } from "../LookAtConstraint.js";
|
|
16
|
+
import type { OrbitControls } from "../OrbitControls.js";
|
|
17
|
+
import type { SceneSwitcher } from "../SceneSwitcher.js";
|
|
11
18
|
|
|
12
19
|
|
|
13
20
|
const debugParam = getParam("debugviewbox");
|
|
@@ -83,7 +90,7 @@ export type ViewBoxMode = "continuous" | "once";
|
|
|
83
90
|
* scene.add(viewBox);
|
|
84
91
|
* ```
|
|
85
92
|
*
|
|
86
|
-
* @see {@link
|
|
93
|
+
* @see {@link CameraComponent} - The camera component that ViewBox controls
|
|
87
94
|
* @see {@link OrbitControls} - Camera controls that work alongside ViewBox
|
|
88
95
|
* @see {@link DragControls} - Alternative camera controls compatible with ViewBox
|
|
89
96
|
* @see {@link LookAtConstraint} - Another way to control camera targeting
|
|
@@ -121,7 +128,7 @@ export class ViewBox extends Behaviour {
|
|
|
121
128
|
* as they would appear with that field of view. Setting it to a wider FOV (e.g., 90) makes objects appear
|
|
122
129
|
* smaller, while a narrower FOV (e.g., 30) makes them appear larger.
|
|
123
130
|
*
|
|
124
|
-
* @see {@link
|
|
131
|
+
* @see {@link CameraComponent} for the camera component and its FOV property
|
|
125
132
|
* @default -1 (automatically uses the camera's FOV on the first frame)
|
|
126
133
|
*/
|
|
127
134
|
@serializable()
|
|
@@ -22,13 +22,22 @@ import { Behaviour } from "../Component.js";
|
|
|
22
22
|
const debug = getParam("debugarcamera");
|
|
23
23
|
|
|
24
24
|
/**
|
|
25
|
-
* WebARCameraBackground is a component that allows to display the camera feed as a background in an AR session to more easily blend the real world with the virtual world or applying effects to the camera feed.
|
|
26
|
-
*
|
|
25
|
+
* WebARCameraBackground is a component that allows to display the camera feed as a background in an AR session to more easily blend the real world with the virtual world or applying effects to the camera feed.
|
|
26
|
+
*
|
|
27
|
+
* This component automatically requests `camera-access` permission when entering AR mode, which is required to:
|
|
28
|
+
* - Display the real-world camera feed as a background
|
|
29
|
+
* - Include the camera feed in AR screenshots taken with {@link screenshot2}
|
|
30
|
+
*
|
|
31
|
+
* **Note**: If you want to take AR screenshots with the camera feed but don't need to display it as a background,
|
|
32
|
+
* you can still add this component to your scene (it will request camera access) or manually request the
|
|
33
|
+
* `camera-access` feature in your `onBeforeXR` method.
|
|
34
|
+
*
|
|
27
35
|
* - Example: https://samples.needle.tools/ar-camera-background
|
|
28
|
-
*
|
|
36
|
+
*
|
|
29
37
|
* @summary Displays the camera feed as background in WebAR sessions
|
|
30
38
|
* @category XR
|
|
31
39
|
* @group Components
|
|
40
|
+
* @see {@link screenshot2} for taking screenshots in AR (requires camera access for camera feed compositing)
|
|
32
41
|
*/
|
|
33
42
|
export class WebARCameraBackground extends Behaviour {
|
|
34
43
|
|
|
@@ -59,6 +59,7 @@ const debugQuicklook = getParam("debugusdz");
|
|
|
59
59
|
* @see {@link XRControllerMovement} for VR locomotion
|
|
60
60
|
* @see {@link WebARSessionRoot} for AR session configuration
|
|
61
61
|
* @see {@link Avatar} for networked user avatars
|
|
62
|
+
* @see {@link screenshot2} for taking screenshots in XR (including AR camera feed compositing)
|
|
62
63
|
* @link https://engine.needle.tools/docs/xr.html
|
|
63
64
|
* @link https://engine.needle.tools/samples/?overlay=samples&tag=xr
|
|
64
65
|
* @link https://engine.needle.tools/samples/collaborative-sandbox
|
|
@@ -66,13 +66,13 @@ export class WebXRPlaneTracking extends Behaviour {
|
|
|
66
66
|
* Note: this will only be applied if dataTemplate is not assigned
|
|
67
67
|
*/
|
|
68
68
|
@serializable()
|
|
69
|
-
occluder = true;
|
|
69
|
+
occluder: boolean = true;
|
|
70
70
|
|
|
71
71
|
/**
|
|
72
72
|
* If true the system will try to initiate room capture if no planes are detected.
|
|
73
73
|
*/
|
|
74
74
|
@serializable()
|
|
75
|
-
initiateRoomCaptureIfNoData = true;
|
|
75
|
+
initiateRoomCaptureIfNoData: boolean = true;
|
|
76
76
|
|
|
77
77
|
/**
|
|
78
78
|
* If true plane tracking will be enabled
|
|
@@ -88,7 +88,7 @@ export class WebXRPlaneTracking extends Behaviour {
|
|
|
88
88
|
|
|
89
89
|
/** when enabled mesh or plane tracking will also be used in VR */
|
|
90
90
|
@serializable()
|
|
91
|
-
runInVR = true;
|
|
91
|
+
runInVR: boolean = true;
|
|
92
92
|
|
|
93
93
|
/**
|
|
94
94
|
* Returns all tracked planes
|
|
@@ -63,7 +63,7 @@ export class XRControllerFollow extends Behaviour {
|
|
|
63
63
|
* @default false
|
|
64
64
|
*/
|
|
65
65
|
@serializable()
|
|
66
|
-
useGripSpace = false;
|
|
66
|
+
useGripSpace: boolean = false;
|
|
67
67
|
|
|
68
68
|
/** when enabled the position, rotation and scale of this object will be set to the position it was at when it entered the XR session
|
|
69
69
|
* @default true
|
|
@@ -40,13 +40,13 @@ export class XRControllerMovement extends Behaviour implements XRMovementBehavio
|
|
|
40
40
|
* @default 1.5
|
|
41
41
|
*/
|
|
42
42
|
@serializable()
|
|
43
|
-
movementSpeed = 1.5;
|
|
43
|
+
movementSpeed: number = 1.5;
|
|
44
44
|
|
|
45
45
|
/** How many degrees to rotate the XR rig when using the rotation trigger
|
|
46
46
|
* @default 30
|
|
47
47
|
*/
|
|
48
48
|
@serializable()
|
|
49
|
-
rotationStep = 30;
|
|
49
|
+
rotationStep: number = 30;
|
|
50
50
|
|
|
51
51
|
/** When enabled you can teleport using the right XR controller's thumbstick by pressing forward
|
|
52
52
|
* @default true
|
|
@@ -65,13 +65,13 @@ export class XRControllerMovement extends Behaviour implements XRMovementBehavio
|
|
|
65
65
|
* @default false
|
|
66
66
|
*/
|
|
67
67
|
@serializable()
|
|
68
|
-
useTeleportTarget = false;
|
|
68
|
+
useTeleportTarget: boolean = false;
|
|
69
69
|
|
|
70
70
|
/** Enable to fade out the scene when teleporting
|
|
71
71
|
* @default false
|
|
72
72
|
*/
|
|
73
73
|
@serializable()
|
|
74
|
-
useTeleportFade = false;
|
|
74
|
+
useTeleportFade: boolean = false;
|
|
75
75
|
|
|
76
76
|
/** enable to visualize controller rays in the 3D scene
|
|
77
77
|
* @default true
|