LCCObject::raycast
画面クリックベースのレイキャスト。
アノテーション、測定、地面検出(デジタルヒューマン)などに使用できます。
バージョン要件
SDK v0.3.0+
エンジンサポート
Three.js / CesiumJS
API
LCCObject::raycast(param: RaycastParam): IPoint3 | null
パラメータ
| パラメータ | 型 | 必須 | デフォルト値 | 説明 |
|---|---|---|---|---|
param.evt | MouseEvent / PointerEvent | はい | - | マウスクリックイベント。例: mousedown。 |
param.maxDistance | number | はい | - | 最大検出距離(メートル単位)。 |
param.radius | number | はい | - | 検出精度。実際のシナリオに応じて調整してください(メートル単位)。 |
param.opacityThreshold | number | いいえ | 0.5 | 高精度検出の不透明度しきい値。範囲 [0, 1]。usePrecisionRaycast が true の場合のみ有効。SDK v0.6.3+ |
戻り値
IPoint3 | null — ワールド空間での検出ポイント座標(x, y, z)。ポイントが検出されない場合は null を返します。
使用例
Three.js
document.addEventListener('mousedown', (evt) => {
let checkPos = lccObject.raycast({ evt: evt, maxDistance: 100, radius: 0.1 });
if (checkPos) {
console.log(checkPos.x, checkPos.y, checkPos.z);
} else {
// No point detected
}
});
CesiumJS
viewer.scene.canvas.addEventListener('pointerdown', (evt) => {
let checkPos = lccObject.raycast({ evt: evt, maxDistance: 100, radius: 0.1 });
if (checkPos) {
console.log(checkPos.x, checkPos.y, checkPos.z);
} else {
// No point detected
}
});
注意事項
- このメソッドは
LCCRender.load()の成功コールバックが発生した後に呼び出す必要があります。 - Cesium では、
documentのmousedownではなく、canvas のpointerdownイベントをリッスンしてください。 - 返される座標はワールド空間のものです。
関連 API
LCCObject::raycastFromOrigin()LCCObject::intersectsRayExt()