illutions 0.27.0 → 0.28.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/CHANGELOG.md +28 -1
- package/README.md +11 -0
- package/dist/main.d.ts +139 -75
- package/dist/main.min.cjs +1 -1
- package/dist/main.min.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,32 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.28.0
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- Added `Mesh3D.animMaterialColor()`, `Mesh3D.animMaterialNumeric()`, and `Mesh3D.setMaterialProperties()` as object-bound counterparts to the existing `Engine` material methods.
|
|
8
|
+
- Added the optional `needsUpdate` parameter to `Engine.animMaterialNumeric()`, `Engine.setMaterialProperties()`, `Mesh3D.animMaterialNumeric()`, and `Mesh3D.setMaterialProperties()` to request material recompilation.
|
|
9
|
+
- Added degree-based horizontal orbit constraints through `orbitCtrls.minAzimuthAngle` and `orbitCtrls.maxAzimuthAngle`.
|
|
10
|
+
- Added `ModelLoadedEvent` with `Model_Loaded` for a single model and numbered `Model1_Loaded`, `Model2_Loaded`, etc. events for progressive models.
|
|
11
|
+
- Added the `Model_Ready` event after the final progressive model variant has been applied and rendered.
|
|
12
|
+
- Added the exported `Collider` configuration and `Raycast.setColliders()` and `Raycast.clearColliders()` to configure named scene objects or `Obj3D` instances as occluders, pickables, or hidden colliders.
|
|
13
|
+
|
|
14
|
+
### Changed
|
|
15
|
+
|
|
16
|
+
- Replaced `Raycast.setOccluders()`, `Raycast.resetOccluders()`, `Raycast.trackPickables()`, and `Raycast.untrackPickables()` with the unified collider API.
|
|
17
|
+
- Renamed `Raycast.enable()` and `Raycast.disable()` to `Raycast.enablePickables()` and `Raycast.disablePickables()`.
|
|
18
|
+
- Renamed `raycast.occlInterval` to `raycast.occludeeInterval` and `raycast.occlMoveFactor` to `raycast.occlusionMoveFactor`.
|
|
19
|
+
- Changed progressive `ModelLoadingEvent` and `SceneRenderedEvent` types to numbered `Model1_Loading`, `Scene1_Rendered`, etc. events; unnumbered events remain available for a single model.
|
|
20
|
+
- Removed the `level` property from `ModelLoadingEvent`; the progressive model level is now identified by the event type.
|
|
21
|
+
- Removed the obsolete `fct` property from `ClipEvent`.
|
|
22
|
+
- Changed pointer raycasts so that registered occluders block pickables behind them.
|
|
23
|
+
|
|
24
|
+
### Fixed
|
|
25
|
+
|
|
26
|
+
- Corrected `CanvasPointerEvent` to expose `Canvas_Click`, `Canvas_Pointer_Enter`, and `Canvas_Pointer_Leave`.
|
|
27
|
+
- Added the already emitted `FpvCtrls_Disposed` event to `FpvCtrlsEvent`.
|
|
28
|
+
- Delayed the postprocessing noise check until `Model_Ready` so that postprocessing is not disabled before the final progressive model variant is rendered.
|
|
29
|
+
|
|
3
30
|
## 0.27.0
|
|
4
31
|
|
|
5
32
|
### Added
|
|
@@ -132,4 +159,4 @@
|
|
|
132
159
|
|
|
133
160
|
### Changed
|
|
134
161
|
|
|
135
|
-
- Added `cfg.audio.enable` to the configuration.
|
|
162
|
+
- Added `cfg.audio.enable` to the configuration.
|
package/README.md
CHANGED
|
@@ -3,6 +3,11 @@
|
|
|
3
3
|
illutions is a proprietary Web 3D engine for building interactive browser-based
|
|
4
4
|
3D applications with Three.js, XState, GSAP, Tweakpane and more.
|
|
5
5
|
|
|
6
|
+
## Gallery
|
|
7
|
+
|
|
8
|
+
Explore all illutions examples in the GitHub Gallery:
|
|
9
|
+
[https://github.com/illutions](https://github.com/illutions)
|
|
10
|
+
|
|
6
11
|
## Highlights
|
|
7
12
|
|
|
8
13
|
**Advanced post-processing**
|
|
@@ -11,6 +16,9 @@ Add configurable SSAO, SSR, FXAA and SMAA pipelines for WebGL and WebGPU, plus T
|
|
|
11
16
|
**Advanced animation control**
|
|
12
17
|
Coordinate GLTF animation clips, GSAP transitions, camera paths and custom dolly-rig camera workflows.
|
|
13
18
|
|
|
19
|
+
**Progressive model and HDRI loading**
|
|
20
|
+
Load ordered model levels and environment maps progressively for faster initial presentation and seamless quality upgrades.
|
|
21
|
+
|
|
14
22
|
**XState-powered application logic**
|
|
15
23
|
Model complex application flows as predictable and inspectable state machines with integrated XState 5 usage.
|
|
16
24
|
|
|
@@ -32,6 +40,9 @@ Use pointer-based raycasting and distance-aware spatial audio.
|
|
|
32
40
|
**Flexible environments**
|
|
33
41
|
Load HDR, EXR and texture environments with configurable rotation, intensity and background controls.
|
|
34
42
|
|
|
43
|
+
**Intelligent web markers**
|
|
44
|
+
Keep screen-space markers responsive with optimized occlusion checks, configurable occluders and movement-aware updates.
|
|
45
|
+
|
|
35
46
|
**Runtime insights and debugging**
|
|
36
47
|
Inspect runtime properties, FPS, CPU and renderer statistics with detailed state, event and console reporting.
|
|
37
48
|
|
package/dist/main.d.ts
CHANGED
|
@@ -108,6 +108,7 @@ export declare class App<TClasses extends Classes = {}> {
|
|
|
108
108
|
readonly audio: Audio_2;
|
|
109
109
|
private readonly compCtrls;
|
|
110
110
|
readonly engine: Engine;
|
|
111
|
+
private readonly lib;
|
|
111
112
|
readonly envCtrls: EnvCtrls;
|
|
112
113
|
readonly events: Events;
|
|
113
114
|
readonly orbitCtrls: OrbitCtrls;
|
|
@@ -449,7 +450,7 @@ export declare interface CanvasKeyEvent {
|
|
|
449
450
|
/** @event Fired when the user uses the pointer on the canvas and triggers the corresponding XState event. */
|
|
450
451
|
export declare interface CanvasPointerEvent {
|
|
451
452
|
/** Identifies this event type. */
|
|
452
|
-
type: 'Canvas_Click' | '
|
|
453
|
+
type: 'Canvas_Click' | 'Canvas_Pointer_Enter' | 'Canvas_Pointer_Leave';
|
|
453
454
|
/** Native pointer event from the canvas interaction. */
|
|
454
455
|
event: PointerEvent;
|
|
455
456
|
}
|
|
@@ -516,14 +517,24 @@ export declare interface ClipEvent {
|
|
|
516
517
|
type: 'Clip_Start' | 'Clip_Complete' | 'Clip_Cancel' | 'Clip_Fade_Start' | 'Clip_Fade_Complete' | 'Clip_Speed_Start' | 'Clip_Speed_Complete';
|
|
517
518
|
/** The name of the affected `THREE.AnimationClip`. */
|
|
518
519
|
clipName: string;
|
|
519
|
-
/** The name of the calling method. */
|
|
520
|
-
fct: string;
|
|
521
520
|
/** The associated animation action, when available. */
|
|
522
521
|
action?: THREE_TYPE.AnimationAction;
|
|
523
522
|
/** Whether the clip weight is fading in or out. */
|
|
524
523
|
fadeMode?: ActionFadeMode;
|
|
525
524
|
}
|
|
526
525
|
|
|
526
|
+
/** Defines how a scene object participates in raycasting. */
|
|
527
|
+
export declare interface Collider {
|
|
528
|
+
/** Scene object or scene-object name used for raycasting. */
|
|
529
|
+
obj: Obj3D | string;
|
|
530
|
+
/** Hides the object while it is registered as a collider. */
|
|
531
|
+
hide?: boolean;
|
|
532
|
+
/** Allows the object to occlude tracked occludees and pickables. */
|
|
533
|
+
occluder?: boolean;
|
|
534
|
+
/** Allows the object to emit pointer events. */
|
|
535
|
+
pickable?: boolean;
|
|
536
|
+
}
|
|
537
|
+
|
|
527
538
|
declare type ColorNode = THREE_WEBGPU_TYPE.Node<'vec4'>;
|
|
528
539
|
|
|
529
540
|
/**
|
|
@@ -673,6 +684,7 @@ export declare class Engine {
|
|
|
673
684
|
/* Excluded from this release type: scene */
|
|
674
685
|
private readonly cam3D;
|
|
675
686
|
private readonly events;
|
|
687
|
+
private readonly lib;
|
|
676
688
|
private readonly modules;
|
|
677
689
|
private readonly objs3D;
|
|
678
690
|
private readonly cfg;
|
|
@@ -705,6 +717,7 @@ export declare class Engine {
|
|
|
705
717
|
private hemisphereLight;
|
|
706
718
|
private powerMode;
|
|
707
719
|
private postNoise;
|
|
720
|
+
private postNoiseCheck;
|
|
708
721
|
private dTs;
|
|
709
722
|
private dT;
|
|
710
723
|
private dTFrameMax;
|
|
@@ -787,7 +800,7 @@ export declare class Engine {
|
|
|
787
800
|
*
|
|
788
801
|
* {@link AnimEvent}
|
|
789
802
|
*/
|
|
790
|
-
animMaterialColor({ mesh,
|
|
803
|
+
animMaterialColor({ mesh, ...params }: {
|
|
791
804
|
mesh: string;
|
|
792
805
|
duration?: number;
|
|
793
806
|
ease?: string;
|
|
@@ -803,6 +816,7 @@ export declare class Engine {
|
|
|
803
816
|
* @param params.infinite - If `true`, the animation loops infinitely. Default: **false**
|
|
804
817
|
* @param params.duration - The animation duration in seconds. Default: **0**
|
|
805
818
|
* @param params.ease - The easing function name for GSAP. Default: **'power1.inOut'**
|
|
819
|
+
* @param params.needsUpdate - Requests one material recompilation when the animation starts. Default: **false**
|
|
806
820
|
*
|
|
807
821
|
* @remarks
|
|
808
822
|
* Additional properties of `params` can specify one or more material numeric fields to animate (e.g. `metalness`, `roughness`, `opacity`, ...) with their target numeric values. Only the **first** provided
|
|
@@ -812,12 +826,13 @@ export declare class Engine {
|
|
|
812
826
|
*
|
|
813
827
|
* {@link AnimFadeEvent}
|
|
814
828
|
*/
|
|
815
|
-
animMaterialNumeric({ mesh,
|
|
829
|
+
animMaterialNumeric({ mesh, needsUpdate, ...params }: {
|
|
816
830
|
mesh: string;
|
|
817
831
|
startValue?: number | null;
|
|
818
832
|
infinite?: boolean;
|
|
819
833
|
duration?: number;
|
|
820
834
|
ease?: string;
|
|
835
|
+
needsUpdate?: boolean;
|
|
821
836
|
[key: string]: any;
|
|
822
837
|
}): void;
|
|
823
838
|
private calcEaseArea;
|
|
@@ -990,13 +1005,15 @@ export declare class Engine {
|
|
|
990
1005
|
*
|
|
991
1006
|
* @param params - Parameter object for setting material properties.
|
|
992
1007
|
* @param params.obj - The name of the mesh whose material properties should be modified.
|
|
1008
|
+
* @param params.needsUpdate - Requests material recompilation after applying the properties. Default: **false**
|
|
993
1009
|
*
|
|
994
1010
|
* @remarks
|
|
995
1011
|
* Additional properties of `params` can define one or more material fields to update (e.g. `color`, `roughness`, `metalness`, `map`, `emissiveMap`, ...), each with its target value. Texture paths provided
|
|
996
1012
|
* as strings are loaded asynchronously and assigned to the corresponding material slots. Unsupported or mismatched property types are ignored with a warning in debug mode.
|
|
997
1013
|
*/
|
|
998
|
-
setMaterialProperties({ obj, ...props }: {
|
|
1014
|
+
setMaterialProperties({ obj, needsUpdate, ...props }: {
|
|
999
1015
|
obj: string;
|
|
1016
|
+
needsUpdate?: boolean;
|
|
1000
1017
|
[key: string]: any;
|
|
1001
1018
|
}): void;
|
|
1002
1019
|
/* Excluded from this release type: setPostWebGl */
|
|
@@ -1204,7 +1221,9 @@ export declare class Events {
|
|
|
1204
1221
|
/* Excluded from this release type: audioLoaded */
|
|
1205
1222
|
/* Excluded from this release type: clip */
|
|
1206
1223
|
/* Excluded from this release type: modelError */
|
|
1224
|
+
/* Excluded from this release type: modelLoaded */
|
|
1207
1225
|
/* Excluded from this release type: modelLoading */
|
|
1226
|
+
/* Excluded from this release type: sceneRendered */
|
|
1208
1227
|
/**
|
|
1209
1228
|
* Sends an event to the state machine and optionally logs a debug message to the console.
|
|
1210
1229
|
* @param event - Any XState event object (must include a `type` property) to be dispatched to the actor.
|
|
@@ -1392,7 +1411,7 @@ export declare interface FpvCtrlsCfg {
|
|
|
1392
1411
|
/** @event Fired when an `FpvCtrls` event occurs and triggers the corresponding XState event. */
|
|
1393
1412
|
export declare interface FpvCtrlsEvent {
|
|
1394
1413
|
/** Identifies this event type. */
|
|
1395
|
-
type: 'FpvCtrls_Disabled' | 'FpvCtrls_Enabled' | 'FpvCtrls_Lock' | 'FpvCtrls_Unlock';
|
|
1414
|
+
type: 'FpvCtrls_Disabled' | 'FpvCtrls_Disposed' | 'FpvCtrls_Enabled' | 'FpvCtrls_Lock' | 'FpvCtrls_Unlock';
|
|
1396
1415
|
}
|
|
1397
1416
|
|
|
1398
1417
|
/**
|
|
@@ -1522,6 +1541,8 @@ export declare interface InfoBoxCfg {
|
|
|
1522
1541
|
logsPerSecond: number;
|
|
1523
1542
|
}
|
|
1524
1543
|
|
|
1544
|
+
/* Excluded from this release type: Lib */
|
|
1545
|
+
|
|
1525
1546
|
/**
|
|
1526
1547
|
* The `Light3D` class represents a managed light source.
|
|
1527
1548
|
* @category 3D Objects
|
|
@@ -1639,7 +1660,46 @@ export declare class Mesh3D extends Obj3D {
|
|
|
1639
1660
|
groundReflector: ReflectorForSSRPass | null;
|
|
1640
1661
|
/** Objects that participate in the screen-space reflection (SSR) effect. These objects are used for reflective rendering in the scene. */
|
|
1641
1662
|
reflectivesSSR: THREE_TYPE.Object3D[];
|
|
1663
|
+
/* Excluded from this release type: lib */
|
|
1642
1664
|
/* Excluded from this release type: __constructor */
|
|
1665
|
+
/**
|
|
1666
|
+
* Animates one or more color properties of this mesh's material.
|
|
1667
|
+
* @param params - Animation parameters and target material color properties such as `color` or `emissive`.
|
|
1668
|
+
* @param params.duration - Animation duration in seconds. Default: **0**
|
|
1669
|
+
* @param params.ease - GSAP easing function name. Default: **'power1.inOut'**
|
|
1670
|
+
*/
|
|
1671
|
+
animMaterialColor(params: {
|
|
1672
|
+
duration?: number;
|
|
1673
|
+
ease?: string;
|
|
1674
|
+
} & {
|
|
1675
|
+
[key: string]: string | number | THREE_TYPE.Color;
|
|
1676
|
+
}): void;
|
|
1677
|
+
/**
|
|
1678
|
+
* Animates the first numeric material property passed for this mesh.
|
|
1679
|
+
* @param params - Animation parameters and the target numeric material property.
|
|
1680
|
+
* @param params.startValue - Starting value. Defaults to the current material value.
|
|
1681
|
+
* @param params.infinite - Whether the animation repeats indefinitely. Default: **false**
|
|
1682
|
+
* @param params.duration - Animation duration in seconds. Default: **0**
|
|
1683
|
+
* @param params.ease - GSAP easing function name. Default: **'power1.inOut'**
|
|
1684
|
+
* @param params.needsUpdate - Requests one material recompilation when the animation starts. Default: **false**
|
|
1685
|
+
*/
|
|
1686
|
+
animMaterialNumeric({ needsUpdate, ...params }: {
|
|
1687
|
+
startValue?: number | null;
|
|
1688
|
+
infinite?: boolean;
|
|
1689
|
+
duration?: number;
|
|
1690
|
+
ease?: string;
|
|
1691
|
+
needsUpdate?: boolean;
|
|
1692
|
+
[key: string]: any;
|
|
1693
|
+
}): void;
|
|
1694
|
+
/**
|
|
1695
|
+
* Updates one or more material properties of this mesh.
|
|
1696
|
+
* @param properties - Material properties to update. Texture paths are supported for `map` and `emissiveMap`.
|
|
1697
|
+
* @param properties.needsUpdate - Requests material recompilation after applying the properties. Default: **false**
|
|
1698
|
+
*/
|
|
1699
|
+
setMaterialProperties({ needsUpdate, ...properties }: {
|
|
1700
|
+
needsUpdate?: boolean;
|
|
1701
|
+
[key: string]: any;
|
|
1702
|
+
}): void;
|
|
1643
1703
|
/**
|
|
1644
1704
|
* Called for each traversed mesh during GLTF parsing. Stores the current `THREE.Mesh` in `this.obj`.
|
|
1645
1705
|
* @param objGltf - The currently traversed mesh.
|
|
@@ -1717,14 +1777,24 @@ export declare interface ModelErrorEvent {
|
|
|
1717
1777
|
error: Error;
|
|
1718
1778
|
}
|
|
1719
1779
|
|
|
1780
|
+
/** @event Fired after a model asset has finished loading and parsing. */
|
|
1781
|
+
export declare interface ModelLoadedEvent {
|
|
1782
|
+
/** Identifies the loaded model. */
|
|
1783
|
+
type: 'Model_Loaded' | `Model${number}_Loaded`;
|
|
1784
|
+
}
|
|
1785
|
+
|
|
1720
1786
|
/** @event Fired while model assets are loading and triggers the corresponding XState event. */
|
|
1721
1787
|
export declare interface ModelLoadingEvent {
|
|
1722
|
-
/** Identifies
|
|
1723
|
-
type: 'Model_Loading'
|
|
1788
|
+
/** Identifies the loading model. */
|
|
1789
|
+
type: 'Model_Loading' | `Model${number}_Loading`;
|
|
1724
1790
|
/** Loading progress in percent (0-100). */
|
|
1725
1791
|
loading: number;
|
|
1726
|
-
|
|
1727
|
-
|
|
1792
|
+
}
|
|
1793
|
+
|
|
1794
|
+
/** @event Fired after the final progressive model variant has been applied and rendered and triggers the corresponding XState event. */
|
|
1795
|
+
export declare interface ModelReadyEvent {
|
|
1796
|
+
/** Identifies this event type. */
|
|
1797
|
+
type: 'Model_Ready';
|
|
1728
1798
|
}
|
|
1729
1799
|
|
|
1730
1800
|
declare class Modules {
|
|
@@ -1980,6 +2050,12 @@ export declare interface Obj3DVisibleEvent {
|
|
|
1980
2050
|
|
|
1981
2051
|
export declare type Objs3D = Cam3D | Light3D | Mesh3D | Obj3D;
|
|
1982
2052
|
|
|
2053
|
+
declare interface OccludeeState {
|
|
2054
|
+
obj: THREE_TYPE.Object3D;
|
|
2055
|
+
needsCheck: boolean;
|
|
2056
|
+
visible: boolean;
|
|
2057
|
+
}
|
|
2058
|
+
|
|
1983
2059
|
/**
|
|
1984
2060
|
* Integrates three.js OrbitControls directly in the engine's render loop, supporting runtime updates and dynamic enabling/disabling.
|
|
1985
2061
|
* @category Core
|
|
@@ -2081,6 +2157,11 @@ export declare interface OrbitCtrlsCfg {
|
|
|
2081
2157
|
* @default false
|
|
2082
2158
|
*/
|
|
2083
2159
|
load: boolean;
|
|
2160
|
+
/**
|
|
2161
|
+
* Maximum allowed horizontal orbit angle in degrees.
|
|
2162
|
+
* @default Infinity
|
|
2163
|
+
*/
|
|
2164
|
+
maxAzimuthAngle: number;
|
|
2084
2165
|
/**
|
|
2085
2166
|
* Maximum allowed distance between the camera and the target.
|
|
2086
2167
|
* @default Infinity
|
|
@@ -2091,6 +2172,11 @@ export declare interface OrbitCtrlsCfg {
|
|
|
2091
2172
|
* @default 180
|
|
2092
2173
|
*/
|
|
2093
2174
|
maxPolarAngle: number;
|
|
2175
|
+
/**
|
|
2176
|
+
* Minimum allowed horizontal orbit angle in degrees.
|
|
2177
|
+
* @default -Infinity
|
|
2178
|
+
*/
|
|
2179
|
+
minAzimuthAngle: number;
|
|
2094
2180
|
/**
|
|
2095
2181
|
* Minimum allowed distance between the camera and the target.
|
|
2096
2182
|
* @default 0
|
|
@@ -2168,9 +2254,7 @@ export declare interface ProgressBarHiddenEvent {
|
|
|
2168
2254
|
}
|
|
2169
2255
|
|
|
2170
2256
|
/**
|
|
2171
|
-
*
|
|
2172
|
-
* the application state. The class dynamically enables or disables pointer listeners depending on the number of tracked objects. It also handles pointer events (click, down, up, move, enter, leave) for the
|
|
2173
|
-
* intersected 3D objects.
|
|
2257
|
+
* Manages collider-based occlusion and pointer picking in a `THREE.Scene`. Collider roles determine which objects block rays, emit pointer events, or remain hidden while participating in raycasting.
|
|
2174
2258
|
* @category Core
|
|
2175
2259
|
*/
|
|
2176
2260
|
export declare class Raycast {
|
|
@@ -2178,19 +2262,23 @@ export declare class Raycast {
|
|
|
2178
2262
|
private readonly canvas;
|
|
2179
2263
|
private readonly cfg;
|
|
2180
2264
|
private readonly engine;
|
|
2265
|
+
private readonly events;
|
|
2181
2266
|
private readonly objs3D;
|
|
2182
2267
|
private raycasterPick;
|
|
2183
2268
|
private raycasterVisible;
|
|
2269
|
+
private colliders;
|
|
2270
|
+
private objsColliders;
|
|
2184
2271
|
private objsOccluders;
|
|
2185
|
-
private readonly
|
|
2186
|
-
private
|
|
2272
|
+
private readonly objsOccludees;
|
|
2273
|
+
private hasPickables;
|
|
2274
|
+
private useSceneAsOccluder;
|
|
2187
2275
|
private objActive;
|
|
2188
2276
|
private objCandidate;
|
|
2189
2277
|
private closestObjCounter;
|
|
2190
|
-
private
|
|
2191
|
-
private
|
|
2192
|
-
private
|
|
2193
|
-
private
|
|
2278
|
+
private indexOccludeeNext;
|
|
2279
|
+
private pickablesEnabled;
|
|
2280
|
+
private timeOccludeeNext;
|
|
2281
|
+
private callbackOccludees;
|
|
2194
2282
|
private callbackPointerHover;
|
|
2195
2283
|
private listenerClick;
|
|
2196
2284
|
private listenerCancel;
|
|
@@ -2205,14 +2293,19 @@ export declare class Raycast {
|
|
|
2205
2293
|
private dirCamToObj;
|
|
2206
2294
|
private posNdcPointer;
|
|
2207
2295
|
/* Excluded from this release type: __constructor */
|
|
2208
|
-
private
|
|
2209
|
-
/**
|
|
2210
|
-
|
|
2211
|
-
/**
|
|
2212
|
-
|
|
2296
|
+
private checkOccludeeVisible;
|
|
2297
|
+
/** Removes all colliders and restores scene objects hidden by `setColliders()`. */
|
|
2298
|
+
clearColliders(): void;
|
|
2299
|
+
/** Enables pickable raycasting and its pointer event listeners. */
|
|
2300
|
+
enablePickables(): void;
|
|
2301
|
+
/** Disables pickable raycasting without removing the collider configuration. */
|
|
2302
|
+
disablePickables(): void;
|
|
2303
|
+
private getColliderState;
|
|
2304
|
+
private getPickableHit;
|
|
2213
2305
|
private getObjAtPointer;
|
|
2214
|
-
private
|
|
2215
|
-
/* Excluded from this release type:
|
|
2306
|
+
private emitPointerEvent;
|
|
2307
|
+
/* Excluded from this release type: getOccludeeState */
|
|
2308
|
+
/* Excluded from this release type: getOccludeeVisible */
|
|
2216
2309
|
private onCanvasClick;
|
|
2217
2310
|
private onCanvasPointerLeave;
|
|
2218
2311
|
private onCanvasPointerMove;
|
|
@@ -2220,49 +2313,20 @@ export declare class Raycast {
|
|
|
2220
2313
|
private onCanvasPointerDown;
|
|
2221
2314
|
private onCanvasPointerExit;
|
|
2222
2315
|
private onCanvasPointerUp;
|
|
2223
|
-
private onPointerEnter;
|
|
2224
|
-
private onPointerLeave;
|
|
2225
|
-
private onPointerMove;
|
|
2226
|
-
/* Excluded from this release type: resetOcclState */
|
|
2227
|
-
/** Removes the explicit occlusion-object restriction so that all scene objects are checked again. */
|
|
2228
|
-
resetOccluders(): void;
|
|
2229
|
-
/**
|
|
2230
|
-
* Restricts occlusion raycasts to the specified scene objects. Without an explicit restriction, all scene objects are checked.
|
|
2231
|
-
*
|
|
2232
|
-
* @param params - Parameter object.
|
|
2233
|
-
* @param params.objs3D - The `Obj3D` instances that may block visibility.
|
|
2234
|
-
*/
|
|
2235
|
-
setOccluders({ objs3D }: {
|
|
2236
|
-
objs3D: Obj3D[];
|
|
2237
|
-
}): void;
|
|
2238
|
-
/* Excluded from this release type: trackOccl */
|
|
2239
|
-
/**
|
|
2240
|
-
* Begins tracking a list of scene objects for pointer intersection detection. If the raycaster is not yet listening for pointer movements, this method automatically attaches pointer event listeners
|
|
2241
|
-
* (`pointermove`, `click`, `pointercancel`, `pointerdown`, `pointerleave`, `pointerup`).
|
|
2242
|
-
*
|
|
2243
|
-
* @param params - Parameter object.
|
|
2244
|
-
* @param params.objs3D - The `Obj3D` instances to track.
|
|
2245
|
-
*/
|
|
2246
|
-
trackPickables({ objs3D }: {
|
|
2247
|
-
objs3D: Obj3D[];
|
|
2248
|
-
}): void;
|
|
2249
|
-
/* Excluded from this release type: untrackOccl */
|
|
2250
2316
|
/**
|
|
2251
|
-
*
|
|
2252
|
-
*
|
|
2253
|
-
* @param params - Parameter object.
|
|
2254
|
-
* @param params.objs3D - The `Obj3D` instances to untrack.
|
|
2317
|
+
* Replaces the current raycast colliders. The complete scene is used for occlusion until this method or `clearColliders()` is called for the first time.
|
|
2318
|
+
* @param colliders - Scene objects and their occluder, pickable, and visibility roles.
|
|
2255
2319
|
*/
|
|
2256
|
-
|
|
2257
|
-
|
|
2258
|
-
|
|
2320
|
+
setColliders(colliders: Collider[]): void;
|
|
2321
|
+
/* Excluded from this release type: trackOccludee */
|
|
2322
|
+
/* Excluded from this release type: untrackOccludee */
|
|
2259
2323
|
/**
|
|
2260
2324
|
* Registers and executes a low-level extension function with access to the public `Raycast` API.
|
|
2261
2325
|
* @param extension - Function that receives the current `Raycast` instance and can use its public members and methods.
|
|
2262
2326
|
* @remarks This method is intended for advanced custom integrations where developers need direct access to the engine instance. The extension is executed once immediately when `use()` is called.
|
|
2263
2327
|
*/
|
|
2264
2328
|
use(extension: (raycast: Raycast) => void): void;
|
|
2265
|
-
private
|
|
2329
|
+
private updateOccludees;
|
|
2266
2330
|
private updatePointerHover;
|
|
2267
2331
|
private updatePointerPosition;
|
|
2268
2332
|
}
|
|
@@ -2272,16 +2336,6 @@ export declare class Raycast {
|
|
|
2272
2336
|
* @category Cfg
|
|
2273
2337
|
*/
|
|
2274
2338
|
export declare interface RaycastCfg {
|
|
2275
|
-
/**
|
|
2276
|
-
* Time in milliseconds over which all pending occlusion checks are distributed once. A value of `0` processes all pending checks in one frame.
|
|
2277
|
-
* @default 0
|
|
2278
|
-
*/
|
|
2279
|
-
occlInterval: number;
|
|
2280
|
-
/**
|
|
2281
|
-
* Relative movement threshold used to request a new occlusion check. The value is multiplied by the current distance between the camera and the tracked object. A value of `0` reacts to every position change.
|
|
2282
|
-
* @default 0.01
|
|
2283
|
-
*/
|
|
2284
|
-
occlMoveFactor: number;
|
|
2285
2339
|
/**
|
|
2286
2340
|
* Circle radius around the pointer in pixels.
|
|
2287
2341
|
* @default 10
|
|
@@ -2297,6 +2351,16 @@ export declare interface RaycastCfg {
|
|
|
2297
2351
|
* @default 5
|
|
2298
2352
|
*/
|
|
2299
2353
|
countClosestObjs: number;
|
|
2354
|
+
/**
|
|
2355
|
+
* Time in milliseconds over which all pending occludee checks are distributed once. A value of `0` processes all pending checks in one frame.
|
|
2356
|
+
* @default 0
|
|
2357
|
+
*/
|
|
2358
|
+
occludeeInterval: number;
|
|
2359
|
+
/**
|
|
2360
|
+
* Relative movement threshold used to request a new occlusion check. The value is multiplied by the current distance between the camera and the tracked occludee. A value of `0` reacts to every position change.
|
|
2361
|
+
* @default 0.01
|
|
2362
|
+
*/
|
|
2363
|
+
occlusionMoveFactor: number;
|
|
2300
2364
|
}
|
|
2301
2365
|
|
|
2302
2366
|
/**
|
|
@@ -2436,10 +2500,10 @@ export declare interface SceneReadyEvent {
|
|
|
2436
2500
|
type: 'Scene_Ready';
|
|
2437
2501
|
}
|
|
2438
2502
|
|
|
2439
|
-
/** @event Fired after the scene has been rendered for the first time and triggers the corresponding XState event. */
|
|
2503
|
+
/** @event Fired after the scene or a progressive scene variant has been rendered for the first time and triggers the corresponding XState event. */
|
|
2440
2504
|
export declare interface SceneRenderedEvent {
|
|
2441
|
-
/** Identifies
|
|
2442
|
-
type: 'Scene_Rendered'
|
|
2505
|
+
/** Identifies the rendered scene or progressive scene variant. */
|
|
2506
|
+
type: 'Scene_Rendered' | `Scene${number}_Rendered`;
|
|
2443
2507
|
}
|
|
2444
2508
|
|
|
2445
2509
|
/**
|