|
@@ -70,9 +70,14 @@ interface XRSession extends XRAnchorCreator {
|
|
|
renderState: XRRenderState;
|
|
|
inputSources: Array<XRInputSource>;
|
|
|
|
|
|
- // AR hit test
|
|
|
+ // hit test
|
|
|
+ requestHitTestSource(options: XRHitTestOptionsInit): Promise<XRHitTestSource>;
|
|
|
+ requestHitTestSourceForTransientInput(options: XRTransientInputHitTestOptionsInit): Promise<XRTransientInputHitTestSource>;
|
|
|
+
|
|
|
+ // legacy AR hit test
|
|
|
requestHitTest(ray: XRRay, referenceSpace: XRReferenceSpace): Promise<XRHitResult[]>;
|
|
|
|
|
|
+ // legacy plane detection
|
|
|
updateWorldTrackingState(options: {
|
|
|
planeDetectionState?: { enabled: boolean; }
|
|
|
}): void;
|
|
@@ -91,6 +96,9 @@ interface XRFrame {
|
|
|
getViewerPose(referenceSpace: XRReferenceSpace): XRViewerPose | undefined;
|
|
|
getPose(space: XRSpace, baseSpace: XRSpace): XRPose | undefined;
|
|
|
|
|
|
+ // AR
|
|
|
+ getHitTestResults(hitTestSource: XRHitTestSource): Array<XRHitTestResult> ;
|
|
|
+ getHitTestResultsForTransientInput(hitTestSource: XRTransientInputHitTestSource): Array<XRTransientInputHitTestResult>;
|
|
|
// Anchors
|
|
|
trackedAnchors?: XRAnchorSet;
|
|
|
// Planes
|
|
@@ -161,10 +169,44 @@ declare class XRRay {
|
|
|
matrix: Float32Array;
|
|
|
}
|
|
|
|
|
|
+enum XRHitTestTrackableType {
|
|
|
+ "point",
|
|
|
+ "plane"
|
|
|
+}
|
|
|
+
|
|
|
interface XRHitResult {
|
|
|
hitMatrix: Float32Array;
|
|
|
}
|
|
|
|
|
|
+interface XRTransientInputHitTestResult {
|
|
|
+ readonly inputSource: XRInputSource;
|
|
|
+ readonly results: Array<XRHitTestResult>;
|
|
|
+}
|
|
|
+
|
|
|
+interface XRHitTestResult {
|
|
|
+ getPose(baseSpace: XRSpace): XRPose?;
|
|
|
+}
|
|
|
+
|
|
|
+interface XRHitTestSource {
|
|
|
+ cancel(): void;
|
|
|
+}
|
|
|
+
|
|
|
+interface XRTransientInputHitTestSource {
|
|
|
+ cancel(): void;
|
|
|
+}
|
|
|
+
|
|
|
+interface XRHitTestOptionsInit {
|
|
|
+ space: XRSpace;
|
|
|
+ entityTypes?: Array<XRHitTestTrackableType>;
|
|
|
+ offsetRay?: XRRay;
|
|
|
+}
|
|
|
+
|
|
|
+interface XRTransientInputHitTestOptionsInit {
|
|
|
+ profile: DOMString;
|
|
|
+ entityTypes?: Array<XRHitTestTrackableType>;
|
|
|
+ offsetRay?: XRRay;
|
|
|
+}
|
|
|
+
|
|
|
interface XRAnchor {
|
|
|
// remove?
|
|
|
id?: string;
|