LCCObject::raycastFromOrigin
Raycasting con origine e direzione personalizzate.
Supporta origine e direzione personalizzate per il raycasting sui dati del modello LCC nello spazio mondo.
Requisito di versione
SDK v0.3.0+
Supporto motore
Three.js / CesiumJS
API
LCCObject::raycastFromOrigin(param: RaycastFromOriginParam): IPoint3 | null
Parametri
| Parametro | Tipo | Obbligatorio | Predefinito | Descrizione |
|---|---|---|---|---|
param.origin | { x: number, y: number, z: number } | Sì | - | Origine del raggio nelle coordinate dello spazio mondo. |
param.direction | { x: number, y: number, z: number } | Sì | - | Direzione del raggio; può essere normalizzata o non normalizzata. |
param.maxDistance | number | Sì | - | Distanza di rilevamento, in metri. |
param.radius | number | Sì | - | Precisione di rilevamento, in metri. |
param.opacityThreshold | number | No | 0.5 | Soglia di opacità per il rilevamento ad alta precisione, intervallo [0, 1]. Efficace solo quando usePrecisionRaycast è true. SDK v0.6.3+ |
Valore di ritorno
IPoint3 | null — Coordinate del punto rilevato (x, y, z) nello spazio mondo. Restituisce null se nessun punto viene rilevato.
Esempio di utilizzo
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
}
Note
- Questo metodo deve essere chiamato dopo che il callback di successo di
LCCRender.load()è stato attivato. directionpuò essere un vettore normalizzato o non normalizzato.- Se un valore
radiusdi 0.01 non rileva dati, provare ad aumentarlo, ad es. a 0.1.
API correlate
LCCObject::raycast()LCCObject::intersectsRayFromOriginExt()