LCCObject::raycast
Screen-click-based raycasting.
Can be used for annotation, measurement, ground detection (digital humans), and more.
Version Requirement
SDK v0.3.0+
Engine Support
Three.js / CesiumJS
API
LCCObject::raycast(param: RaycastParam): IPoint3 | null
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
param.evt | MouseEvent / PointerEvent | Yes | - | Mouse click event, e.g., mousedown. |
param.maxDistance | number | Yes | - | Maximum detection distance, in meters. |
param.radius | number | Yes | - | Detection precision; adjust based on the actual scenario, in meters. |
param.opacityThreshold | number | No | 0.5 | Opacity threshold for high-precision detection, range [0, 1]. Only effective when usePrecisionRaycast is true. SDK v0.6.3+ |
Return Value
IPoint3 | null — Detected point coordinates (x, y, z) in world space. Returns null if no point is detected.
Usage Example
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
}
});
Notes
- This method must be called after the success callback of
LCCRender.load()has been triggered. - In Cesium, listen to the canvas
pointerdownevent, notdocument'smousedown. - The returned coordinates are in world space.
Related APIs
LCCObject::raycastFromOrigin()LCCObject::intersectsRayExt()