@galacean/engine-core 1.1.0-beta.19 → 1.1.0-beta.20

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.
Files changed (71) hide show
  1. package/dist/main.js +174 -91
  2. package/dist/main.js.map +1 -1
  3. package/dist/miniprogram.js +174 -91
  4. package/dist/module.js +174 -91
  5. package/dist/module.js.map +1 -1
  6. package/package.json +3 -3
  7. package/types/2d/atlas/types.d.ts +3 -0
  8. package/types/asset/AssetPromise.d.ts +1 -0
  9. package/types/mesh/SubModelMesh.d.ts +260 -0
  10. package/types/particle/modules/MainModule.d.ts +0 -1
  11. package/types/xr/IXRDevice.d.ts +26 -0
  12. package/types/xr/XRManager.d.ts +89 -24
  13. package/types/xr/XRModule.d.ts +126 -0
  14. package/types/xr/component/XRPoseDriver.d.ts +5 -5
  15. package/types/xr/component/XRTrackingMode.d.ts +15 -0
  16. package/types/xr/component/trackable/XRAnchor.d.ts +4 -0
  17. package/types/xr/component/trackable/XRImage.d.ts +6 -0
  18. package/types/xr/component/trackable/XRPlane.d.ts +7 -0
  19. package/types/xr/component/trackable/XRTracked.d.ts +13 -0
  20. package/types/xr/feature/XRFeatureManager.d.ts +65 -0
  21. package/types/xr/feature/XRFeatureType.d.ts +17 -0
  22. package/types/xr/feature/XRPlatformFeature.d.ts +17 -0
  23. package/types/xr/feature/camera/IXRCameraDescriptor.d.ts +7 -0
  24. package/types/xr/feature/camera/XRCameraManager.d.ts +35 -0
  25. package/types/xr/feature/camera/XRPlatformCamera.d.ts +5 -0
  26. package/types/xr/feature/hitTest/XRHItTestType.d.ts +16 -0
  27. package/types/xr/feature/hitTest/XRHitTestManager.d.ts +38 -0
  28. package/types/xr/feature/movementTracking/IXRMovementTrackingDescriptor.d.ts +9 -0
  29. package/types/xr/feature/movementTracking/XRMovementTrackingManager.d.ts +8 -0
  30. package/types/xr/feature/movementTracking/XRMovementTrackingMode.d.ts +5 -0
  31. package/types/xr/feature/movementTracking/XRPlatformMovementTracking.d.ts +10 -0
  32. package/types/xr/feature/trackable/XRRequestTrackingState.d.ts +11 -0
  33. package/types/xr/feature/trackable/XRTrackableManager.d.ts +41 -0
  34. package/types/xr/feature/trackable/XRTrackablePlatformFeature.d.ts +29 -0
  35. package/types/xr/feature/trackable/XRTracked.d.ts +9 -0
  36. package/types/xr/feature/trackable/XRTrackedUpdateFlag.d.ts +11 -0
  37. package/types/xr/feature/trackable/XRTrackingState.d.ts +11 -0
  38. package/types/xr/feature/trackable/anchor/IXRAnchorTrackingDescriptor.d.ts +8 -0
  39. package/types/xr/feature/trackable/anchor/XRAnchorTrackingManager.d.ts +22 -0
  40. package/types/xr/feature/trackable/anchor/XRAnchorTrackingMode.d.ts +4 -0
  41. package/types/xr/feature/trackable/anchor/XRPlatformAnchorTracking.d.ts +12 -0
  42. package/types/xr/feature/trackable/anchor/XRRequestTrackingAnchor.d.ts +10 -0
  43. package/types/xr/feature/trackable/image/IXRImageTrackingDescriptor.d.ts +5 -0
  44. package/types/xr/feature/trackable/image/XRImageTrackingManager.d.ts +33 -0
  45. package/types/xr/feature/trackable/image/XRPlatformImageTracking.d.ts +14 -0
  46. package/types/xr/feature/trackable/image/XRReferenceImage.d.ts +14 -0
  47. package/types/xr/feature/trackable/image/XRRequestTrackingImage.d.ts +11 -0
  48. package/types/xr/feature/trackable/image/XRTrackedImage.d.ts +5 -0
  49. package/types/xr/feature/trackable/plane/IXRPlaneTrackingDescriptor.d.ts +9 -0
  50. package/types/xr/feature/trackable/plane/XRPlaneDetectionMode.d.ts +13 -0
  51. package/types/xr/feature/trackable/plane/XRPlaneMode.d.ts +13 -0
  52. package/types/xr/feature/trackable/plane/XRPlaneTrackingManager.d.ts +14 -0
  53. package/types/xr/feature/trackable/plane/XRPlatformPlaneTracking.d.ts +11 -0
  54. package/types/xr/feature/trackable/plane/XRRequestTrackingPlane.d.ts +11 -0
  55. package/types/xr/feature/trackable/plane/XRTrackedPlane.d.ts +11 -0
  56. package/types/xr/index.d.ts +39 -18
  57. package/types/xr/input/XRCamera.d.ts +28 -0
  58. package/types/xr/input/XRController.d.ts +38 -0
  59. package/types/xr/input/XRControllerPoseMode.d.ts +9 -0
  60. package/types/xr/input/XRInput.d.ts +14 -0
  61. package/types/xr/input/XRInputButton.d.ts +19 -0
  62. package/types/xr/input/XRInputEvent.d.ts +24 -0
  63. package/types/xr/input/XRInputEventType.d.ts +11 -0
  64. package/types/xr/input/XRInputManager.d.ts +58 -0
  65. package/types/xr/input/XRInputType.d.ts +23 -0
  66. package/types/xr/input/XRTargetRayMode.d.ts +12 -0
  67. package/types/xr/input/XRTrackedUpdateFlag.d.ts +11 -0
  68. package/types/xr/input/XRTrackingState.d.ts +11 -0
  69. package/types/xr/session/XRSessionManager.d.ts +76 -0
  70. package/types/xr/session/XRSessionState.d.ts +13 -0
  71. package/types/xr/session/XRSessionType.d.ts +7 -0
