LCCObject::raycastFromOrigin
Raycasting con origen y dirección personalizados.
Soporta origen y dirección personalizados para raycasting contra datos del modelo LCC en espacio mundial.
Requisito de versión
SDK v0.3.0+
Compatibilidad de motor
Three.js / CesiumJS
API
LCCObject::raycastFromOrigin(param: RaycastFromOriginParam): IPoint3 | null
Parámetros
| Parámetro | Tipo | Obligatorio | Predeterminado | Descripción |
|---|---|---|---|---|
param.origin | { x: number, y: number, z: number } | Sí | - | Origen del rayo en coordenadas de espacio mundial. |
param.direction | { x: number, y: number, z: number } | Sí | - | Dirección del rayo; puede estar normalizada o sin normalizar. |
param.maxDistance | number | Sí | - | Distancia de detección, en metros. |
param.radius | number | Sí | - | Precisión de detección, en metros. |
param.opacityThreshold | number | No | 0.5 | Umbral de opacidad para detección de alta precisión, rango [0, 1]. Solo efectivo cuando usePrecisionRaycast es true. SDK v0.6.3+ |
Valor de retorno
IPoint3 | null — Coordenadas del punto detectado (x, y, z) en espacio mundial. Devuelve null si no se detecta ningún punto.
Ejemplo de uso
const origin = { x: 10, y: 10, z: 10 };
const startPos = { x: 10, y: 10, z: 10 };
const endPos = { x: 50, y: 50, z: 50 };
const direction = {
x: endPos.x - startPos.x,
y: endPos.y - startPos.y,
z: endPos.z - startPos.z
};
const maxDistance = 100;
const radius = 0.01;
let checkPos = lccObject.raycastFromOrigin({ origin, direction, maxDistance, radius });
if (checkPos) {
console.log('checkPos: ', checkPos.x, checkPos.y, checkPos.z);
} else {
// No point detected
}
Notas
- Este método debe llamarse después de que se haya activado el callback de éxito de
LCCRender.load(). directionpuede ser un vector normalizado o sin normalizar.- Si un valor de
radiusde 0.01 no detecta datos, intente aumentarlo, p. ej., a 0.1.
APIs relacionadas
LCCObject::raycast()LCCObject::intersectsRayFromOriginExt()