XRTransientInputHitTestResult
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
The XRTransientInputHitTestResult
interface of the WebXR Device API contains an array of results of a hit test for transient input, grouped by input source.
You can get an array of XRHitTestResult
objects for a frame by calling XRFrame.getHitTestResultsForTransientInput()
.
Instance properties
XRTransientInputHitTestResult.inputSource
Read only Experimental-
Represents the
XRInputSource
that was used to compute theresults
array. XRTransientInputHitTestResult.results
Read only Experimental-
Represents an array of
XRHitTestResult
objects containing the hit test results for the input source, ordered by the distance along the ray used to perform the hit test, with the closest result at position 0.
Instance methods
None.
Examples
Accessing transient input hit test results
Two arrays are used to access transient input hit test results. First, you get an array of XRTransientInputHitTestResult
objects by calling XRFrame.getHitTestResultsForTransientInput()
. Second, to get to the actual XRHitTestResult
objects for an input source, you dereference the results
property on one of the XRTransientInputHitTestResult
objects.
// frame loop
function onXRFrame(time, xrFrame) {
let hitTestResults = xrFrame.getHitTestResultsForTransientInput(
transientHitTestSource,
);
hitTestResults.forEach((resultsPerInputSource) => {
resultsPerInputSource.results.forEach((hitTest) => {
// do something with the hit test
hitTest.getPose(referenceSpace);
});
});
}
Filtering input sources
The inputSource
property allows you to filter hit test results by input source.
// frame loop
function onXRFrame(time, xrFrame) {
let hitTestResults = xrFrame.getHitTestResultsForTransientInput(
transientHitTestSource,
);
hitTestResults.forEach((resultsPerInputSource) => {
if (resultsPerInputSource.inputSource === myPreferredInputSource) {
// act on hit test results from the preferred input source
}
});
}
Specifications
Specification |
---|
WebXR Hit Test Module # xr-transient-input-hit-test-result-interface |
Browser compatibility
BCD tables only load in the browser