deep-engine-demo/packages/docs/api/tool/CollisionDetector.md
2026-04-19 18:46:28 +08:00

3.2 KiB
Raw Blame History

outline
2
3

CollisionDetector

  • 源文件:packages/sdk/src/tool/CollisionDetector.ts
  • 文档位置:packages/docs/api/tool/CollisionDetector.md

类:CollisionDetector

  • 作用:碰撞检测器 使用 three-mesh-bvh 进行高效的碰撞检测

属性

属性名 可见性 类型 作用
meshBVHMap public WeakMap<THREE.Mesh, any> 用于保存 meshBVHMap 的映射关系。

方法

computeBoundsTree(geometry: THREE.BufferGeometry): void

  • 作用:为几何体计算 BVH

  • 入参:

参数名 类型 必填 说明
geometry THREE.BufferGeometry 几何体
  • 出参:void
  • 返回说明:无返回值。

disposeBoundsTree(geometry: THREE.BufferGeometry): void

  • 作用:释放几何体的 BVH

  • 入参:

参数名 类型 必填 说明
geometry THREE.BufferGeometry 几何体
  • 出参:void
  • 返回说明:无返回值。

hasBoundsTree(geometry: THREE.BufferGeometry): boolean

  • 作用:检查几何体是否有 BVH

  • 入参:

参数名 类型 必填 说明
geometry THREE.BufferGeometry 几何体
  • 出参:boolean
  • 返回说明:是否有 BVH

ensureBoundsTree(geometry: THREE.BufferGeometry): void

  • 作用:确保几何体有 BVH如果没有则计算

  • 入参:

参数名 类型 必填 说明
geometry THREE.BufferGeometry 几何体
  • 出参:void
  • 返回说明:无返回值。

buildBVH(mesh: THREE.Mesh): void

  • 作用:为网格构建 BVH

  • 入参:

参数名 类型 必填 说明
mesh THREE.Mesh - 需要构建 BVH 的网格
  • 出参:void
  • 返回说明:无返回值。

checkIntersection(meshA: THREE.Mesh, meshB: THREE.Mesh): boolean

  • 作用:检测两个网格是否相交

  • 入参:

参数名 类型 必填 说明
meshA THREE.Mesh - 网格 A
meshB THREE.Mesh - 网格 B
  • 出参:boolean
  • 返回说明:是否相交

getIntersectionVolume(meshA: THREE.Mesh, meshB: THREE.Mesh): THREE.Box3 | null

  • 作用:获取两个网格的相交体积

  • 入参:

参数名 类型 必填 说明
meshA THREE.Mesh - 网格 A
meshB THREE.Mesh - 网格 B
  • 出参:THREE.Box3 \| null
  • 返回说明:相交的包围盒,如果不相交则返回 null

disposeBVH(mesh: THREE.Mesh): void

  • 作用:清理网格的 BVH

  • 入参:

参数名 类型 必填 说明
mesh THREE.Mesh - 需要清理 BVH 的网格
  • 出参:void
  • 返回说明:无返回值。

disposeAll(): void

  • 作用:释放资源并销毁当前实例。

  • 入参:无

  • 出参:void

  • 返回说明:无返回值。

构造示例

  • 当前 Demo 中没有直接展示 CollisionDetector 的构造调用。

函数示例

  • 当前 Demo 中没有直接展示 CollisionDetector 的公开方法调用。