XR8.XrController.hitTest()
XrController.hitTest(X, Y, includedTypes = [])
概要
カメラフィード上の点の3次元位置を推定します。 XとYは、0から1の間の数値で指定します。(0, 0)はカメラフィードの左上隅、(1, 1)はカメラフィードの右下隅です。このカメラフィードは、 XR8.XrController.updateCameraProjectionMatrix()
で指定したカメラでレンダリングしたものになります。 3次元位置推定に使用されたデータのソースに基づく1回のヒットテストに対して、複数の位置推定が返される場合があります。 位置の推定に使用されたデータソースは、hitTest.type
で示されます。
パラメータ
パラメータ | タイプ | 説明 |
---|---|---|
X | Number | カメラフィードの左から右への水平位置を表す 0~1の値です。 |
Y | Number | カメラフィードの上から下への垂直位置を表す0〜1の値です。 |
includedTypes | [String] | 'FEATURE_POINT' を含むリストです。 |
戻り値
ヒットテストから推定される3次元位置の配列です。
[{ type, position, rotation, distance }]
パラメータ | タイプ | 説明 |
---|---|---|
タイプ | String | 'FEATURE_POINT' , 'ESTIMATED_SURFACE' , 'DETECTED_SURFACE' ,'UNSPECIFIED' のいずれか一つを返します。 |
position | {x, y, z} | カメラフィード上でクエリされた地点の推定3Dポジションです。 |
rotation | {x, y, z, w} | カメラフィード上でクエリされた地点の推定3Dローテーションです。 |
distance | Number | カメラフィード上でクエリされた地点の機器からの推定距離です。 |
例
const hitTestHandler = (e) => {
const x = e.touches[0].clientX / window.innerWidth
const y = e.touches[0].clientY / window.innerHeight
const hitTestResults = XR8.XrController.hitTest(x, y, ['FEATURE_POINT'])
}