@needle-tools/engine 4.14.0-next.52fdb13 → 4.14.0
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/components.needle.json +1 -1
- package/dist/{needle-engine.bundle-DJE-Bjpa.umd.cjs → needle-engine.bundle-COL2Bar3.umd.cjs} +120 -128
- package/dist/{needle-engine.bundle-BwfaInTa.min.js → needle-engine.bundle-NolzHLqO.min.js} +129 -137
- package/dist/{needle-engine.bundle-TmE5-_na.js → needle-engine.bundle-Z_gAD7Kg.js} +5214 -5459
- package/dist/needle-engine.d.ts +42 -299
- package/dist/needle-engine.js +569 -570
- package/dist/needle-engine.min.js +1 -1
- package/dist/needle-engine.umd.cjs +1 -1
- package/lib/engine/engine_context.d.ts +0 -2
- package/lib/engine/engine_context.js +0 -7
- package/lib/engine/engine_context.js.map +1 -1
- package/lib/engine/engine_materialpropertyblock.d.ts +4 -90
- package/lib/engine/engine_materialpropertyblock.js +7 -97
- package/lib/engine/engine_materialpropertyblock.js.map +1 -1
- package/lib/engine/engine_math.d.ts +1 -34
- package/lib/engine/engine_math.js +1 -34
- package/lib/engine/engine_math.js.map +1 -1
- package/lib/engine/engine_networking.js +1 -1
- package/lib/engine/engine_networking.js.map +1 -1
- package/lib/engine/engine_types.d.ts +0 -2
- package/lib/engine/engine_types.js +0 -2
- package/lib/engine/engine_types.js.map +1 -1
- package/lib/engine/webcomponents/icons.js +0 -3
- package/lib/engine/webcomponents/icons.js.map +1 -1
- package/lib/engine/webcomponents/logo-element.d.ts +0 -1
- package/lib/engine/webcomponents/logo-element.js +1 -3
- package/lib/engine/webcomponents/logo-element.js.map +1 -1
- package/lib/engine/webcomponents/needle-button.d.ts +11 -37
- package/lib/engine/webcomponents/needle-button.js +11 -42
- package/lib/engine/webcomponents/needle-button.js.map +1 -1
- package/lib/engine/webcomponents/needle-engine.d.ts +2 -10
- package/lib/engine/webcomponents/needle-engine.js +3 -13
- package/lib/engine/webcomponents/needle-engine.js.map +1 -1
- package/lib/engine-components/Component.d.ts +2 -1
- package/lib/engine-components/Component.js +2 -1
- package/lib/engine-components/Component.js.map +1 -1
- package/lib/engine-components/DragControls.d.ts +0 -1
- package/lib/engine-components/DragControls.js +0 -21
- package/lib/engine-components/DragControls.js.map +1 -1
- package/lib/engine-components/NeedleMenu.d.ts +0 -2
- package/lib/engine-components/NeedleMenu.js +0 -2
- package/lib/engine-components/NeedleMenu.js.map +1 -1
- package/lib/engine-components/Networking.d.ts +3 -28
- package/lib/engine-components/Networking.js +3 -28
- package/lib/engine-components/Networking.js.map +1 -1
- package/lib/engine-components/ReflectionProbe.d.ts +0 -1
- package/lib/engine-components/ReflectionProbe.js +2 -20
- package/lib/engine-components/ReflectionProbe.js.map +1 -1
- package/lib/engine-components/export/usdz/extensions/behavior/BehaviourComponents.d.ts +0 -15
- package/lib/engine-components/export/usdz/extensions/behavior/BehaviourComponents.js +0 -77
- package/lib/engine-components/export/usdz/extensions/behavior/BehaviourComponents.js.map +1 -1
- package/lib/engine-components/ui/Button.d.ts +0 -1
- package/lib/engine-components/ui/Button.js +0 -11
- package/lib/engine-components/ui/Button.js.map +1 -1
- package/lib/engine-components/ui/Text.d.ts +0 -1
- package/lib/engine-components/ui/Text.js +0 -11
- package/lib/engine-components/ui/Text.js.map +1 -1
- package/package.json +2 -2
- package/src/engine/engine_context.ts +0 -9
- package/src/engine/engine_materialpropertyblock.ts +11 -102
- package/src/engine/engine_math.ts +1 -34
- package/src/engine/engine_networking.ts +1 -1
- package/src/engine/engine_types.ts +0 -5
- package/src/engine/webcomponents/icons.ts +0 -3
- package/src/engine/webcomponents/logo-element.ts +1 -4
- package/src/engine/webcomponents/needle-button.ts +13 -44
- package/src/engine/webcomponents/needle-engine.ts +7 -18
- package/src/engine-components/Component.ts +3 -1
- package/src/engine-components/DragControls.ts +4 -29
- package/src/engine-components/NeedleMenu.ts +3 -5
- package/src/engine-components/Networking.ts +4 -29
- package/src/engine-components/ReflectionProbe.ts +2 -21
- package/src/engine-components/export/usdz/extensions/behavior/BehaviourComponents.ts +32 -108
- package/src/engine-components/ui/Button.ts +0 -12
- package/src/engine-components/ui/Text.ts +0 -13
- package/lib/engine/engine_accessibility.d.ts +0 -58
- package/lib/engine/engine_accessibility.js +0 -143
- package/lib/engine/engine_accessibility.js.map +0 -1
- package/src/engine/engine_accessibility.ts +0 -178
package/dist/needle-engine.d.ts
CHANGED
|
@@ -111,7 +111,7 @@ import { XRControllerModelFactory } from 'three/examples/jsm/webxr/XRControllerM
|
|
|
111
111
|
import { XRHandMeshModel } from 'three/examples/jsm/webxr/XRHandMeshModel.js';
|
|
112
112
|
import { XRHandSpace } from 'three';
|
|
113
113
|
|
|
114
|
-
|
|
114
|
+
declare const $componentName: unique symbol;
|
|
115
115
|
|
|
116
116
|
export declare const $physicsKey: unique symbol;
|
|
117
117
|
|
|
@@ -120,62 +120,6 @@ export declare class __Ignore {
|
|
|
120
120
|
|
|
121
121
|
export declare function __internalNotifyObjectDestroyed(obj: Object3D): void;
|
|
122
122
|
|
|
123
|
-
/** Data describing the accessible semantics for a 3D object or component. */
|
|
124
|
-
declare type AccessibilityData = {
|
|
125
|
-
/** ARIA role (e.g. `"button"`, `"img"`, `"region"`). */
|
|
126
|
-
role: string;
|
|
127
|
-
/** Human-readable label announced by screen readers. */
|
|
128
|
-
label: string;
|
|
129
|
-
/** When `true`, the element is hidden from the accessibility tree. */
|
|
130
|
-
hidden?: boolean;
|
|
131
|
-
/** When `true`, indicates the element's content is being updated. */
|
|
132
|
-
busy?: boolean;
|
|
133
|
-
};
|
|
134
|
-
|
|
135
|
-
/**
|
|
136
|
-
* Manages an accessible, screen-reader-friendly overlay for a Needle Engine {@link Context}.
|
|
137
|
-
*
|
|
138
|
-
* The manager maintains a visually-hidden DOM tree that mirrors relevant 3D scene objects
|
|
139
|
-
* with appropriate ARIA roles and labels. It also provides a live region so that hover
|
|
140
|
-
* events in the 3D scene can be announced to assistive technology without stealing focus.
|
|
141
|
-
*/
|
|
142
|
-
declare class AccessibilityManager {
|
|
143
|
-
private readonly context;
|
|
144
|
-
private static readonly _managers;
|
|
145
|
-
/** Returns the {@link AccessibilityManager} associated with the given context or component. */
|
|
146
|
-
static get(obj: Context | IComponent): AccessibilityManager | undefined;
|
|
147
|
-
constructor(context: Context);
|
|
148
|
-
private _enabled;
|
|
149
|
-
/** Enables or disables the accessibility overlay. When disabled, the overlay DOM is removed. */
|
|
150
|
-
set enabled(value: boolean);
|
|
151
|
-
/** Removes all tracked accessibility elements, keeping only the live region. */
|
|
152
|
-
clear(): void;
|
|
153
|
-
/** Removes the overlay from the DOM and unregisters this manager from the context. */
|
|
154
|
-
dispose(): void;
|
|
155
|
-
private readonly root;
|
|
156
|
-
private readonly liveRegion;
|
|
157
|
-
private readonly treeElements;
|
|
158
|
-
/**
|
|
159
|
-
* Creates or updates the accessible DOM element for a 3D object or component.
|
|
160
|
-
* @param obj - The scene object or component to represent.
|
|
161
|
-
* @param data - Partial accessibility data (role, label, hidden, busy) to apply.
|
|
162
|
-
*/
|
|
163
|
-
updateElement<T extends Object3D | IComponent>(obj: T, data: Partial<AccessibilityData>): void;
|
|
164
|
-
/** Moves keyboard focus to the accessible element representing the given object. */
|
|
165
|
-
focus<T extends Object3D | IComponent>(obj: T): void;
|
|
166
|
-
/** Removes keyboard focus from the accessible element representing the given object. */
|
|
167
|
-
unfocus<T extends Object3D | IComponent>(obj: T): void;
|
|
168
|
-
/**
|
|
169
|
-
* Announces a hover event to screen readers via the ARIA live region.
|
|
170
|
-
* @param obj - The hovered object (used to look up its label if `text` is not provided).
|
|
171
|
-
* @param text - Optional text to announce. Falls back to the element's `aria-label`.
|
|
172
|
-
*/
|
|
173
|
-
hover<T extends Object3D | IComponent>(obj: T, text?: string): void;
|
|
174
|
-
/** Removes the accessible DOM element for the given object and stops tracking it. */
|
|
175
|
-
removeElement(obj: Object3D | IComponent): void;
|
|
176
|
-
private set liveRegionMode(value);
|
|
177
|
-
}
|
|
178
|
-
|
|
179
123
|
export declare class ActionBuilder {
|
|
180
124
|
static sequence(...params: IBehaviorElement[]): GroupActionModel;
|
|
181
125
|
static parallel(...params: IBehaviorElement[]): GroupActionModel;
|
|
@@ -2323,7 +2267,6 @@ export declare class Button extends Component implements IPointerEventHandler {
|
|
|
2323
2267
|
awake(): void;
|
|
2324
2268
|
start(): void;
|
|
2325
2269
|
onEnable(): void;
|
|
2326
|
-
onDisable(): void;
|
|
2327
2270
|
onDestroy(): void;
|
|
2328
2271
|
private _requestedAnimatorTrigger?;
|
|
2329
2272
|
private setAnimatorTriggerAtEndOfFrame;
|
|
@@ -2900,9 +2843,6 @@ export declare class ChangeMaterialOnClick extends Component implements IPointer
|
|
|
2900
2843
|
*/
|
|
2901
2844
|
fadeDuration: number;
|
|
2902
2845
|
start(): void;
|
|
2903
|
-
onEnable(): void;
|
|
2904
|
-
onDisable(): void;
|
|
2905
|
-
onDestroy(): void;
|
|
2906
2846
|
onPointerEnter(_args: PointerEventData): void;
|
|
2907
2847
|
onPointerExit(_: PointerEventData): void;
|
|
2908
2848
|
onPointerClick(args: PointerEventData): void;
|
|
@@ -2947,9 +2887,6 @@ export declare class ChangeTransformOnClick extends Component implements IPointe
|
|
|
2947
2887
|
private targetPos;
|
|
2948
2888
|
private targetRot;
|
|
2949
2889
|
private targetScale;
|
|
2950
|
-
onEnable(): void;
|
|
2951
|
-
onDisable(): void;
|
|
2952
|
-
onDestroy(): void;
|
|
2953
2890
|
onPointerEnter(): void;
|
|
2954
2891
|
onPointerExit(): void;
|
|
2955
2892
|
onPointerClick(args: PointerEventData): void;
|
|
@@ -4355,7 +4292,6 @@ export declare class Context implements IContext {
|
|
|
4355
4292
|
readonly lodsManager: LODsManager;
|
|
4356
4293
|
/** Access the needle menu to add or remove buttons to the menu element */
|
|
4357
4294
|
readonly menu: NeedleMenu_2;
|
|
4358
|
-
readonly accessibility: AccessibilityManager;
|
|
4359
4295
|
/**
|
|
4360
4296
|
* Checks if the context is fully created and ready
|
|
4361
4297
|
* @returns true if the context is fully created and ready
|
|
@@ -5346,7 +5282,6 @@ export declare class DragControls extends Component implements IPointerEventHand
|
|
|
5346
5282
|
/* Excluded from this release type: start */
|
|
5347
5283
|
/* Excluded from this release type: onEnable */
|
|
5348
5284
|
/* Excluded from this release type: onDisable */
|
|
5349
|
-
onDestroy(): void;
|
|
5350
5285
|
/**
|
|
5351
5286
|
* Checks if editing is allowed for the current networking connection.
|
|
5352
5287
|
* @param _obj Optional object to check edit permissions for
|
|
@@ -5738,9 +5673,6 @@ export declare class EmphasizeOnClick extends Component implements UsdzBehaviour
|
|
|
5738
5673
|
duration: number;
|
|
5739
5674
|
/** The type of motion to use for the emphasis effect (e.g. `"bounce"`, `"jiggle"`). */
|
|
5740
5675
|
motionType: EmphasizeActionMotionType;
|
|
5741
|
-
onEnable(): void;
|
|
5742
|
-
onDisable(): void;
|
|
5743
|
-
onDestroy(): void;
|
|
5744
5676
|
beforeCreateDocument(): void;
|
|
5745
5677
|
createBehaviours(ext: any, model: any, _context: any): void;
|
|
5746
5678
|
afterCreateDocument(_ext: any, _context: any): void;
|
|
@@ -7844,7 +7776,6 @@ export declare type ICollisionContext = {
|
|
|
7844
7776
|
|
|
7845
7777
|
export declare interface IComponent extends IHasGuid {
|
|
7846
7778
|
get isComponent(): boolean;
|
|
7847
|
-
get [$componentName](): string | undefined;
|
|
7848
7779
|
/** the object this component is attached to */
|
|
7849
7780
|
gameObject: IGameObject;
|
|
7850
7781
|
enabled: boolean;
|
|
@@ -10162,22 +10093,13 @@ export declare class MaskableGraphic extends Graphic {
|
|
|
10162
10093
|
* This is useful for rendering multiple objects with the same base material but different properties
|
|
10163
10094
|
* (e.g., different colors, textures, or shader parameters).
|
|
10164
10095
|
*
|
|
10165
|
-
* ## How Property Blocks Work
|
|
10166
|
-
*
|
|
10167
|
-
* **Important**: Overrides are registered on the **Object3D**, not on the material.
|
|
10168
|
-
* This means:
|
|
10169
|
-
* - If you change the object's material, the overrides will still be applied to the new material
|
|
10170
|
-
* - Multiple objects can share the same material but have different property overrides
|
|
10171
|
-
* - If you don't want overrides applied after changing a material, you must remove them using {@link removeOveride}, {@link clearAllOverrides}, or {@link dispose}
|
|
10172
|
-
*
|
|
10173
10096
|
* The property block system works by:
|
|
10174
10097
|
* - Temporarily applying overrides in onBeforeRender
|
|
10175
10098
|
* - Restoring original values in onAfterRender
|
|
10176
10099
|
* - Managing shader defines and program cache keys for correct shader compilation
|
|
10177
10100
|
* - Supporting texture coordinate transforms per object
|
|
10178
10101
|
*
|
|
10179
|
-
*
|
|
10180
|
-
*
|
|
10102
|
+
* Common use cases:
|
|
10181
10103
|
* - **Lightmaps**: Apply unique lightmap textures to individual objects sharing the same material
|
|
10182
10104
|
* - **Reflection Probes**: Apply different environment maps per object for localized reflections
|
|
10183
10105
|
* - **See-through effects**: Temporarily override transparency/transmission properties for X-ray effects
|
|
@@ -10215,26 +10137,6 @@ export declare class MaskableGraphic extends Graphic {
|
|
|
10215
10137
|
* block.setDefine("USE_CUSTOM_FEATURE", 1);
|
|
10216
10138
|
* ```
|
|
10217
10139
|
*
|
|
10218
|
-
* @example Material swapping behavior
|
|
10219
|
-
* ```typescript
|
|
10220
|
-
* const mesh = new Mesh(geometry, materialA);
|
|
10221
|
-
* const block = MaterialPropertyBlock.get(mesh);
|
|
10222
|
-
* block.setOverride("color", new Color(1, 0, 0));
|
|
10223
|
-
*
|
|
10224
|
-
* // The color override is red for materialA
|
|
10225
|
-
*
|
|
10226
|
-
* // Swap the material - overrides persist and apply to the new material!
|
|
10227
|
-
* mesh.material = materialB;
|
|
10228
|
-
* // The color override is now red for materialB too
|
|
10229
|
-
*
|
|
10230
|
-
* // If you don't want overrides on the new material, remove them:
|
|
10231
|
-
* block.clearAllOverrides(); // Remove all overrides
|
|
10232
|
-
* // or
|
|
10233
|
-
* block.removeOveride("color"); // Remove specific override
|
|
10234
|
-
* // or
|
|
10235
|
-
* block.dispose(); // Remove the entire property block
|
|
10236
|
-
* ```
|
|
10237
|
-
*
|
|
10238
10140
|
* @example Lightmap usage
|
|
10239
10141
|
* ```typescript
|
|
10240
10142
|
* const block = MaterialPropertyBlock.get(mesh);
|
|
@@ -10342,69 +10244,12 @@ export declare class MaterialPropertyBlock<T extends Material = Material> {
|
|
|
10342
10244
|
getOverride<K extends NonFunctionPropertyNames<T>>(name: K): PropertyBlockOverride<T[K] & MaterialPropertyType> | undefined;
|
|
10343
10245
|
getOverride<V extends MaterialPropertyType = MaterialPropertyType>(name: string): PropertyBlockOverride<V> | undefined;
|
|
10344
10246
|
/**
|
|
10345
|
-
* Removes a specific property override
|
|
10346
|
-
*
|
|
10347
|
-
*
|
|
10348
|
-
* @param name The property name to remove the override for
|
|
10349
|
-
*
|
|
10350
|
-
* @example
|
|
10351
|
-
* ```typescript
|
|
10352
|
-
* const block = MaterialPropertyBlock.get(mesh);
|
|
10353
|
-
*
|
|
10354
|
-
* // Set some overrides
|
|
10355
|
-
* block.setOverride("color", new Color(1, 0, 0));
|
|
10356
|
-
* block.setOverride("roughness", 0.5);
|
|
10357
|
-
* block.setOverride("lightMap", lightmapTexture);
|
|
10358
|
-
*
|
|
10359
|
-
* // Remove a specific override - the material will now use its original color
|
|
10360
|
-
* block.removeOveride("color");
|
|
10361
|
-
*
|
|
10362
|
-
* // Other overrides (roughness, lightMap) remain active
|
|
10363
|
-
* ```
|
|
10247
|
+
* Removes a specific property override
|
|
10248
|
+
* @param name The property name to clear
|
|
10364
10249
|
*/
|
|
10365
10250
|
removeOveride<K extends NonFunctionPropertyNames<T>>(name: K | ({} & string)): void;
|
|
10366
10251
|
/**
|
|
10367
|
-
* Removes all property overrides from this block
|
|
10368
|
-
* After calling this, the material will use its original values for all properties.
|
|
10369
|
-
*
|
|
10370
|
-
* **Note**: This does NOT remove shader defines. Use {@link clearDefine} or {@link dispose} for that.
|
|
10371
|
-
*
|
|
10372
|
-
* @example Remove all overrides but keep the property block
|
|
10373
|
-
* ```typescript
|
|
10374
|
-
* const block = MaterialPropertyBlock.get(mesh);
|
|
10375
|
-
*
|
|
10376
|
-
* // Set multiple overrides
|
|
10377
|
-
* block.setOverride("color", new Color(1, 0, 0));
|
|
10378
|
-
* block.setOverride("roughness", 0.5);
|
|
10379
|
-
* block.setOverride("lightMap", lightmapTexture);
|
|
10380
|
-
*
|
|
10381
|
-
* // Later, remove all overrides at once
|
|
10382
|
-
* block.clearAllOverrides();
|
|
10383
|
-
*
|
|
10384
|
-
* // The material now uses its original values
|
|
10385
|
-
* // The property block still exists and can be reused with new overrides
|
|
10386
|
-
* ```
|
|
10387
|
-
*
|
|
10388
|
-
* @example Temporarily disable all overrides
|
|
10389
|
-
* ```typescript
|
|
10390
|
-
* const block = MaterialPropertyBlock.get(mesh);
|
|
10391
|
-
*
|
|
10392
|
-
* // Save current overrides if you want to restore them later
|
|
10393
|
-
* const savedOverrides = [...block.overrides];
|
|
10394
|
-
*
|
|
10395
|
-
* // Clear all overrides temporarily
|
|
10396
|
-
* block.clearAllOverrides();
|
|
10397
|
-
*
|
|
10398
|
-
* // Do some rendering without overrides...
|
|
10399
|
-
*
|
|
10400
|
-
* // Restore overrides
|
|
10401
|
-
* savedOverrides.forEach(override => {
|
|
10402
|
-
* block.setOverride(override.name, override.value, override.textureTransform);
|
|
10403
|
-
* });
|
|
10404
|
-
* ```
|
|
10405
|
-
*
|
|
10406
|
-
* @see {@link removeOveride} - To remove a single override
|
|
10407
|
-
* @see {@link dispose} - To completely remove the property block and clean up resources
|
|
10252
|
+
* Removes all property overrides from this block
|
|
10408
10253
|
*/
|
|
10409
10254
|
clearAllOverrides(): void;
|
|
10410
10255
|
/**
|
|
@@ -10805,58 +10650,32 @@ export declare namespace NEEDLE_ENGINE_MODULES {
|
|
|
10805
10650
|
export { NEEDLE_progressive }
|
|
10806
10651
|
|
|
10807
10652
|
/**
|
|
10808
|
-
*
|
|
10809
|
-
*
|
|
10810
|
-
* The button automatically handles session management and displays appropriate UI based on device capabilities.
|
|
10811
|
-
* It comes with default styling (glassmorphism design) but can be fully customized with CSS.
|
|
10812
|
-
*
|
|
10813
|
-
* **Supported button types:**
|
|
10814
|
-
* - `ar` - WebXR AR session button
|
|
10815
|
-
* - `vr` - WebXR VR session button
|
|
10816
|
-
* - `quicklook` - Apple AR Quick Look button (iOS only)
|
|
10817
|
-
* - `qrcode` - QR code sharing button
|
|
10818
|
-
*
|
|
10819
|
-
* @example Basic AR/VR buttons
|
|
10653
|
+
* A <needle-button> can be used to simply add VR, AR or Quicklook buttons to your website without having to write any code.
|
|
10654
|
+
* @example
|
|
10820
10655
|
* ```html
|
|
10821
|
-
* <needle-engine src="scene.glb"></needle-engine>
|
|
10822
10656
|
* <needle-button ar></needle-button>
|
|
10823
10657
|
* <needle-button vr></needle-button>
|
|
10824
10658
|
* <needle-button quicklook></needle-button>
|
|
10825
10659
|
* ```
|
|
10826
10660
|
*
|
|
10827
|
-
* @example
|
|
10661
|
+
* @example custom label
|
|
10828
10662
|
* ```html
|
|
10829
|
-
* <needle-button ar>Start AR
|
|
10830
|
-
* <needle-button vr>
|
|
10663
|
+
* <needle-button ar>Start AR</needle-button>
|
|
10664
|
+
* <needle-button vr>Start VR</needle-button>
|
|
10831
10665
|
* <needle-button quicklook>View in AR</needle-button>
|
|
10832
10666
|
* ```
|
|
10833
10667
|
*
|
|
10834
|
-
* @example
|
|
10668
|
+
* @example custom styling
|
|
10835
10669
|
* ```html
|
|
10670
|
+
* <!-- You can either style the element directly or use a CSS stylesheet -->
|
|
10836
10671
|
* <style>
|
|
10837
|
-
*
|
|
10838
|
-
*
|
|
10839
|
-
*
|
|
10840
|
-
*
|
|
10841
|
-
* padding: 1rem 2rem;
|
|
10842
|
-
* }
|
|
10843
|
-
* needle-button:hover {
|
|
10844
|
-
* background-color: #ff5252;
|
|
10845
|
-
* }
|
|
10672
|
+
* needle-button {
|
|
10673
|
+
* background-color: red;
|
|
10674
|
+
* color: white;
|
|
10675
|
+
* }
|
|
10846
10676
|
* </style>
|
|
10847
10677
|
* <needle-button ar>Start AR</needle-button>
|
|
10848
10678
|
* ```
|
|
10849
|
-
*
|
|
10850
|
-
* @example Unstyled button (for complete custom styling)
|
|
10851
|
-
* ```html
|
|
10852
|
-
* <needle-button ar unstyled>
|
|
10853
|
-
* <span class="my-icon">🥽</span>
|
|
10854
|
-
* Launch AR
|
|
10855
|
-
* </needle-button>
|
|
10856
|
-
* ```
|
|
10857
|
-
*
|
|
10858
|
-
* @see {@link NeedleEngineWebComponent} for the main <needle-engine> element
|
|
10859
|
-
* @see {@link NeedleMenu} for the built-in menu component that can display similar buttons
|
|
10860
10679
|
*/
|
|
10861
10680
|
export declare class NeedleButtonElement extends HTMLElement {
|
|
10862
10681
|
#private;
|
|
@@ -10933,18 +10752,10 @@ export declare namespace NeedleEngineModelLoader {
|
|
|
10933
10752
|
* The context is accessible from the `<needle-engine>` element: `document.querySelector("needle-engine").context`.
|
|
10934
10753
|
* See {@link https://engine.needle.tools/docs/reference/needle-engine-attributes}
|
|
10935
10754
|
*
|
|
10936
|
-
* @example
|
|
10937
|
-
* ```html
|
|
10755
|
+
* @example
|
|
10938
10756
|
* <needle-engine src="https://example.com/scene.glb"></needle-engine>
|
|
10939
|
-
*
|
|
10940
|
-
*
|
|
10941
|
-
* @example With camera controls disabled
|
|
10942
|
-
* ```html
|
|
10757
|
+
* @example
|
|
10943
10758
|
* <needle-engine src="https://example.com/scene.glb" camera-controls="false"></needle-engine>
|
|
10944
|
-
* ```
|
|
10945
|
-
*
|
|
10946
|
-
* @see {@link NeedleButtonElement} for adding AR/VR/Quicklook buttons via <needle-button>
|
|
10947
|
-
* @see {@link NeedleMenu} for the built-in menu configuration component
|
|
10948
10759
|
*/
|
|
10949
10760
|
export declare class NeedleEngineWebComponent extends HTMLElement implements INeedleEngineComponent {
|
|
10950
10761
|
static get observedAttributes(): string[];
|
|
@@ -11271,8 +11082,6 @@ declare class NeedleGamepadButton {
|
|
|
11271
11082
|
* @category User Interface
|
|
11272
11083
|
* @group Components
|
|
11273
11084
|
* @see {@link Context.menu} for programmatic menu control
|
|
11274
|
-
* @see {@link NeedleButtonElement} for standalone <needle-button> web component
|
|
11275
|
-
* @see {@link NeedleEngineWebComponent} for the main <needle-engine> element
|
|
11276
11085
|
* @see {@link Voip} adds a microphone button to the menu
|
|
11277
11086
|
* @see {@link ScreenCapture} adds a screen sharing button
|
|
11278
11087
|
**/
|
|
@@ -12494,34 +12303,10 @@ export declare class NetworkedStreams extends EventDispatcher<any> {
|
|
|
12494
12303
|
}
|
|
12495
12304
|
|
|
12496
12305
|
/**
|
|
12497
|
-
* Provides
|
|
12498
|
-
*
|
|
12499
|
-
*
|
|
12500
|
-
* The component registers itself as a URL provider on `awake()`. When the networking system connects,
|
|
12501
|
-
* it queries this provider for the websocket URL to use instead of the default Needle networking backend.
|
|
12502
|
-
*
|
|
12503
|
-
* **URL resolution order:**
|
|
12504
|
-
* 1. If `urlParameterName` is set and the corresponding URL parameter exists in the browser URL, that value is used
|
|
12505
|
-
* 2. If running on a local network and `localhost` is set, the `localhost` URL is used
|
|
12506
|
-
* 3. Otherwise, the `url` field is used
|
|
12306
|
+
* Provides configuration to the built-in networking system.
|
|
12307
|
+
* This component supplies websocket URLs for establishing connections.
|
|
12308
|
+
* It implements the {@link INetworkingWebsocketUrlProvider} interface.
|
|
12507
12309
|
*
|
|
12508
|
-
* Without this component, the default backend URL `wss://networking-2.needle.tools/socket` is used.
|
|
12509
|
-
*
|
|
12510
|
-
* **Note:** This component only configures the websocket URL. To actually join a networked room,
|
|
12511
|
-
* use a `SyncedRoom` component or call `this.context.connection.joinRoom("room-name")` directly.
|
|
12512
|
-
*
|
|
12513
|
-
* @example Overriding the URL via browser parameter
|
|
12514
|
-
* ```ts
|
|
12515
|
-
* // With urlParameterName="server", visiting:
|
|
12516
|
-
* // https://myapp.com/?server=wss://my-server.com/socket
|
|
12517
|
-
* // will connect to that server instead
|
|
12518
|
-
* ```
|
|
12519
|
-
*
|
|
12520
|
-
* @see {@link NetworkConnection} for the main networking API (`this.context.connection`)
|
|
12521
|
-
* @see {@link SyncedRoom} for automatic room joining
|
|
12522
|
-
* @see {@link OwnershipModel} for networked object ownership
|
|
12523
|
-
* @see {@link RoomEvents} for room lifecycle events
|
|
12524
|
-
* @link https://engine.needle.tools/docs/how-to-guides/networking/
|
|
12525
12310
|
* @summary Networking configuration
|
|
12526
12311
|
* @category Networking
|
|
12527
12312
|
* @group Components
|
|
@@ -12530,7 +12315,6 @@ export declare class Networking extends Component implements INetworkingWebsocke
|
|
|
12530
12315
|
/**
|
|
12531
12316
|
* The websocket URL to connect to for networking functionality.
|
|
12532
12317
|
* Can be a complete URL or a relative path that will be resolved against the current origin.
|
|
12533
|
-
* @default null
|
|
12534
12318
|
*/
|
|
12535
12319
|
url: string | null;
|
|
12536
12320
|
/**
|
|
@@ -12904,40 +12688,7 @@ export declare function onClear(cb: LifecycleMethod, opts?: LifecycleMethodOptio
|
|
|
12904
12688
|
export declare function onDestroy(cb: LifecycleMethod, opts?: LifecycleMethodOptions): () => void;
|
|
12905
12689
|
|
|
12906
12690
|
/**
|
|
12907
|
-
*
|
|
12908
|
-
* It's particularly useful for smoothing tracking data from XR controllers, hand tracking, or other input devices where the signal contains noise but responsiveness is important.
|
|
12909
|
-
*
|
|
12910
|
-
* The filter automatically adapts its smoothing strength based on the signal's velocity:
|
|
12911
|
-
* - When the signal moves slowly, it applies strong smoothing to reduce jitter
|
|
12912
|
-
* - When the signal moves quickly, it reduces smoothing to maintain responsiveness
|
|
12913
|
-
*
|
|
12914
|
-
* Based on the research paper: [1€ Filter: A Simple Speed-based Low-pass Filter for Noisy Input](http://cristal.univ-lille.fr/~casiez/1euro/)
|
|
12915
|
-
*
|
|
12916
|
-
* @example Basic usage with timestamp
|
|
12917
|
-
* ```ts
|
|
12918
|
-
* const filter = new OneEuroFilter(120, 1.0, 0.0);
|
|
12919
|
-
*
|
|
12920
|
-
* // In your update loop:
|
|
12921
|
-
* const smoothedValue = filter.filter(noisyValue, this.context.time.time);
|
|
12922
|
-
* ```
|
|
12923
|
-
*
|
|
12924
|
-
* @example Without timestamps (using frequency estimate)
|
|
12925
|
-
* ```ts
|
|
12926
|
-
* // Assuming 60 FPS update rate
|
|
12927
|
-
* const filter = new OneEuroFilter(60, 1.0, 0.5);
|
|
12928
|
-
*
|
|
12929
|
-
* // Call without timestamp - uses the frequency estimate
|
|
12930
|
-
* const smoothedValue = filter.filter(noisyValue);
|
|
12931
|
-
* ```
|
|
12932
|
-
*
|
|
12933
|
-
* @example Smoothing 3D positions
|
|
12934
|
-
* ```ts
|
|
12935
|
-
* const posFilter = new OneEuroFilterXYZ(90, 0.5, 0.0);
|
|
12936
|
-
*
|
|
12937
|
-
* posFilter.filter(trackedPosition, smoothedPosition, this.context.time.time);
|
|
12938
|
-
* ```
|
|
12939
|
-
*
|
|
12940
|
-
* @see {@link OneEuroFilterXYZ} for filtering 3D vectors
|
|
12691
|
+
* OneEuroFilter is a simple low-pass filter for noisy signals. It uses a one-euro filter to smooth the signal.
|
|
12941
12692
|
*/
|
|
12942
12693
|
export declare class OneEuroFilter {
|
|
12943
12694
|
/**
|
|
@@ -14448,9 +14199,6 @@ export declare class OrbitControls extends Component implements ICameraControlle
|
|
|
14448
14199
|
trigger: "tap" | "start";
|
|
14449
14200
|
animation?: Animation_2;
|
|
14450
14201
|
private get target();
|
|
14451
|
-
onEnable(): void;
|
|
14452
|
-
onDisable(): void;
|
|
14453
|
-
onDestroy(): void;
|
|
14454
14202
|
onPointerEnter(): void;
|
|
14455
14203
|
onPointerExit(): void;
|
|
14456
14204
|
onPointerClick(args: PointerEventData): void;
|
|
@@ -14497,9 +14245,6 @@ export declare class OrbitControls extends Component implements ICameraControlle
|
|
|
14497
14245
|
toggleOnClick: boolean;
|
|
14498
14246
|
trigger: "tap" | "start";
|
|
14499
14247
|
ensureAudioSource(): void;
|
|
14500
|
-
onEnable(): void;
|
|
14501
|
-
onDisable(): void;
|
|
14502
|
-
onDestroy(): void;
|
|
14503
14248
|
onPointerEnter(): void;
|
|
14504
14249
|
onPointerExit(): void;
|
|
14505
14250
|
onPointerClick(args: PointerEventData): void;
|
|
@@ -15630,7 +15375,6 @@ export declare class OrbitControls extends Component implements ICameraControlle
|
|
|
15630
15375
|
*/
|
|
15631
15376
|
static get(object: Object3D | null | undefined, context: Context, isAnchor: boolean, anchor?: Object3D): ReflectionProbe | null;
|
|
15632
15377
|
private _texture;
|
|
15633
|
-
private _textureUrlInFlight?;
|
|
15634
15378
|
set texture(tex: Texture);
|
|
15635
15379
|
get texture(): Texture;
|
|
15636
15380
|
intensity: number;
|
|
@@ -19744,7 +19488,6 @@ export declare class OrbitControls extends Component implements ICameraControlle
|
|
|
19744
19488
|
private getTextOpts;
|
|
19745
19489
|
onEnable(): void;
|
|
19746
19490
|
onDisable(): void;
|
|
19747
|
-
onDestroy(): void;
|
|
19748
19491
|
private getAlignment;
|
|
19749
19492
|
private feedText;
|
|
19750
19493
|
private _didHandleTextRenderOnTop;
|
|
@@ -22936,6 +22679,12 @@ export declare namespace MaterialX {
|
|
|
22936
22679
|
}): Promise<import("three").Material | null>;
|
|
22937
22680
|
}
|
|
22938
22681
|
|
|
22682
|
+
declare global {
|
|
22683
|
+
interface HTMLElementTagNameMap {
|
|
22684
|
+
"needle-button": NeedleButtonElement;
|
|
22685
|
+
}
|
|
22686
|
+
}
|
|
22687
|
+
|
|
22939
22688
|
/**
|
|
22940
22689
|
* @internal
|
|
22941
22690
|
*/
|
|
@@ -22985,10 +22734,20 @@ export declare namespace InternalAttributeUtils {
|
|
|
22985
22734
|
}): false | string | null;
|
|
22986
22735
|
}
|
|
22987
22736
|
|
|
22988
|
-
|
|
22989
|
-
|
|
22990
|
-
|
|
22991
|
-
|
|
22737
|
+
|
|
22738
|
+
/**
|
|
22739
|
+
* @category Splines
|
|
22740
|
+
* @see {@link SplineContainer} for the main spline component that defines the path and knots
|
|
22741
|
+
*/
|
|
22742
|
+
export declare namespace SplineUtils {
|
|
22743
|
+
/**
|
|
22744
|
+
* Creates a SplineContainer from an array of points.
|
|
22745
|
+
* @param positions The positions of the knots.
|
|
22746
|
+
* @param closed Whether the spline is closed (the last knot connects to the first).
|
|
22747
|
+
* @param tension The tension of the spline. 0 is no tension, 1 is high tension (straight lines between knots). Default is 0.75.
|
|
22748
|
+
* @return The created SplineContainer component - add it to an Object3D to use it.
|
|
22749
|
+
*/
|
|
22750
|
+
function createFromPoints(positions: Vector3[], closed?: boolean, tension?: number): SplineContainer;
|
|
22992
22751
|
}
|
|
22993
22752
|
|
|
22994
22753
|
|
|
@@ -23131,22 +22890,6 @@ declare module 'three' {
|
|
|
23131
22890
|
}
|
|
23132
22891
|
}
|
|
23133
22892
|
|
|
23134
|
-
|
|
23135
|
-
/**
|
|
23136
|
-
* @category Splines
|
|
23137
|
-
* @see {@link SplineContainer} for the main spline component that defines the path and knots
|
|
23138
|
-
*/
|
|
23139
|
-
export declare namespace SplineUtils {
|
|
23140
|
-
/**
|
|
23141
|
-
* Creates a SplineContainer from an array of points.
|
|
23142
|
-
* @param positions The positions of the knots.
|
|
23143
|
-
* @param closed Whether the spline is closed (the last knot connects to the first).
|
|
23144
|
-
* @param tension The tension of the spline. 0 is no tension, 1 is high tension (straight lines between knots). Default is 0.75.
|
|
23145
|
-
* @return The created SplineContainer component - add it to an Object3D to use it.
|
|
23146
|
-
*/
|
|
23147
|
-
function createFromPoints(positions: Vector3[], closed?: boolean, tension?: number): SplineContainer;
|
|
23148
|
-
}
|
|
23149
|
-
|
|
23150
22893
|
declare global {
|
|
23151
22894
|
interface HTMLElementTagNameMap {
|
|
23152
22895
|
"needle-logo-element": NeedleLogoElement;
|