LCCObject::raycast
Bildschirmklickbasiertes Raycasting.
Kann für Annotation, Messung, Bodenerkennung (digitale Menschen) und mehr verwendet werden.
Versionsanforderung
SDK v0.3.0+
Engine-Unterstützung
Three.js / CesiumJS
API
LCCObject::raycast(param: RaycastParam): IPoint3 | null
Parameter
| Parameter | Typ | Erforderlich | Standard | Beschreibung |
|---|---|---|---|---|
param.evt | MouseEvent / PointerEvent | Ja | - | Mausklick-Ereignis, z. B. mousedown. |
param.maxDistance | number | Ja | - | Maximale Erkennungsdistanz, in Metern. |
param.radius | number | Ja | - | Erkennungspräzision; je nach Szenario anpassen, in Metern. |
param.opacityThreshold | number | Nein | 0.5 | Opazitätsschwelle für hochpräzise Erkennung, Bereich [0, 1]. Nur wirksam wenn usePrecisionRaycast true ist. SDK v0.6.3+ |
Rückgabewert
IPoint3 | null — Erkannte Punktkoordinaten (x, y, z) im Weltraum. Gibt null zurück, wenn kein Punkt erkannt wird.
Verwendungsbeispiel
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
}
});
Hinweise
- Diese Methode muss nach dem Auslösen des Erfolgs-Callbacks von
LCCRender.load()aufgerufen werden. - In Cesium auf das Canvas-Ereignis
pointerdownhören, nicht aufmousedownvondocument. - Die zurückgegebenen Koordinaten befinden sich im Weltraum.
Verwandte APIs
LCCObject::raycastFromOrigin()LCCObject::intersectsRayExt()