@galacean/engine-core 1.1.0-beta.2 → 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 (100) hide show
  1. package/dist/main.js +7718 -7223
  2. package/dist/main.js.map +1 -1
  3. package/dist/miniprogram.js +7718 -7223
  4. package/dist/module.js +7708 -7225
  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/2d/enums/SpriteModifyFlags.d.ts +2 -1
  9. package/types/Background.d.ts +8 -0
  10. package/types/Component.d.ts +1 -1
  11. package/types/DisorderedArray.d.ts +1 -1
  12. package/types/RenderPipeline/MeshRenderElement.d.ts +3 -1
  13. package/types/RenderPipeline/SpriteElement.d.ts +3 -1
  14. package/types/RenderPipeline/SpriteMaskElement.d.ts +3 -1
  15. package/types/RenderPipeline/TextRenderElement.d.ts +3 -1
  16. package/types/Scene.d.ts +6 -0
  17. package/types/asset/AssetPromise.d.ts +1 -0
  18. package/types/asset/ResourceManager.d.ts +0 -1
  19. package/types/lighting/DirectLight.d.ts +8 -1
  20. package/types/lighting/Light.d.ts +0 -4
  21. package/types/lighting/LightManager.d.ts +7 -0
  22. package/types/lighting/PointLight.d.ts +9 -1
  23. package/types/lighting/SpotLight.d.ts +12 -1
  24. package/types/mesh/SkinnedMeshRenderer.d.ts +1 -1
  25. package/types/mesh/SubModelMesh.d.ts +260 -0
  26. package/types/particle/ParticleGenerator.d.ts +0 -2
  27. package/types/particle/index.d.ts +10 -0
  28. package/types/particle/modules/EmissionModule.d.ts +0 -1
  29. package/types/particle/modules/MainModule.d.ts +7 -6
  30. package/types/particle/modules/ParticleGeneratorModule.d.ts +0 -1
  31. package/types/particle/modules/RotationOverLifetimeModule.d.ts +1 -1
  32. package/types/particle/modules/TextureSheetAnimationModule.d.ts +0 -4
  33. package/types/physics/Collider.d.ts +3 -1
  34. package/types/physics/PhysicsMaterial.d.ts +1 -0
  35. package/types/physics/joint/HingeJoint.d.ts +1 -1
  36. package/types/physics/joint/Joint.d.ts +4 -3
  37. package/types/physics/shape/ColliderShape.d.ts +2 -1
  38. package/types/physics/shape/SphereColliderShape.d.ts +1 -0
  39. package/types/shader/Shader.d.ts +1 -1
  40. package/types/xr/IXRDevice.d.ts +26 -0
  41. package/types/xr/XRManager.d.ts +89 -24
  42. package/types/xr/XRModule.d.ts +126 -0
  43. package/types/xr/component/XRPoseDriver.d.ts +5 -5
  44. package/types/xr/component/XRTrackingMode.d.ts +15 -0
  45. package/types/xr/component/trackable/XRAnchor.d.ts +4 -0
  46. package/types/xr/component/trackable/XRImage.d.ts +6 -0
  47. package/types/xr/component/trackable/XRPlane.d.ts +7 -0
  48. package/types/xr/component/trackable/XRTracked.d.ts +13 -0
  49. package/types/xr/feature/XRFeatureManager.d.ts +65 -0
  50. package/types/xr/feature/XRFeatureType.d.ts +17 -0
  51. package/types/xr/feature/XRPlatformFeature.d.ts +17 -0
  52. package/types/xr/feature/camera/IXRCameraDescriptor.d.ts +7 -0
  53. package/types/xr/feature/camera/XRCameraManager.d.ts +35 -0
  54. package/types/xr/feature/camera/XRPlatformCamera.d.ts +5 -0
  55. package/types/xr/feature/hitTest/XRHItTestType.d.ts +16 -0
  56. package/types/xr/feature/hitTest/XRHitTestManager.d.ts +38 -0
  57. package/types/xr/feature/movementTracking/IXRMovementTrackingDescriptor.d.ts +9 -0
  58. package/types/xr/feature/movementTracking/XRMovementTrackingManager.d.ts +8 -0
  59. package/types/xr/feature/movementTracking/XRMovementTrackingMode.d.ts +5 -0
  60. package/types/xr/feature/movementTracking/XRPlatformMovementTracking.d.ts +10 -0
  61. package/types/xr/feature/trackable/XRRequestTrackingState.d.ts +11 -0
  62. package/types/xr/feature/trackable/XRTrackableManager.d.ts +41 -0
  63. package/types/xr/feature/trackable/XRTrackablePlatformFeature.d.ts +29 -0
  64. package/types/xr/feature/trackable/XRTracked.d.ts +9 -0
  65. package/types/xr/feature/trackable/XRTrackedUpdateFlag.d.ts +11 -0
  66. package/types/xr/feature/trackable/XRTrackingState.d.ts +11 -0
  67. package/types/xr/feature/trackable/anchor/IXRAnchorTrackingDescriptor.d.ts +8 -0
  68. package/types/xr/feature/trackable/anchor/XRAnchorTrackingManager.d.ts +22 -0
  69. package/types/xr/feature/trackable/anchor/XRAnchorTrackingMode.d.ts +4 -0
  70. package/types/xr/feature/trackable/anchor/XRPlatformAnchorTracking.d.ts +12 -0
  71. package/types/xr/feature/trackable/anchor/XRRequestTrackingAnchor.d.ts +10 -0
  72. package/types/xr/feature/trackable/image/IXRImageTrackingDescriptor.d.ts +5 -0
  73. package/types/xr/feature/trackable/image/XRImageTrackingManager.d.ts +33 -0
  74. package/types/xr/feature/trackable/image/XRPlatformImageTracking.d.ts +14 -0
  75. package/types/xr/feature/trackable/image/XRReferenceImage.d.ts +14 -0
  76. package/types/xr/feature/trackable/image/XRRequestTrackingImage.d.ts +11 -0
  77. package/types/xr/feature/trackable/image/XRTrackedImage.d.ts +5 -0
  78. package/types/xr/feature/trackable/plane/IXRPlaneTrackingDescriptor.d.ts +9 -0
  79. package/types/xr/feature/trackable/plane/XRPlaneDetectionMode.d.ts +13 -0
  80. package/types/xr/feature/trackable/plane/XRPlaneMode.d.ts +13 -0
  81. package/types/xr/feature/trackable/plane/XRPlaneTrackingManager.d.ts +14 -0
  82. package/types/xr/feature/trackable/plane/XRPlatformPlaneTracking.d.ts +11 -0
  83. package/types/xr/feature/trackable/plane/XRRequestTrackingPlane.d.ts +11 -0
  84. package/types/xr/feature/trackable/plane/XRTrackedPlane.d.ts +11 -0
  85. package/types/xr/index.d.ts +39 -18
  86. package/types/xr/input/XRCamera.d.ts +28 -0
  87. package/types/xr/input/XRController.d.ts +38 -0
  88. package/types/xr/input/XRControllerPoseMode.d.ts +9 -0
  89. package/types/xr/input/XRInput.d.ts +14 -0
  90. package/types/xr/input/XRInputButton.d.ts +19 -0
  91. package/types/xr/input/XRInputEvent.d.ts +24 -0
  92. package/types/xr/input/XRInputEventType.d.ts +11 -0
  93. package/types/xr/input/XRInputManager.d.ts +58 -0
  94. package/types/xr/input/XRInputType.d.ts +23 -0
  95. package/types/xr/input/XRTargetRayMode.d.ts +12 -0
  96. package/types/xr/input/XRTrackedUpdateFlag.d.ts +11 -0
  97. package/types/xr/input/XRTrackingState.d.ts +11 -0
  98. package/types/xr/session/XRSessionManager.d.ts +76 -0
  99. package/types/xr/session/XRSessionState.d.ts +13 -0
  100. package/types/xr/session/XRSessionType.d.ts +7 -0
