LCCObject::intersectsCapsule
Capsule collision test.
Can be used to implement digital human collision features.
Version Requirement
SDK v0.4.1+
Engine Support
Three.js
API
LCCObject::intersectsCapsule(param: IntersectsCapsuleParam): IntersectsCapsuleResult
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
param.start | { x: number, y: number, z: number } | Yes | - | Bottom point of the capsule. |
param.end | { x: number, y: number, z: number } | Yes | - | Top point of the capsule. |
param.radius | number | Yes | - | Capsule radius. |
param.noDelta | boolean | No | - | When true, collision offset is not calculated for faster detection; when false, offset is computed. |
Return Value
| Property | Type | Description |
|---|---|---|
hit | boolean | Whether a collision occurred. |
delta | { x: number, y: number, z: number } | Collision offset, useful for adjusting digital human position. Direction points toward the capsule. Only valid when noDelta is false. |
Usage Example
const ret = lccObject.hasCollision();
if (ret) {
const start = { x: 10, y: 10, z: 0 };
const end = { x: 10, y: 10, z: 1.7 };
const radius = 1;
const noDelta = false;
let intersectResult = lccObject.intersectsCapsule({ start, end, radius, noDelta });
if (intersectResult.hit) {
console.log('Collision occurs, delta: ', intersectResult.delta);
}
} else {
// Collision function not supported
}
Notes
- This method must be called after the success callback of
LCCRender.load()has been triggered. - Check collision support via
hasCollision()before use. - The SDK only loads collision data within the vicinity of the camera position.
Related APIs
LCCObject::hasCollision()LCCObject::intersectsSphere()