LCCObject::intersectsRayFromOriginExt
Raycasting basato su corpo di collisione con origine e direzione personalizzate.
Requisito di versione
SDK v0.5.0+
Supporto motore
Three.js
API
LCCObject::intersectsRayFromOriginExt(param: IntersectsRayFromOriginExtParam): IntersectsResult | null
Parametri
| Parametro | Tipo | Obbligatorio | Predefinito | Descrizione |
|---|---|---|---|---|
param.origin | { x: number, y: number, z: number } | Sì | - | Origine del raggio. |
param.direction | { x: number, y: number, z: number } | Sì | - | Direzione del raggio. |
param.maxDistance | number | Sì | - | Distanza di rilevamento, in metri. |
Valore di ritorno
Restituisce un oggetto contenente point e normal in caso di successo; restituisce null in caso di fallimento.
| Proprietà | Tipo | Descrizione |
|---|---|---|
point | { x: number, y: number, z: number } | Coordinate del punto di collisione nello spazio mondo. |
normal | { x: number, y: number, z: number } | Normale del punto di collisione nello spazio mondo. |
Esempio di utilizzo
const ret = lccObject.hasCollision();
if (ret) {
const origin = { x: 10, y: 10, z: 10 };
const direction = { x: 1, y: 0, z: 0 };
const maxDistance = 10;
let result = lccObject.intersectsRayFromOriginExt({ origin, direction, maxDistance });
if (result) {
console.log('point: ', result.point.x, result.point.y, result.point.z);
console.log('normal: ', result.normal.x, result.normal.y, result.normal.z);
} else {
// No point detected
}
} else {
// Collision function not supported
}
Note
- Questo metodo deve essere chiamato dopo che il callback di successo di
LCCRender.load()è stato attivato. - Verificare il supporto alla collisione tramite
hasCollision()prima dell'uso. - L'SDK carica solo i dati di collisione nelle vicinanze della posizione della camera.
API correlate
LCCObject::hasCollision()LCCObject::intersectsRayExt()LCCObject::raycastFromOrigin()