@@ -1,11 +1,12 @@
1
1
  import { BoolUpdateFlag } from "../BoolUpdateFlag";
2
2
  import { Component } from "../Component";
3
3
  import { ColliderShape } from "./shape/ColliderShape";
4
+ import { ICustomClone } from "../clone/ComponentCloner";
4
5
  /**
5
6
  * Base class for all colliders.
6
7
  * @decorator `@dependentComponents(Transform, DependentMode.CheckOnly)`
7
8
  */
8
- export declare class Collider extends Component {
9
+ export declare class Collider extends Component implements ICustomClone {
9
10
  protected _updateFlag: BoolUpdateFlag;
10
11
  protected _shapes: ColliderShape[];
11
12
  /**
@@ -26,4 +27,5 @@ export declare class Collider extends Component {
26
27
  * Remove all shape attached.
27
28
  */
28
29
  clearShapes(): void;
30
+ protected _addPhysicsShape(shape: ColliderShape): void;
29
31
  }
@@ -8,6 +8,7 @@ export declare class PhysicsMaterial {
8
8
  private _staticFriction;
9
9
  private _bounceCombine;
10
10
  private _frictionCombine;
11
+ private _destroyed;
11
12
  constructor();
12
13
  /**
13
14
  * The coefficient of bounciness.
@@ -28,7 +28,7 @@ export declare class HingeJoint extends Joint {
28
28
  /**
29
29
  * The angular velocity of the joint in degrees per second.
30
30
  */
31
- get velocity(): Readonly<Vector3>;
31
+ get velocity(): Readonly<number>;
32
32
  /**
33
33
  * Enables the joint's limits. Disabled by default.
34
34
  */
@@ -3,13 +3,14 @@ import { Vector3 } from "@galacean/engine-math";
3
3
  import { Component } from "../../Component";
4
4
  import { Entity } from "../../Entity";
5
5
  import { Collider } from "../Collider";
6
+ import { ICustomClone } from "../../clone/ComponentCloner";
6
7
  /**
7
8
  * A base class providing common functionality for joints.
8
9
  * @decorator `@dependentComponents(Collider, DependentMode.CheckOnly)`
9
10
  */
10
- export declare class Joint extends Component {
11
- protected _connectedCollider: JointCollider;
12
- protected _collider: JointCollider;
11
+ export declare class Joint extends Component implements ICustomClone {
12
+ protected _colliderInfo: JointColliderInfo;
13
+ protected _connectedColliderInfo: JointColliderInfo;
13
14
  protected _nativeJoint: IJoint;
14
15
  private _force;
15
16
  private _torque;
@@ -1,10 +1,11 @@
1
1
  import { PhysicsMaterial } from "../PhysicsMaterial";
2
2
  import { Vector3 } from "@galacean/engine-math";
3
3
  import { Collider } from "../Collider";
4
+ import { ICustomClone } from "../../clone/ComponentCloner";
4
5
  /**
5
6
  * Abstract class for collider shapes.
6
7
  */
7
- export declare abstract class ColliderShape {
8
+ export declare abstract class ColliderShape implements ICustomClone {
8
9
  private static _idGenerator;
9
10
  protected _id: number;
10
11
  protected _material: PhysicsMaterial;
@@ -10,4 +10,5 @@ export declare class SphereColliderShape extends ColliderShape {
10
10
  get radius(): number;
11
11
  set radius(value: number);
12
12
  constructor();
13
+ _cloneTo(target: SphereColliderShape): void;
13
14
  }
@@ -19,7 +19,7 @@ export declare class Shader {
19
19
  * // Import shaderLab
20
20
  * import { ShaderLab } from "@galacean/engine-shader-lab";
21
21
  * // Create engine with shaderLab
22
- * const engine = await WebGLEngine.create({ canvas: "canvas", new ShaderLab() });
22
+ * const engine = await WebGLEngine.create({ canvas: "canvas", shader: new ShaderLab() });
23
23
  * ...
24
24
  * ```
25
25
  *
@@ -0,0 +1,26 @@
1
+ import { IXRSession, IXRFeatureDescriptor, IXRPlatformFeature } from "@galacean/engine-design";
2
+ import { Engine } from "../Engine";
3
+ import { XRSessionType } from "./session/XRSessionType";
4
+ /**
5
+ * The interface of XR device.
6
+ */
7
+ export interface IXRDevice {
8
+ /**
9
+ * Whether the device is supported.
10
+ * @param mode - The mode of the session.
11
+ */
12
+ isSupported(mode: XRSessionType): Promise<void>;
13
+ /**
14
+ * Get the platform feature instance of this device
15
+ * @param engine - The engine.
16
+ * @param type - The type of the feature.
17
+ */
18
+ createPlatformFeature(engine: Engine, type: number): IXRPlatformFeature;
19
+ /**
20
+ * Request a session.
21
+ * @param engine - The engine
22
+ * @param mode - The mode of the session
23
+ * @param requestFeatures - The requested features
24
+ */
25
+ requestSession(engine: Engine, mode: XRSessionType, requestFeatures: IXRFeatureDescriptor[]): Promise<IXRSession>;
26
+ }
@@ -1,31 +1,96 @@
1
+ import { IXRFeatureDescriptor, IXRFeature } from "@galacean/engine-design";
2
+ import { XRInputManager } from "./input/XRInputManager";
3
+ import { XRFeatureType } from "./feature/XRFeatureType";
4
+ import { XRSessionManager } from "./session/XRSessionManager";
5
+ import { XRSessionType } from "./session/XRSessionType";
6
+ import { XRFeatureManager } from "./feature/XRFeatureManager";
7
+ import { IXRDevice } from "@galacean/engine-design/src/xr/IXRDevice";
1
8
  import { Engine } from "../Engine";
2
- import { EnumXRMode } from "./enum/EnumXRMode";
3
- import { EnumXRFeature } from "./enum/EnumXRFeature";
4
- import { EnumXRTrackingMode } from "./enum/EnumXRTrackingMode";
5
- import { XRFeature } from "./feature/XRFeature";
6
- import { EnumXRSubsystem } from "./enum/EnumXRSubsystem";
7
- import { XRProvider } from "./provider/XRProvider";
8
- import { XRSubsystem } from "./subsystem/XRSubsystem";
9
- type FeatureConstructor = new (engine: Engine) => XRFeature;
9
+ import { Scene } from "../Scene";
10
+ import { Entity } from "../Entity";
11
+ type TXRFeatureManager = XRFeatureManager<IXRFeatureDescriptor, IXRFeature>;
12
+ type TXRFeatureManagerConstructor = new (engine: Engine) => TXRFeatureManager;
13
+ /**
14
+ * XRManager is the entry point of the XR system.
15
+ */
10
16
  export declare class XRManager {
17
+ /** Input manager for XR. */
18
+ inputManager: XRInputManager;
19
+ /** Session manager for XR. */
20
+ sessionManager: XRSessionManager;
11
21
  private _engine;
12
- private _provider;
22
+ private _scene;
23
+ private _origin;
13
24
  private _features;
14
- private _subsystems;
15
- private _isPaused;
16
- isSupportedMode(mode: EnumXRMode): Promise<void>;
17
- isSupportedTrackingMode(mode: EnumXRTrackingMode): Promise<void>;
18
- isSupportedFeature(feature: EnumXRFeature): Promise<void>;
19
- getFeature<T extends XRFeature>(feature: EnumXRFeature): T;
20
- enableFeature(feature: EnumXRFeature): void;
21
- disableFeature(feature: EnumXRFeature): void;
22
- getSubsystem<T extends XRSubsystem>(subsystem: EnumXRSubsystem): T;
23
- initialize(mode: EnumXRMode, trackingMode: EnumXRTrackingMode, requestFeatures?: EnumXRFeature[]): Promise<void>;
24
- start(): Promise<void>;
25
- pause(): void;
26
- resume(): void;
25
+ private _mode;
26
+ private _requestFeatures;
27
+ /**
28
+ * The current xr scene.
29
+ */
30
+ get scene(): Scene;
31
+ set scene(value: Scene);
32
+ /**
33
+ * The current xr origin.
34
+ */
35
+ get origin(): Entity;
36
+ set origin(value: Entity);
37
+ /**
38
+ * The current session mode( AR or VR ).
39
+ */
40
+ get mode(): XRSessionType;
41
+ /**
42
+ * The requested features.
43
+ */
44
+ get requestFeatures(): IXRFeatureDescriptor[];
45
+ /**
46
+ * Check if the specified mode is supported.
47
+ * @param mode - The mode to check
48
+ * @returns A promise that resolves if the mode is supported, otherwise rejects
49
+ */
50
+ isSupported(mode: XRSessionType): Promise<void>;
51
+ /**
52
+ * Check if the specified feature is supported.
53
+ * @param descriptors - The feature descriptor to check
54
+ * @returns A promise that resolves if the feature is supported, otherwise rejects
55
+ */
56
+ isSupportedFeature(descriptors: IXRFeatureDescriptor | IXRFeatureDescriptor[]): Promise<void>;
57
+ /**
58
+ * Disable all features.
59
+ */
60
+ disableAllFeatures(): void;
61
+ /**
62
+ * Get the feature instance.
63
+ * @param type - The type of feature
64
+ * @returns The feature instance
65
+ */
66
+ getFeature<T extends XRFeatureManager>(type: XRFeatureType): T;
67
+ /**
68
+ * Initialize the session.
69
+ * @param mode - The mode of the session
70
+ * @param requestFeatures - The requested features
71
+ * @returns A promise that resolves if the session is initialized, otherwise rejects
72
+ */
73
+ initSession(mode: XRSessionType, requestFeatures?: IXRFeatureDescriptor[]): Promise<void>;
74
+ /**
75
+ * Destroy the session.
76
+ * @returns A promise that resolves if the session is destroyed, otherwise rejects
77
+ */
78
+ destroySession(): Promise<void>;
79
+ /**
80
+ * Start the session.
81
+ * @returns A promise that resolves if the session is started, otherwise rejects
82
+ */
83
+ startSession(): Promise<void>;
84
+ /**
85
+ * Stop the session.
86
+ * @returns A promise that resolves if the session is stopped, otherwise rejects
87
+ */
88
+ stopSession(): Promise<void>;
89
+ /**
90
+ * Destroy xr module.
91
+ */
27
92
  destroy(): void;
28
- constructor(engine: Engine, type: new (engine: Engine) => XRProvider);
93
+ constructor(engine: Engine, xrDevice: IXRDevice);
29
94
  }
30
- export declare function registerFeature(feature: EnumXRFeature, dependentSubsystem?: EnumXRSubsystem[]): (featureConstructor: FeatureConstructor) => void;
95
+ export declare function registerXRFeatureManager(feature: XRFeatureType): (featureManagerConstructor: TXRFeatureManagerConstructor) => void;
31
96
  export {};
@@ -0,0 +1,126 @@
1
+ import { IXRFeatureDescriptor, IXRPlatformFeature } from "@galacean/engine-design";
2
+ import { Engine } from "../Engine";
3
+ import { IXRDevice } from "./IXRDevice";
4
+ import { XRInputManager } from "./input/XRInputManager";
5
+ import { XRFeatureType } from "./feature/XRFeatureType";
6
+ import { XRSessionManager } from "./session/XRSessionManager";
7
+ import { XRSessionState } from "./session/XRSessionState";
8
+ import { XRSessionType } from "./session/XRSessionType";
9
+ import { XRFeatureManager } from "./feature/XRFeatureManager";
10
+ import { XRPlatformFeature } from "./feature/XRPlatformFeature";
11
+ import { Scene } from "../Scene";
12
+ import { Entity } from "../Entity";
13
+ import { Component } from "../Component";
14
+ type TXRFeatureManager = XRFeatureManager<IXRFeatureDescriptor, IXRPlatformFeature>;
15
+ type TXRFeatureManagerConstructor = new (engine: Engine) => TXRFeatureManager;
16
+ type TXRSessionStateChangeListener = (from: XRSessionState, to: XRSessionState) => void;
17
+ type TXRTrackedComponent = new (entity: Entity) => Component;
18
+ /**
19
+ * XRModule is the entry point of the XR system.
20
+ */
21
+ export declare class XRModule {
22
+ /** Hardware adaptation for XR. */
23
+ xrDevice: IXRDevice;
24
+ /** Input manager for XR. */
25
+ inputManager: XRInputManager;
26
+ /** Session manager for XR. */
27
+ sessionManager: XRSessionManager;
28
+ private _engine;
29
+ private _scene;
30
+ private _origin;
31
+ private _features;
32
+ private _sessionState;
33
+ private _listeners;
34
+ private _mode;
35
+ private _requestFeatures;
36
+ /**
37
+ * The current xr scene.
38
+ */
39
+ get scene(): Scene;
40
+ set scene(value: Scene);
41
+ /**
42
+ * The current xr origin.
43
+ */
44
+ get origin(): Entity;
45
+ set origin(value: Entity);
46
+ /**
47
+ * The current session mode( AR or VR ).
48
+ */
49
+ get mode(): XRSessionType;
50
+ /**
51
+ * The requested features.
52
+ */
53
+ get requestFeatures(): IXRFeatureDescriptor[];
54
+ /**
55
+ * The current session state.
56
+ */
57
+ get sessionState(): XRSessionState;
58
+ /**
59
+ * Check if the specified mode is supported.
60
+ * @param mode - The mode to check
61
+ * @returns A promise that resolves if the mode is supported, otherwise rejects
62
+ */
63
+ isSupported(mode: XRSessionType): Promise<void>;
64
+ /**
65
+ * Check if the specified feature is supported.
66
+ * @param descriptors - The feature descriptor to check
67
+ * @returns A promise that resolves if the feature is supported, otherwise rejects
68
+ */
69
+ isSupportedFeature(descriptors: IXRFeatureDescriptor | IXRFeatureDescriptor[]): Promise<void>;
70
+ /**
71
+ * Disable all features.
72
+ */
73
+ disableAllFeatures(): void;
74
+ /**
75
+ * Get the feature instance.
76
+ * @param type - The type of feature
77
+ * @returns The feature instance
78
+ */
79
+ getFeature<T extends XRFeatureManager<IXRFeatureDescriptor, XRPlatformFeature>>(type: XRFeatureType): T;
80
+ /**
81
+ * Initialize the session.
82
+ * @param mode - The mode of the session
83
+ * @param requestFeatures - The requested features
84
+ * @returns A promise that resolves if the session is initialized, otherwise rejects
85
+ */
86
+ initSession(mode: XRSessionType, requestFeatures?: IXRFeatureDescriptor[]): Promise<void>;
87
+ /**
88
+ * Destroy the session.
89
+ * @returns A promise that resolves if the session is destroyed, otherwise rejects
90
+ */
91
+ destroySession(): Promise<void>;
92
+ /**
93
+ * Start the session.
94
+ * @returns A promise that resolves if the session is started, otherwise rejects
95
+ */
96
+ startSession(): Promise<void>;
97
+ /**
98
+ * Stop the session.
99
+ * @returns A promise that resolves if the session is stopped, otherwise rejects
100
+ */
101
+ stopSession(): Promise<void>;
102
+ /**
103
+ * Reset the session.
104
+ */
105
+ destroy(): void;
106
+ /**
107
+ * Add a session state change listener.
108
+ * @param listener - The listener to add
109
+ */
110
+ addSessionStateChangeListener(listener: TXRSessionStateChangeListener): void;
111
+ /**
112
+ * Remove a session state change listener.
113
+ * @param listener - The listener to remove
114
+ */
115
+ removeSessionStateChangeListener(listener: TXRSessionStateChangeListener): void;
116
+ /**
117
+ * Remove all session state change listeners.
118
+ */
119
+ removeAllSessionStateChangeListener(): void;
120
+ constructor(engine: Engine, xrDevice: IXRDevice);
121
+ private _setSessionState;
122
+ private _dispatchSessionStateChange;
123
+ }
124
+ export declare function registerXRFeatureManager(feature: XRFeatureType): (featureManagerConstructor: TXRFeatureManagerConstructor) => void;
125
+ export declare function registerXRComponent(feature: XRFeatureType): (componentConstructor: TXRTrackedComponent) => void;
126
+ export {};
@@ -1,10 +1,10 @@
1
1
  import { Script } from "../../Script";
2
- import { EnumXRInputSource } from "../enum/EnumXRInputSource";
3
- import { EnumXRTrackingMode } from "../enum/EnumXRTrackingMode";
2
+ import { XRTrackingMode } from "./XRTrackingMode";
3
+ import { XRInputType } from "../input/XRInputType";
4
4
  export declare class XRPoseDriver extends Script {
5
- source: EnumXRInputSource;
6
- updateType: EnumXRTrackingMode;
7
- private _xrManager;
5
+ type: XRInputType;
6
+ trackingMode: XRTrackingMode;
7
+ private _inputManager;
8
8
  onLateUpdate(): void;
9
9
  onAwake(): void;
10
10
  }
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Enum of XR tracking mode.
3
+ */
4
+ export declare enum XRTrackingMode {
5
+ /** None */
6
+ None = 0,
7
+ /** Orientation only */
8
+ RotationOnly = 1,
9
+ /** Position only */
10
+ PositionOnly = 2,
11
+ /** Orientation and position */
12
+ RotationAndPosition = 3,
13
+ /** Auto ( RotationAndPosition ) */
14
+ Auto = 4
15
+ }
@@ -0,0 +1,4 @@
1
+ import { IXRTrackedAnchor } from "@galacean/engine-design";
2
+ import { XRTracked } from "./XRTracked";
3
+ export declare class XRAnchor extends XRTracked<IXRTrackedAnchor> {
4
+ }
@@ -0,0 +1,6 @@
1
+ import { IXRReferenceImage, IXRTrackedImage } from "@galacean/engine-design";
2
+ import { XRTracked } from "./XRTracked";
3
+ export declare class XRImage extends XRTracked<IXRTrackedImage> {
4
+ get referenceImage(): IXRReferenceImage;
5
+ get measuredWidthInMeters(): number;
6
+ }
@@ -0,0 +1,7 @@
1
+ import { IXRTrackedPlane } from "@galacean/engine-design";
2
+ import { XRTracked } from "./XRTracked";
3
+ import { Vector3 } from "@galacean/engine-math";
4
+ export declare class XRPlane extends XRTracked<IXRTrackedPlane> {
5
+ get polygon(): readonly Vector3[];
6
+ get orientation(): "horizontal" | "vertical";
7
+ }
@@ -0,0 +1,13 @@
1
+ import { IXRTrackable } from "@galacean/engine-design";
2
+ import { Component } from "../../../Component";
3
+ import { XRTrackingState } from "../../feature/trackable/XRTrackingState";
4
+ export declare abstract class XRTracked<T extends IXRTrackable> extends Component {
5
+ protected _platformData: T;
6
+ protected _destroyOnRemoval: boolean;
7
+ get destroyOnRemoval(): boolean;
8
+ set destroyOnRemoval(value: boolean);
9
+ get trackableId(): number;
10
+ get trackingState(): XRTrackingState;
11
+ get platformData(): T;
12
+ set platformData(value: T);
13
+ }
@@ -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
+ }