@@ -0,0 +1,65 @@
1
+ import { IXRFeatureDescriptor, IXRFeatureManager, IXRFeature, IXRSession, IXRFrame } from "@galacean/engine-design";
2
+ import { Engine } from "../../Engine";
3
+ /**
4
+ * The base class of XR feature manager.
5
+ */
6
+ export declare abstract class XRFeatureManager<TDescriptor extends IXRFeatureDescriptor = IXRFeatureDescriptor, TFeature extends IXRFeature = IXRFeature> implements IXRFeatureManager {
7
+ protected _engine: Engine;
8
+ _feature: TFeature;
9
+ protected _descriptor: TDescriptor;
10
+ protected _enabled: boolean;
11
+ /**
12
+ * Return the descriptor of the feature.
13
+ */
14
+ get descriptor(): TDescriptor;
15
+ set descriptor(value: TDescriptor);
16
+ /**
17
+ * Returns whether the feature is enabled.
18
+ */
19
+ get enabled(): boolean;
20
+ set enabled(value: boolean);
21
+ /**
22
+ * Returns whether the feature is supported.
23
+ * @param descriptor - The descriptor of the feature
24
+ * @returns The promise of the feature
25
+ */
26
+ isSupported(descriptor?: IXRFeatureDescriptor): Promise<void>;
27
+ /**
28
+ * Initialize the feature.
29
+ * @returns The promise of the feature
30
+ */
31
+ initialize(): Promise<void>;
32
+ /**
33
+ * Called when be enabled.
34
+ */
35
+ onEnable(): void;
36
+ /**
37
+ * Called when be disabled.
38
+ */
39
+ onDisable(): void;
40
+ /**
41
+ * Called when xr frame is updated.
42
+ */
43
+ onUpdate(session: IXRSession, frame: IXRFrame): void;
44
+ /**
45
+ * Called when the session is initialized.
46
+ */
47
+ onSessionInit(): void;
48
+ /**
49
+ * Called when session starts.
50
+ */
51
+ onSessionStart(): void;
52
+ /**
53
+ * Called when the session is stopped.
54
+ */
55
+ onSessionStop(): void;
56
+ /**
57
+ * Called when the session is destroyed.
58
+ */
59
+ onSessionDestroy(): void;
60
+ /**
61
+ * Called when the xr module is destroyed.
62
+ */
63
+ onDestroy(): void;
64
+ constructor(_engine: Engine);
65
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Enum for XR feature type.
3
+ */
4
+ export declare enum XRFeatureType {
5
+ /** Movement tracking */
6
+ MovementTracking = 0,
7
+ /** Control camera parameters such as focal length, etc.*/
8
+ CameraDevice = 1,
9
+ /** Anchor tracking */
10
+ AnchorTracking = 2,
11
+ /** Image tracking */
12
+ ImageTracking = 3,
13
+ /** Plane tracking */
14
+ PlaneTracking = 4,
15
+ /** Hit test */
16
+ HitTest = 5
17
+ }
@@ -0,0 +1,17 @@
1
+ import { IXRPlatformFeature, IXRFeatureDescriptor } from "@galacean/engine-design";
2
+ import { Engine } from "../../Engine";
3
+ /**
4
+ * The base class of XR platform feature.
5
+ */
6
+ export declare abstract class XRPlatformFeature implements IXRPlatformFeature {
7
+ protected _engine: Engine;
8
+ constructor(engine: Engine);
9
+ _isSupported(descriptor: IXRFeatureDescriptor): Promise<void>;
10
+ _initialize(descriptor?: IXRFeatureDescriptor): Promise<void>;
11
+ _onUpdate(): void;
12
+ _onDestroy(): void;
13
+ _onSessionInit(): void;
14
+ _onSessionStart(): void;
15
+ _onSessionStop(): void;
16
+ _onSessionDestroy(): void;
17
+ }
@@ -0,0 +1,7 @@
1
+ import { Camera } from "../../../Camera";
2
+ import { IXRFeatureDescriptor } from "@galacean/engine-design";
3
+ export interface IXRCameraDescriptor extends IXRFeatureDescriptor {
4
+ camera?: Camera;
5
+ leftCamera?: Camera;
6
+ rightCamera?: Camera;
7
+ }
@@ -0,0 +1,35 @@
1
+ import { Camera } from "../../../Camera";
2
+ import { Engine } from "../../../Engine";
3
+ import { XRInputType } from "../../input/XRInputType";
4
+ import { XRFeatureManager } from "../XRFeatureManager";
5
+ import { IXRCameraDescriptor } from "./IXRCameraDescriptor";
6
+ export declare class XRCameraManager extends XRFeatureManager<IXRCameraDescriptor> {
7
+ private _inputManager;
8
+ private _sessionManager;
9
+ get enabled(): boolean;
10
+ set enabled(value: boolean);
11
+ /**
12
+ * Attach the camera to the specified input type.
13
+ * @param type - The input type
14
+ * @param camera - The camera to be attached
15
+ */
16
+ attachCamera(type: XRInputType, camera: Camera): void;
17
+ /**
18
+ * Detach the camera from the specified input type.
19
+ * @param type - The input type
20
+ * @returns The camera that was detached
21
+ */
22
+ detachCamera(type: XRInputType): Camera;
23
+ /**
24
+ * Get the camera by the specified input type.
25
+ * @param type - The input type
26
+ * @returns The camera
27
+ */
28
+ getCameraByType(type: XRInputType): Camera;
29
+ /**
30
+ * Return fixed foveation of the camera.
31
+ */
32
+ get fixedFoveation(): number;
33
+ set fixedFoveation(value: number);
34
+ constructor(engine: Engine);
35
+ }
@@ -0,0 +1,5 @@
1
+ import { XRPlatformFeature } from "../XRPlatformFeature";
2
+ export declare abstract class XRPlatformCamera extends XRPlatformFeature {
3
+ get fixedFoveation(): number;
4
+ set fixedFoveation(value: number);
5
+ }
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Enum for the types of hit test that can be performed.
3
+ * Note: currently only supports plane.
4
+ */
5
+ export declare enum XRHitTestType {
6
+ /** None */
7
+ None = 0,
8
+ /** Tracked plane. */
9
+ Plane = 1,
10
+ /** Tracked mesh. */
11
+ Mesh = 2,
12
+ /** Tracked anchor. */
13
+ Anchor = 4,
14
+ /** All tracked objects. */
15
+ All = 7
16
+ }
@@ -0,0 +1,38 @@
1
+ import { IXRFeatureDescriptor, IXRHitResult } from "@galacean/engine-design";
2
+ import { XRHitTestType } from "./XRHitTestType";
3
+ import { Ray } from "@galacean/engine-math";
4
+ import { XRFeatureManager } from "../XRFeatureManager";
5
+ export declare class XRHitTestManager extends XRFeatureManager {
6
+ private _tempRay;
7
+ private _tempVec2;
8
+ private _tempVec30;
9
+ private _tempVec31;
10
+ private _tempVec32;
11
+ private _tempVec33;
12
+ private _tempVec34;
13
+ private _tempVec35;
14
+ /**
15
+ * Returns whether the feature is supported.
16
+ * @param descriptor - The descriptor of the feature
17
+ * @returns The promise of the feature
18
+ */
19
+ isSupported(descriptor?: IXRFeatureDescriptor): Promise<void>;
20
+ /**
21
+ * Hit test.
22
+ * @param ray - The ray to test
23
+ * @param type - The type of hit test
24
+ * @returns The hit result
25
+ */
26
+ hitTest(ray: Ray, type: XRHitTestType): IXRHitResult[];
27
+ /**
28
+ * Screen hit test.
29
+ * @param x - The x coordinate of the screen point (normalized)
30
+ * @param y - The y coordinate of the screen point (normalized)
31
+ * @param type - The type of hit test
32
+ * @returns The hit result
33
+ */
34
+ screenHitTest(x: number, y: number, type: XRHitTestType): IXRHitResult[];
35
+ private _hitTest;
36
+ private _hitTestPlane;
37
+ private _checkPointerWithinPlane;
38
+ }
@@ -0,0 +1,9 @@
1
+ import { IXRFeatureDescriptor } from "@galacean/engine-design";
2
+ import { XRMovementTrackingMode } from "./XRMovementTrackingMode";
3
+ /**
4
+ * The descriptor of XR movement tracking.
5
+ */
6
+ export interface IXRMovementTrackingDescriptor extends IXRFeatureDescriptor {
7
+ /** The mode of movement tracking. */
8
+ mode: XRMovementTrackingMode;
9
+ }
@@ -0,0 +1,8 @@
1
+ import { IXRMovementTrackingDescriptor } from "./IXRMovementTrackingDescriptor";
2
+ import { XRMovementTrackingMode } from "./XRMovementTrackingMode";
3
+ import { XRFeatureManager } from "../XRFeatureManager";
4
+ import { IXRMovementTracking } from "@galacean/engine-design";
5
+ export declare class XRMovementTrackingManager extends XRFeatureManager<IXRMovementTrackingDescriptor, IXRMovementTracking> {
6
+ get trackingMode(): XRMovementTrackingMode;
7
+ set trackingMode(value: XRMovementTrackingMode);
8
+ }
@@ -0,0 +1,5 @@
1
+ export declare enum XRMovementTrackingMode {
2
+ None = 0,
3
+ Dof3 = 1,
4
+ Dof6 = 2
5
+ }
@@ -0,0 +1,10 @@
1
+ import { XRPlatformFeature } from "../XRPlatformFeature";
2
+ import { XRMovementTrackingMode } from "./XRMovementTrackingMode";
3
+ /**
4
+ * The base class of XR platform movement tracking.
5
+ */
6
+ export declare abstract class XRPlatformMovementTracking extends XRPlatformFeature {
7
+ private _trackingMode;
8
+ get trackingMode(): XRMovementTrackingMode;
9
+ set trackingMode(value: XRMovementTrackingMode);
10
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Enum for the state of a request to track a trackable.
3
+ */
4
+ export declare enum XRRequestTrackingState {
5
+ None = 0,
6
+ Submitted = 1,
7
+ Resolved = 2,
8
+ Rejected = 3,
9
+ Destroyed = 4,
10
+ WaitingDestroy = 5
11
+ }
@@ -0,0 +1,41 @@
1
+ import { IXRFeatureDescriptor, IXRFrame, IXRRequestTracking, IXRSession, IXRTrackableFeature, IXRTracked } from "@galacean/engine-design";
2
+ import { XRTrackedUpdateFlag } from "../../input/XRTrackedUpdateFlag";
3
+ import { XRFeatureManager } from "../XRFeatureManager";
4
+ import { XRTrackingState } from "../../input/XRTrackingState";
5
+ /**
6
+ * The base class of XR trackable manager.
7
+ */
8
+ export declare abstract class XRTrackableManager<TDescriptor extends IXRFeatureDescriptor, TXRTracked extends IXRTracked, TXRRequestTracking extends IXRRequestTracking<TXRTracked>, TTrackableFeature extends IXRTrackableFeature<TXRTracked, TXRRequestTracking>> extends XRFeatureManager<TDescriptor, TTrackableFeature> {
9
+ protected _requestTrackings: TXRRequestTracking[];
10
+ protected _trackedObjects: TXRTracked[];
11
+ protected _added: TXRTracked[];
12
+ protected _updated: TXRTracked[];
13
+ protected _removed: TXRTracked[];
14
+ protected _statusSnapshot: Record<number, XRTrackingState>;
15
+ private _trackedUpdateFlag;
16
+ /**
17
+ * Return Request tracking requirements.
18
+ */
19
+ get requestTrackings(): readonly TXRRequestTracking[];
20
+ /**
21
+ * Returns the tracked objects.
22
+ */
23
+ get trackedObjects(): readonly TXRTracked[];
24
+ addRequestTracking(add: TXRRequestTracking): void;
25
+ removeRequestTracking(remove: TXRRequestTracking): void;
26
+ removeAllRequestTrackings(): void;
27
+ /**
28
+ * Add a listening function to track changes.
29
+ * @param listener - The listening function
30
+ */
31
+ addListener(listener: (type: XRTrackedUpdateFlag, param: readonly TXRTracked[]) => any): void;
32
+ /**
33
+ * Remove a listening function to track changes.
34
+ * @param listener - The listening function
35
+ */
36
+ removeListener(listener: (type: XRTrackedUpdateFlag, param: readonly TXRTracked[]) => any): void;
37
+ onUpdate(session: IXRSession, frame: IXRFrame): void;
38
+ onSessionStop(): void;
39
+ onSessionDestroy(): void;
40
+ onDestroy(): void;
41
+ }
@@ -0,0 +1,29 @@
1
+ import { IXRTrackable } from "@galacean/engine-design";
2
+ import { XRPlatformFeature } from "../XRPlatformFeature";
3
+ /**
4
+ * The base class of XR trackable platform feature.
5
+ */
6
+ export declare abstract class XRTrackablePlatformFeature<T extends IXRTrackable> extends XRPlatformFeature {
7
+ private static _trackId;
8
+ protected _trackedObjects: T[];
9
+ protected _added: T[];
10
+ protected _updated: T[];
11
+ protected _removed: T[];
12
+ /**
13
+ * Returns the tracked objects.
14
+ */
15
+ get trackedObjects(): readonly T[];
16
+ /**
17
+ * Returns the changes tracked in this frame.
18
+ * @returns The changes of tracked objects
19
+ */
20
+ getChanges(): {
21
+ readonly added: T[];
22
+ readonly updated: T[];
23
+ readonly removed: T[];
24
+ };
25
+ _onSessionStop(): void;
26
+ _onSessionDestroy(): void;
27
+ _onDestroy(): void;
28
+ protected _generateUUID(): number;
29
+ }
@@ -0,0 +1,9 @@
1
+ import { IXRPose, IXRTracked } from "@galacean/engine-design";
2
+ import { XRTrackingState } from "../../input/XRTrackingState";
3
+ export declare class XRTracked implements IXRTracked {
4
+ id: number;
5
+ pose: IXRPose;
6
+ state: XRTrackingState;
7
+ frameCount: number;
8
+ constructor(id: number, pose: IXRPose, state?: XRTrackingState, frameCount?: number);
9
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Enum for XR tracked update flag.
3
+ */
4
+ export declare enum XRTrackedUpdateFlag {
5
+ /** The object that was not tracked in the previous frame was tracked in this frame. */
6
+ Added = 0,
7
+ /** Both the previous frame and this frame are tracked */
8
+ Updated = 1,
9
+ /** The object that was tracked in the previous frame is not tracked in this frame. */
10
+ Removed = 2
11
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Enum for XR tracking state.
3
+ */
4
+ export declare enum XRTrackingState {
5
+ /** Not tracking */
6
+ NotTracking = 0,
7
+ /** Tracking */
8
+ Tracking = 1,
9
+ /** Lost track */
10
+ TrackingLost = 2
11
+ }
@@ -0,0 +1,8 @@
1
+ import { IXRFeatureDescriptor, IXRPose } from "@galacean/engine-design";
2
+ /**
3
+ * The descriptor of XR anchor tracking.
4
+ */
5
+ export interface IXRAnchorTrackingDescriptor extends IXRFeatureDescriptor {
6
+ /** Request tracking anchor. */
7
+ anchors?: IXRPose[];
8
+ }
@@ -0,0 +1,22 @@
1
+ import { IXRAnchorTracking, IXRPose } from "@galacean/engine-design";
2
+ import { IXRAnchorTrackingDescriptor } from "./IXRAnchorTrackingDescriptor";
3
+ import { XRTrackableManager } from "../XRTrackableManager";
4
+ import { XRRequestTrackingAnchor } from "./XRRequestTrackingAnchor";
5
+ import { XRTracked } from "../XRTracked";
6
+ export declare class XRAnchorTrackingManager extends XRTrackableManager<IXRAnchorTrackingDescriptor, XRTracked, XRRequestTrackingAnchor, IXRAnchorTracking> {
7
+ /**
8
+ * Add a tracking anchor.
9
+ * @param pose - The pose of anchor to be added
10
+ */
11
+ addAnchor(pose: IXRPose): XRRequestTrackingAnchor;
12
+ /**
13
+ * Remove a tracking anchor.
14
+ * @param anchor - The anchor to be removed
15
+ */
16
+ removeAnchor(pose: IXRPose): void;
17
+ /**
18
+ * Remove all tracking anchors.
19
+ */
20
+ removeAllAnchors(): void;
21
+ initialize(): Promise<void>;
22
+ }
@@ -0,0 +1,4 @@
1
+ export declare enum XRAnchorTrackingMode {
2
+ None = 0,
3
+ Auto = 1
4
+ }
@@ -0,0 +1,12 @@
1
+ import { IXRRequestTrackingAnchor, IXRTrackedAnchor } from "@galacean/engine-design";
2
+ import { XRTrackablePlatformFeature } from "../XRTrackablePlatformFeature";
3
+ import { IXRAnchorTrackingDescriptor } from "./IXRAnchorTrackingDescriptor";
4
+ /**
5
+ * The base class of XR anchor tracking.
6
+ */
7
+ export declare abstract class XRPlatformAnchorTracking extends XRTrackablePlatformFeature<IXRTrackedAnchor> {
8
+ protected _requestTrackingAnchors: IXRRequestTrackingAnchor[];
9
+ get requestTrackingAnchors(): readonly IXRRequestTrackingAnchor[];
10
+ _initialize(descriptor: IXRAnchorTrackingDescriptor): Promise<void>;
11
+ protected _disposeAnchor(anchor: IXRRequestTrackingAnchor): void;
12
+ }
@@ -0,0 +1,10 @@
1
+ import { IXRPose, IXRRequestTracking } from "@galacean/engine-design";
2
+ import { XRRequestTrackingState } from "../XRRequestTrackingState";
3
+ import { XRTracked } from "../XRTracked";
4
+ export declare class XRRequestTrackingAnchor implements IXRRequestTracking<XRTracked> {
5
+ pose: IXRPose;
6
+ state: XRRequestTrackingState;
7
+ tracked: XRTracked[];
8
+ constructor(pose: IXRPose, state?: XRRequestTrackingState, tracked?: XRTracked[]);
9
+ equals(other: XRRequestTrackingAnchor): boolean;
10
+ }
@@ -0,0 +1,5 @@
1
+ import { IXRFeatureDescriptor } from "@galacean/engine-design";
2
+ import { XRReferenceImage } from "./XRReferenceImage";
3
+ export interface IXRImageTrackingDescriptor extends IXRFeatureDescriptor {
4
+ images?: XRReferenceImage[];
5
+ }
@@ -0,0 +1,33 @@
1
+ import { IXRImageTracking } from "@galacean/engine-design";
2
+ import { IXRImageTrackingDescriptor } from "./IXRImageTrackingDescriptor";
3
+ import { XRTrackableManager } from "../XRTrackableManager";
4
+ import { XRReferenceImage } from "./XRReferenceImage";
5
+ import { XRTrackedImage } from "./XRTrackedImage";
6
+ import { XRRequestTrackingImage } from "./XRRequestTrackingImage";
7
+ export declare class XRImageTrackingManager extends XRTrackableManager<IXRImageTrackingDescriptor, XRTrackedImage, XRRequestTrackingImage, IXRImageTracking> {
8
+ /**
9
+ * Add a tracking image
10
+ * @param image - xr reference image
11
+ */
12
+ addImage(image: XRReferenceImage): void;
13
+ /**
14
+ * Add tracking images
15
+ * @param images - xr reference images
16
+ */
17
+ addImage(images: XRReferenceImage[]): void;
18
+ /**
19
+ * Remove a tracking image
20
+ * @param image - xr reference image
21
+ */
22
+ removeImage(image: XRReferenceImage): void;
23
+ /**
24
+ * Remove tracking images
25
+ * @param images - xr reference images
26
+ */
27
+ removeImage(images: XRReferenceImage[]): void;
28
+ /**
29
+ * Remove all tracking images
30
+ */
31
+ removeAllImages(): void;
32
+ initialize(): Promise<void>;
33
+ }
@@ -0,0 +1,14 @@
1
+ import { IXRRequestTrackingImage, IXRTrackedImage } from "@galacean/engine-design";
2
+ import { XRTrackablePlatformFeature } from "../XRTrackablePlatformFeature";
3
+ import { IXRImageTrackingDescriptor } from "./IXRImageTrackingDescriptor";
4
+ /**
5
+ * The base class of XR image tracking.
6
+ */
7
+ export declare abstract class XRPlatformImageTracking extends XRTrackablePlatformFeature<IXRTrackedImage> {
8
+ protected _requestTrackingImages: IXRRequestTrackingImage[];
9
+ get requestTrackingImages(): readonly IXRRequestTrackingImage[];
10
+ _initialize(descriptor: IXRImageTrackingDescriptor): Promise<void>;
11
+ _onSessionDestroy(): void;
12
+ _onDestroy(): void;
13
+ protected _disposeImage(image: IXRRequestTrackingImage): void;
14
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * A reference image is an image to look for in the physical environment.
3
+ */
4
+ export declare class XRReferenceImage {
5
+ name: string;
6
+ src: string | HTMLImageElement | SVGImageElement | HTMLVideoElement | HTMLCanvasElement | Blob | ImageData | ImageBitmap | OffscreenCanvas;
7
+ private _id;
8
+ physicalWidth: number;
9
+ physicalHeight: number;
10
+ private static _uuid;
11
+ constructor(name: string, src: string | HTMLImageElement | SVGImageElement | HTMLVideoElement | HTMLCanvasElement | Blob | ImageData | ImageBitmap | OffscreenCanvas, _id?: number, physicalWidth?: number, physicalHeight?: number);
12
+ get id(): number;
13
+ dispose(): void;
14
+ }
@@ -0,0 +1,11 @@
1
+ import { IXRRequestTracking } from "@galacean/engine-design";
2
+ import { XRRequestTrackingState } from "../XRRequestTrackingState";
3
+ import { XRTrackedImage } from "./XRTrackedImage";
4
+ import { XRReferenceImage } from "./XRReferenceImage";
5
+ export declare class XRRequestTrackingImage implements IXRRequestTracking<XRTrackedImage> {
6
+ image: XRReferenceImage;
7
+ state: XRRequestTrackingState;
8
+ tracked: XRTrackedImage[];
9
+ constructor(image: XRReferenceImage, state?: XRRequestTrackingState, tracked?: XRTrackedImage[]);
10
+ equals(other: XRRequestTrackingImage): boolean;
11
+ }
@@ -0,0 +1,5 @@
1
+ import { XRTracked } from "../XRTracked";
2
+ export declare class XRTrackedImage extends XRTracked {
3
+ /** The width of the image in meters in the physical world. */
4
+ measuredWidthInMeters: number;
5
+ }
@@ -0,0 +1,9 @@
1
+ import { IXRFeatureDescriptor } from "@galacean/engine-design";
2
+ import { XRPlaneMode } from "./XRPlaneMode";
3
+ /**
4
+ * The descriptor of XR plane tracking.
5
+ */
6
+ export interface IXRPlaneTrackingDescriptor extends IXRFeatureDescriptor {
7
+ /** Rules for detecting planes. */
8
+ mode: XRPlaneMode;
9
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Enumerates valid modes of plane to detect.
3
+ */
4
+ export declare enum XRPlaneDetectionMode {
5
+ /** Plane detection is disabled. */
6
+ None = 0,
7
+ /** Plane detection will only detect horizontal planes. */
8
+ Horizontal = 1,
9
+ /** Plane detection will only detect vertical planes. */
10
+ Vertical = 2,
11
+ /** Plane detection will detect both horizontal and vertical planes. */
12
+ EveryThing = 3
13
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Enumerates modes of plane in XR.
3
+ */
4
+ export declare enum XRPlaneMode {
5
+ /** None. */
6
+ None = 0,
7
+ /** Horizontal */
8
+ Horizontal = 1,
9
+ /** Vertical */
10
+ Vertical = 2,
11
+ /** Includes horizontal and vertical. */
12
+ EveryThing = 3
13
+ }
@@ -0,0 +1,14 @@
1
+ import { IXRPlaneTrackingDescriptor } from "./IXRPlaneTrackingDescriptor";
2
+ import { XRPlaneMode } from "./XRPlaneMode";
3
+ import { XRTrackableManager } from "../XRTrackableManager";
4
+ import { XRTrackedPlane } from "./XRTrackedPlane";
5
+ import { XRRequestTrackingPlane } from "./XRRequestTrackingPlane";
6
+ import { IXRPlaneTracking } from "@galacean/engine-design";
7
+ export declare class XRPlaneTrackingManager extends XRTrackableManager<IXRPlaneTrackingDescriptor, XRTrackedPlane, XRRequestTrackingPlane, IXRPlaneTracking> {
8
+ /**
9
+ * Return the plane detection mode for XR.
10
+ */
11
+ get detectionMode(): XRPlaneMode;
12
+ set detectionMode(value: XRPlaneMode);
13
+ initialize(): Promise<void>;
14
+ }
@@ -0,0 +1,11 @@
1
+ import { IXRTrackedPlane } from "@galacean/engine-design";
2
+ import { XRTrackablePlatformFeature } from "../XRTrackablePlatformFeature";
3
+ import { XRPlaneDetectionMode } from "./XRPlaneDetectionMode";
4
+ /**
5
+ * The base class of XR plane tracking.
6
+ */
7
+ export declare abstract class XRPlatformPlaneTracking extends XRTrackablePlatformFeature<IXRTrackedPlane> {
8
+ protected _trackingMode: XRPlaneDetectionMode;
9
+ get trackingMode(): XRPlaneDetectionMode;
10
+ set trackingMode(value: XRPlaneDetectionMode);
11
+ }
@@ -0,0 +1,11 @@
1
+ import { IXRRequestTracking } from "@galacean/engine-design";
2
+ import { XRRequestTrackingState } from "../XRRequestTrackingState";
3
+ import { XRPlaneMode } from "./XRPlaneMode";
4
+ import { XRTrackedPlane } from "./XRTrackedPlane";
5
+ export declare class XRRequestTrackingPlane implements IXRRequestTracking<XRTrackedPlane> {
6
+ orientation: XRPlaneMode;
7
+ state: XRRequestTrackingState;
8
+ tracked: XRTrackedPlane[];
9
+ constructor(orientation: XRPlaneMode, state?: XRRequestTrackingState, tracked?: XRTrackedPlane[]);
10
+ equals(other: XRRequestTrackingPlane): boolean;
11
+ }
@@ -0,0 +1,11 @@
1
+ import { Vector3 } from "@galacean/engine-math";
2
+ import { XRTracked } from "../XRTracked";
3
+ export declare class XRTrackedPlane extends XRTracked {
4
+ /** Whether the detected plane is horizontal or vertical. */
5
+ orientation: number;
6
+ /** The points that make up this plane.
7
+ * Note: These points are in the plane coordinate system,
8
+ * and their Y coordinates are all zero.
9
+ */
10
+ polygon: Vector3[];
11
+ }