メインコンテンツへスキップ

xrimageupdated

概要

このイベントは、xrweb によってイメージ・ターゲットの位置、回転、拡大縮小が変化したときに発生します。

imageupdated.detail : { name, type, position, rotation, scale, scaledWidth, scaledHeight, height, radiusTop, radiusBottom, arcStartRadians, arcLengthRadians }

プロパティ説明
name画像の名前です。
type'FLAT', 'CYLINDRICAL', 'CONICAL' のいずれか。
position: {x, y, z}配置された画像の3次元位置。
rotation: {w, x, y, z}配置された画像の3次元の局所的な向き。
scaleこの画像に付随するオブジェクトに適用されるスケール係数。

type = FLATの場合:

プロパティ説明
scaledWidthシーン内の画像の幅、スケールを掛けた時の画像。
scaledHeightシーン内の画像の高さ、スケールを掛けた時の画像。

type= CYLINDRICAL または CONICALの場合:

プロパティ説明
height曲面ターゲットの高さ。
radiusTop曲面ターゲットの上部の半径。
radiusBottom曲面ターゲットの下部の半径。
arcStartRadians開始角度。 (ラジアン単位)
arcLengthRadians中心角。 (ラジアン単位)

AFRAME.registerComponent('my-named-image-target', {
schema: {
name: { type: 'string' }
},
init: function () {
const object3D = this.el.object3D
const name = this.data.name
object3D.visible = false

const showImage = ({detail}) => {
if (name != detail.name) {
return
}
object3D.position.copy(detail.position)
object3D.quaternion.copy(detail.rotation)
object3D.scale.set(detail.scale, detail.scale, detail.scale)
object3D.visible = true
}

const hideImage = ({detail}) => {
if (name != detail.name) {
return
}
object3D.visible = false
}

this.el.sceneEl.addEventListener('xrimagefound', showImage)
this.el.sceneEl.addEventListener('xrimageupdated', showImage)
this.el.sceneEl.addEventListener('xrimagelost', hideImage)
}
})