@galacean/engine-core 1.2.0-alpha.0 → 1.2.0-alpha.2
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/dist/main.js +664 -566
- package/dist/main.js.map +1 -1
- package/dist/miniprogram.js +664 -566
- package/dist/module.js +760 -662
- package/dist/module.js.map +1 -1
- package/package.json +3 -3
- package/types/2d/atlas/types.d.ts +2 -0
- package/types/2d/text/TextRenderer.d.ts +1 -0
- package/types/Camera.d.ts +11 -5
- package/types/Engine.d.ts +4 -2
- package/types/SystemInfo.d.ts +2 -0
- package/types/Utils.d.ts +6 -0
- package/types/asset/AssetType.d.ts +2 -0
- package/types/asset/ResourceManager.d.ts +2 -0
- package/types/input/InputManager.d.ts +0 -2
- package/types/input/interface/IInput.d.ts +0 -8
- package/types/mesh/PrimitiveMesh.d.ts +22 -0
- package/types/shaderlib/ShaderFactory.d.ts +5 -1
- package/types/xr/XRPose.d.ts +15 -0
- package/types/xr/feature/XRFeature.d.ts +16 -0
- package/types/xr/feature/XRFeatureManager.d.ts +65 -0
- package/types/xr/feature/XRFeatureType.d.ts +13 -0
- package/types/xr/feature/camera/XRCameraManager.d.ts +26 -0
- package/types/xr/feature/hitTest/TrackableType.d.ts +10 -0
- package/types/xr/feature/hitTest/XRHitResult.d.ts +19 -0
- package/types/xr/feature/hitTest/XRHitTest.d.ts +39 -0
- package/types/xr/feature/hitTest/XRHitTestManager.d.ts +38 -0
- package/types/xr/feature/hitTest/XRHitTestType.d.ts +16 -0
- package/types/xr/feature/movementTracking/XRMovementTracking.d.ts +18 -0
- package/types/xr/feature/movementTracking/XRMovementTrackingManager.d.ts +10 -0
- package/types/xr/feature/movementTracking/XRMovementTrackingMode.d.ts +5 -0
- package/types/xr/feature/trackable/XRRequestTrackingState.d.ts +11 -0
- package/types/xr/feature/trackable/XRTrackableFeature.d.ts +38 -0
- package/types/xr/feature/trackable/XRTrackableManager.d.ts +41 -0
- package/types/xr/feature/trackable/XRTracked.d.ts +1 -0
- package/types/xr/feature/trackable/anchor/XRAnchor.d.ts +6 -0
- package/types/xr/feature/trackable/anchor/XRAnchorTracking.d.ts +37 -0
- package/types/xr/feature/trackable/anchor/XRAnchorTrackingManager.d.ts +20 -0
- package/types/xr/feature/trackable/anchor/XRRequestAnchor.d.ts +15 -0
- package/types/xr/feature/trackable/image/XRImageTracking.d.ts +24 -0
- package/types/xr/feature/trackable/image/XRImageTrackingManager.d.ts +31 -0
- package/types/xr/feature/trackable/image/XRReferenceImage.d.ts +11 -0
- package/types/xr/feature/trackable/image/XRRequestImage.d.ts +13 -0
- package/types/xr/feature/trackable/image/XRTrackedImage.d.ts +8 -0
- package/types/xr/feature/trackable/plane/XRPlaneMode.d.ts +13 -0
- package/types/xr/feature/trackable/plane/XRPlaneTracking.d.ts +23 -0
- package/types/xr/feature/trackable/plane/XRPlaneTrackingManager.d.ts +11 -0
- package/types/xr/feature/trackable/plane/XRRequestPlane.d.ts +12 -0
- package/types/xr/feature/trackable/plane/XRTrackedPlane.d.ts +20 -0
- package/types/xr/index.d.ts +25 -0
- package/types/xr/input/XRCamera.d.ts +15 -0
- package/types/xr/input/XRController.d.ts +38 -0
- package/types/xr/input/XRControllerPoseMode.d.ts +9 -0
- package/types/xr/input/XRInput.d.ts +8 -0
- package/types/xr/input/XRInputButton.d.ts +19 -0
- package/types/xr/input/XRInputEvent.d.ts +24 -0
- package/types/xr/input/XRInputEventType.d.ts +11 -0
- package/types/xr/input/XRInputManager.d.ts +31 -0
- package/types/xr/input/XRInputType.d.ts +23 -0
- package/types/xr/input/XRTargetRayMode.d.ts +12 -0
- package/types/xr/input/XRTrackedInputDevice.d.ts +21 -0
- package/types/xr/input/XRTrackedUpdateFlag.d.ts +11 -0
- package/types/xr/input/XRTrackingState.d.ts +11 -0
- package/types/xr/session/XRSessionManager.d.ts +45 -0
- package/types/xr/session/XRSessionMode.d.ts +8 -0
- package/types/xr/session/XRSessionState.d.ts +13 -0
- package/types/RenderPipeline/MeshRenderElement.d.ts +0 -19
- package/types/RenderPipeline/SpriteElement.d.ts +0 -15
- package/types/RenderPipeline/SpriteMaskElement.d.ts +0 -12
- package/types/RenderPipeline/TextRenderElement.d.ts +0 -8
- package/types/asset/IRefObject.d.ts +0 -2
- package/types/asset/RefObject.d.ts +0 -27
- package/types/base/Event.d.ts +0 -24
- package/types/base/Util.d.ts +0 -14
- /package/types/{2d/data/RenderData2D.d.ts → xr/feature/trackable/XRRequestTracking.d.ts} +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@galacean/engine-core",
|
|
3
|
-
"version": "1.2.0-alpha.
|
|
3
|
+
"version": "1.2.0-alpha.2",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public",
|
|
6
6
|
"registry": "https://registry.npmjs.org"
|
|
@@ -15,10 +15,10 @@
|
|
|
15
15
|
"types/**/*"
|
|
16
16
|
],
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@galacean/engine-math": "1.2.0-alpha.
|
|
18
|
+
"@galacean/engine-math": "1.2.0-alpha.2"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
|
-
"@galacean/engine-design": "1.2.0-alpha.
|
|
21
|
+
"@galacean/engine-design": "1.2.0-alpha.2"
|
|
22
22
|
},
|
|
23
23
|
"scripts": {
|
|
24
24
|
"b:types": "tsc"
|
package/types/Camera.d.ts
CHANGED
|
@@ -37,18 +37,18 @@ export declare class Camera extends Component {
|
|
|
37
37
|
depthTextureMode: DepthTextureMode;
|
|
38
38
|
private _priority;
|
|
39
39
|
private _shaderData;
|
|
40
|
-
private
|
|
40
|
+
private _isCustomViewMatrix;
|
|
41
|
+
private _isCustomProjectionMatrix;
|
|
41
42
|
private _nearClipPlane;
|
|
42
43
|
private _farClipPlane;
|
|
43
44
|
private _fieldOfView;
|
|
44
45
|
private _orthographicSize;
|
|
45
46
|
private _isProjectionDirty;
|
|
46
47
|
private _isInvProjMatDirty;
|
|
47
|
-
private _isFrustumProjectDirty;
|
|
48
48
|
private _customAspectRatio;
|
|
49
49
|
private _renderTarget;
|
|
50
50
|
private _depthBufferParams;
|
|
51
|
-
private
|
|
51
|
+
private _frustumChangeFlag;
|
|
52
52
|
private _transform;
|
|
53
53
|
private _isViewMatrixDirty;
|
|
54
54
|
private _isInvViewProjDirty;
|
|
@@ -112,12 +112,13 @@ export declare class Camera extends Component {
|
|
|
112
112
|
* View matrix.
|
|
113
113
|
*/
|
|
114
114
|
get viewMatrix(): Readonly<Matrix>;
|
|
115
|
+
set viewMatrix(value: Matrix);
|
|
115
116
|
/**
|
|
116
117
|
* The projection matrix is calculated by the relevant parameters of the camera by default.
|
|
117
118
|
* If it is manually set, the manual value will be maintained. Call resetProjectionMatrix() to restore it.
|
|
118
119
|
*/
|
|
120
|
+
get projectionMatrix(): Readonly<Matrix>;
|
|
119
121
|
set projectionMatrix(value: Matrix);
|
|
120
|
-
get projectionMatrix(): Matrix;
|
|
121
122
|
/**
|
|
122
123
|
* Whether to enable HDR.
|
|
123
124
|
* @todo When render pipeline modification
|
|
@@ -129,6 +130,10 @@ export declare class Camera extends Component {
|
|
|
129
130
|
*/
|
|
130
131
|
get renderTarget(): RenderTarget | null;
|
|
131
132
|
set renderTarget(value: RenderTarget | null);
|
|
133
|
+
/**
|
|
134
|
+
* Restore the view matrix to the world matrix of the entity.
|
|
135
|
+
*/
|
|
136
|
+
resetViewMatrix(): void;
|
|
132
137
|
/**
|
|
133
138
|
* Restore the automatic calculation of projection matrix through fieldOfView, nearClipPlane and farClipPlane.
|
|
134
139
|
*/
|
|
@@ -237,7 +242,8 @@ export declare class Camera extends Component {
|
|
|
237
242
|
*/
|
|
238
243
|
_onDisableInScene(): void;
|
|
239
244
|
private _updatePixelViewport;
|
|
240
|
-
private
|
|
245
|
+
private _viewMatrixChange;
|
|
246
|
+
private _projectionMatrixChange;
|
|
241
247
|
private _innerViewportToWorldPoint;
|
|
242
248
|
private _updateShaderData;
|
|
243
249
|
/**
|
package/types/Engine.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IHardwareRenderer, IPhysics, IShaderLab, IXRDevice } from "@galacean/engine-design";
|
|
1
|
+
import { IHardwareRenderer, IInputOptions, IPhysics, IShaderLab, IXRDevice } from "@galacean/engine-design";
|
|
2
2
|
import { Canvas } from "./Canvas";
|
|
3
3
|
import { EngineSettings } from "./EngineSettings";
|
|
4
4
|
import { Entity } from "./Entity";
|
|
@@ -136,6 +136,8 @@ export interface EngineConfiguration {
|
|
|
136
136
|
xrDevice?: IXRDevice;
|
|
137
137
|
/** Color space. */
|
|
138
138
|
colorSpace?: ColorSpace;
|
|
139
|
-
/** Shader lab */
|
|
139
|
+
/** Shader lab. */
|
|
140
140
|
shaderLab?: IShaderLab;
|
|
141
|
+
/** Input options. */
|
|
142
|
+
input?: IInputOptions;
|
|
141
143
|
}
|
package/types/SystemInfo.d.ts
CHANGED
|
@@ -7,6 +7,8 @@ export declare class SystemInfo {
|
|
|
7
7
|
static platform: Platform;
|
|
8
8
|
/** The operating system is running on. */
|
|
9
9
|
static operatingSystem: string;
|
|
10
|
+
/** Whether the system support SIMD. */
|
|
11
|
+
private static _simdSupported;
|
|
10
12
|
/**
|
|
11
13
|
* The pixel ratio of the device.
|
|
12
14
|
*/
|
package/types/Utils.d.ts
CHANGED
|
@@ -15,6 +15,12 @@ export declare class Utils {
|
|
|
15
15
|
* @returns Whether the url is absolute url.
|
|
16
16
|
*/
|
|
17
17
|
static isAbsoluteUrl(url: string): boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Judge whether the url is base64 url.
|
|
20
|
+
* @param url - The url to be judged.
|
|
21
|
+
* @returns Whether the url is base64 url.
|
|
22
|
+
*/
|
|
23
|
+
static isBase64Url(url: string): boolean;
|
|
18
24
|
/**
|
|
19
25
|
* Get the values of an object.
|
|
20
26
|
*/
|
|
@@ -15,6 +15,8 @@ export declare class ResourceManager {
|
|
|
15
15
|
retryInterval: number;
|
|
16
16
|
/** The default timeout period for loading assets, in milliseconds. */
|
|
17
17
|
timeout: number;
|
|
18
|
+
/** Base url for loading assets. */
|
|
19
|
+
baseUrl: string | null;
|
|
18
20
|
private _loadingPromises;
|
|
19
21
|
/** Asset path pool, key is the `instanceID` of resource, value is asset path. */
|
|
20
22
|
private _assetPool;
|
|
@@ -6,6 +6,10 @@ import { ModelMesh } from "./ModelMesh";
|
|
|
6
6
|
*/
|
|
7
7
|
export declare class PrimitiveMesh {
|
|
8
8
|
private static _tempVec30;
|
|
9
|
+
private static readonly _sphereSeedPositions;
|
|
10
|
+
private static readonly _sphereSeedCells;
|
|
11
|
+
private static _sphereEdgeIdx;
|
|
12
|
+
private static _spherePoleIdx;
|
|
9
13
|
/**
|
|
10
14
|
* Create a sphere mesh.
|
|
11
15
|
* @param engine - Engine
|
|
@@ -15,6 +19,16 @@ export declare class PrimitiveMesh {
|
|
|
15
19
|
* @returns Sphere model mesh
|
|
16
20
|
*/
|
|
17
21
|
static createSphere(engine: Engine, radius?: number, segments?: number, noLongerAccessible?: boolean): ModelMesh;
|
|
22
|
+
/**
|
|
23
|
+
* Create a sphere mesh by implementing Catmull-Clark Surface Subdivision Algorithm.
|
|
24
|
+
* Max step is limited to 6.
|
|
25
|
+
* @param engine - Engine
|
|
26
|
+
* @param radius - Sphere radius
|
|
27
|
+
* @param step - Number of subdiv steps
|
|
28
|
+
* @param noLongerAccessible - No longer access the vertices of the mesh after creation
|
|
29
|
+
* @returns Sphere model mesh
|
|
30
|
+
*/
|
|
31
|
+
static createSubdivisionSurfaceSphere(engine: Engine, radius?: number, step?: number, noLongerAccessible?: boolean): ModelMesh;
|
|
18
32
|
/**
|
|
19
33
|
* Create a cuboid mesh.
|
|
20
34
|
* @param engine - Engine
|
|
@@ -82,6 +96,14 @@ export declare class PrimitiveMesh {
|
|
|
82
96
|
* @returns Capsule model mesh
|
|
83
97
|
*/
|
|
84
98
|
static createCapsule(engine: Engine, radius?: number, height?: number, radialSegments?: number, heightSegments?: number, noLongerAccessible?: boolean): ModelMesh;
|
|
99
|
+
/**
|
|
100
|
+
* Duplicate vertices at the poles and adjust their UV coordinates.
|
|
101
|
+
*/
|
|
102
|
+
private static _generateAndReplacePoleUV;
|
|
103
|
+
/**
|
|
104
|
+
* Get edge point index for subdivision surface sphere.
|
|
105
|
+
*/
|
|
106
|
+
private static _calculateEdgeIndex;
|
|
85
107
|
static _setCylinderData(cylinderMesh: ModelMesh, radiusTop: number, radiusBottom: number, height: number, radialSegments: number, heightSegments: number, noLongerAccessible: boolean, isRestoreMode: boolean, restoreVertexBuffer?: Buffer): void;
|
|
86
108
|
static _setCapsuleData(capsuleMesh: ModelMesh, radius: number, height: number, radialSegments: number, heightSegments: number, noLongerAccessible: boolean, isRestoreMode: boolean, restoreVertexBuffer?: Buffer): void;
|
|
87
109
|
private static _initialize;
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
export declare class ShaderFactory {
|
|
2
2
|
static parseCustomMacros(macros: string[]): string;
|
|
3
3
|
static registerInclude(includeName: string, includeSource: string): void;
|
|
4
|
-
|
|
4
|
+
/**
|
|
5
|
+
* @param regex The default regex is for engine's builtin glsl `#include` syntax,
|
|
6
|
+
* since `ShaderLab` use the same parsing function but different syntax for `#include` --- `/^[ \t]*#include +"([\w\d.]+)"/gm`
|
|
7
|
+
*/
|
|
8
|
+
static parseIncludes(src: string, regex?: RegExp): string;
|
|
5
9
|
/**
|
|
6
10
|
* Convert lower GLSL version to GLSL 300 es.
|
|
7
11
|
* @param shader - code
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { IXRPose } from "@galacean/engine-design";
|
|
2
|
+
import { Matrix, Quaternion, Vector3 } from "@galacean/engine-math";
|
|
3
|
+
/**
|
|
4
|
+
* Data for describing pose in the XR space.
|
|
5
|
+
*/
|
|
6
|
+
export declare class XRPose implements IXRPose {
|
|
7
|
+
/** The position of the pose in XR space. */
|
|
8
|
+
position: Vector3;
|
|
9
|
+
/** The rotation of the pose in XR space. */
|
|
10
|
+
rotation: Quaternion;
|
|
11
|
+
/** The matrix of the pose in XR space. */
|
|
12
|
+
matrix: Matrix;
|
|
13
|
+
/** The inverse matrix of the pose in XR space. */
|
|
14
|
+
inverseMatrix: Matrix;
|
|
15
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { IXRPlatformFeature } from "@galacean/engine-design";
|
|
2
|
+
import { XRManager } from "../XRManager";
|
|
3
|
+
import { XRFeatureType } from "./XRFeatureType";
|
|
4
|
+
/**
|
|
5
|
+
* The base class of XR feature manager.
|
|
6
|
+
*/
|
|
7
|
+
export declare abstract class XRFeature<T extends IXRPlatformFeature = IXRPlatformFeature> {
|
|
8
|
+
protected _xrManager: XRManager;
|
|
9
|
+
protected _type: XRFeatureType;
|
|
10
|
+
protected _enabled: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Returns whether the feature is enabled.
|
|
13
|
+
*/
|
|
14
|
+
get enabled(): boolean;
|
|
15
|
+
set enabled(value: boolean);
|
|
16
|
+
}
|
|
@@ -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
|
+
_platformFeature: 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,26 @@
|
|
|
1
|
+
import { Camera } from "../../../Camera";
|
|
2
|
+
import { XRTrackedInputDevice } from "../../input/XRTrackedInputDevice";
|
|
3
|
+
/**
|
|
4
|
+
* The manager of XR camera.
|
|
5
|
+
*/
|
|
6
|
+
export declare class XRCameraManager {
|
|
7
|
+
private _xrManager;
|
|
8
|
+
/**
|
|
9
|
+
* The fixed foveation of the camera.
|
|
10
|
+
*/
|
|
11
|
+
get fixedFoveation(): number;
|
|
12
|
+
set fixedFoveation(value: number);
|
|
13
|
+
/**
|
|
14
|
+
* Attach the camera to the specified input type(Camera, LeftCamera or RightCamera).
|
|
15
|
+
* The camera entity need to be moved to the XROrigin entity.
|
|
16
|
+
* @param type - The input type
|
|
17
|
+
* @param camera - The camera to be attached
|
|
18
|
+
*/
|
|
19
|
+
attachCamera(type: XRTrackedInputDevice.Camera | XRTrackedInputDevice.LeftCamera | XRTrackedInputDevice.RightCamera, camera: Camera): void;
|
|
20
|
+
/**
|
|
21
|
+
* Detach the camera from the specified input type.
|
|
22
|
+
* @param type - The input type
|
|
23
|
+
* @returns The camera that was detached
|
|
24
|
+
*/
|
|
25
|
+
detachCamera(type: XRTrackedInputDevice.Camera | XRTrackedInputDevice.LeftCamera | XRTrackedInputDevice.RightCamera): Camera;
|
|
26
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { IXRTracked } from "@galacean/engine-design";
|
|
2
|
+
import { Vector3 } from "@galacean/engine-math";
|
|
3
|
+
import { TrackableType } from "./TrackableType";
|
|
4
|
+
/**
|
|
5
|
+
* XR hit result.
|
|
6
|
+
* It is the detection result returned by using XR HitTest feature.
|
|
7
|
+
*/
|
|
8
|
+
export declare class XRHitResult {
|
|
9
|
+
/** The position of the hit point. */
|
|
10
|
+
point: Vector3;
|
|
11
|
+
/** The normal of the hit point. */
|
|
12
|
+
normal: Vector3;
|
|
13
|
+
/** The distance from the origin of the ray to the hit point. */
|
|
14
|
+
distance: number;
|
|
15
|
+
/** The hit tracked object, such as IXRTrackedPlane. */
|
|
16
|
+
trackedObject: IXRTracked;
|
|
17
|
+
/** The type of tracked object detected, such as TrackableType.Plane */
|
|
18
|
+
trackableType: TrackableType;
|
|
19
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Ray } from "@galacean/engine-math";
|
|
2
|
+
import { XRManager } from "../../XRManager";
|
|
3
|
+
import { XRFeature } from "../XRFeature";
|
|
4
|
+
import { TrackableType } from "./TrackableType";
|
|
5
|
+
import { XRHitResult } from "./XRHitResult";
|
|
6
|
+
/**
|
|
7
|
+
* The manager of XR hit test.
|
|
8
|
+
*/
|
|
9
|
+
export declare class XRHitTest extends XRFeature {
|
|
10
|
+
private _tempRay;
|
|
11
|
+
private _tempVec2;
|
|
12
|
+
private _tempVec30;
|
|
13
|
+
private _tempVec31;
|
|
14
|
+
private _tempVec32;
|
|
15
|
+
private _tempVec33;
|
|
16
|
+
private _tempVec34;
|
|
17
|
+
private _tempVec35;
|
|
18
|
+
/**
|
|
19
|
+
* @param xrManager - The xr manager
|
|
20
|
+
*/
|
|
21
|
+
constructor(xrManager: XRManager);
|
|
22
|
+
/**
|
|
23
|
+
* Hit test.
|
|
24
|
+
* @param ray - The ray to test
|
|
25
|
+
* @param type - The type of hit test
|
|
26
|
+
* @returns The hit result
|
|
27
|
+
*/
|
|
28
|
+
hitTest(ray: Ray, type: TrackableType): XRHitResult[];
|
|
29
|
+
/**
|
|
30
|
+
* Screen hit test.
|
|
31
|
+
* @param x - The x coordinate of the screen point (normalized)
|
|
32
|
+
* @param y - The y coordinate of the screen point (normalized)
|
|
33
|
+
* @param type - The type of hit test
|
|
34
|
+
* @returns The hit result
|
|
35
|
+
*/
|
|
36
|
+
screenHitTest(x: number, y: number, type: TrackableType): XRHitResult[];
|
|
37
|
+
private _hitTestPlane;
|
|
38
|
+
private _checkPointerWithinPlane;
|
|
39
|
+
}
|
|
@@ -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,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,18 @@
|
|
|
1
|
+
import { XRManager } from "../../XRManager";
|
|
2
|
+
import { XRFeature } from "../XRFeature";
|
|
3
|
+
import { XRMovementTrackingMode } from "./XRMovementTrackingMode";
|
|
4
|
+
/**
|
|
5
|
+
* The manager of XR movement tracking.
|
|
6
|
+
*/
|
|
7
|
+
export declare class XRMovementTracking extends XRFeature {
|
|
8
|
+
private _trackingMode;
|
|
9
|
+
/**
|
|
10
|
+
* Get the tracking mode.
|
|
11
|
+
*/
|
|
12
|
+
get trackingMode(): XRMovementTrackingMode;
|
|
13
|
+
/**
|
|
14
|
+
* @param xrManager - The xr manager
|
|
15
|
+
* @param trackingMode - The tracking mode
|
|
16
|
+
*/
|
|
17
|
+
constructor(xrManager: XRManager, trackingMode?: XRMovementTrackingMode);
|
|
18
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { IXRMovementTracking, IXRMovementTrackingDescriptor } from "@galacean/engine-design";
|
|
2
|
+
import { XRMovementTrackingMode } from "./XRMovementTrackingMode";
|
|
3
|
+
import { XRFeatureManager } from "../XRFeatureManager";
|
|
4
|
+
export declare class XRMovementTrackingManager extends XRFeatureManager<IXRMovementTrackingDescriptor, IXRMovementTracking> {
|
|
5
|
+
/**
|
|
6
|
+
* Get the tracking mode.
|
|
7
|
+
*/
|
|
8
|
+
get trackingMode(): XRMovementTrackingMode;
|
|
9
|
+
set trackingMode(value: XRMovementTrackingMode);
|
|
10
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { IXRTrackablePlatformFeature } from "@galacean/engine-design";
|
|
2
|
+
import { XRTrackingState } from "../../input/XRTrackingState";
|
|
3
|
+
import { XRFeature } from "../XRFeature";
|
|
4
|
+
import { XRRequestTracking } from "./XRRequestTracking";
|
|
5
|
+
import { XRTracked } from "./XRTracked";
|
|
6
|
+
/**
|
|
7
|
+
* The base class of XR trackable manager.
|
|
8
|
+
*/
|
|
9
|
+
export declare abstract class XRTrackableFeature<T extends XRTracked, K extends XRRequestTracking<T>> extends XRFeature<IXRTrackablePlatformFeature<T, K>> {
|
|
10
|
+
protected _requestTrackings: K[];
|
|
11
|
+
protected _tracked: T[];
|
|
12
|
+
protected _added: T[];
|
|
13
|
+
protected _updated: T[];
|
|
14
|
+
protected _removed: T[];
|
|
15
|
+
protected _statusSnapshot: Record<number, XRTrackingState>;
|
|
16
|
+
private _listeners;
|
|
17
|
+
/**
|
|
18
|
+
* Returns the tracked objects.
|
|
19
|
+
*/
|
|
20
|
+
get tracked(): readonly T[];
|
|
21
|
+
/**
|
|
22
|
+
* Add a listening function for tracked object changes.
|
|
23
|
+
* @param listener - The listening function
|
|
24
|
+
*/
|
|
25
|
+
addChangedListener(listener: (added: readonly T[], updated: readonly T[], removed: readonly T[]) => void): void;
|
|
26
|
+
/**
|
|
27
|
+
* Remove a listening function of tracked object changes.
|
|
28
|
+
* @param listener - The listening function
|
|
29
|
+
*/
|
|
30
|
+
removeChangedListener(listener: (added: readonly T[], updated: readonly T[], removed: readonly T[]) => void): void;
|
|
31
|
+
_onUpdate(): void;
|
|
32
|
+
_onSessionStop(): void;
|
|
33
|
+
_onSessionExit(): void;
|
|
34
|
+
_onDestroy(): void;
|
|
35
|
+
protected _addRequestTracking(requestTracking: K): void;
|
|
36
|
+
protected _removeRequestTracking(requestTracking: K): void;
|
|
37
|
+
protected _removeAllRequestTrackings(): void;
|
|
38
|
+
}
|
|
@@ -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(requestTracking: 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 @@
|
|
|
1
|
+
export {};
|