全局
MeshBVH
SerializedBVH
MeshBVHVisualizer
ExtendedTriangle
OrientedBox
Raycaster
StaticGeometryGenerator
GenerateMeshBVHWorker

OrientedBox

OrientedBox是three-bvh-mesh库中的一个重要概念之一,它是指一个有向包围盒。

在three-bvh-mesh库中,将物体的包围盒设计成了有向包围盒,因为有向包围盒可以更加准确地表达物体的旋转情况。

定义

OrientedBox可以用一个最小的包围盒来定义,它包括:

  • center:有向包围盒的中心点
  • halfsize:有向包围盒的各个方向上的半长
  • orientation:有向包围盒的旋转角度

特点

相较于其他类型的包围盒,OrientedBox有以下几个特点:

  • 更加准确:OrientedBox可以精确地表示物体的旋转情况,使得碰撞检测更加准确。
  • 更加紧凑:OrientedBox可以把物体的包围盒更加紧凑地包裹住,提高碰撞检测效率。
  • 更加耗费计算资源:OrientedBox需要处理更多的信息,因此计算资源消耗相对更大。

代码示例

创建一个OrientedBox对象:

import { OrientedBox } from 'three-bvh-mesh';

const center = new Vector3(0, 0, 0);
const halfsize = new Vector3(1, 1, 1);
const orientation = new Quaternion().setFromEuler(new Euler(0, 0, 0));
const orientedBox = new OrientedBox(center, halfsize, orientation);

获取OrientedBox的数据:

const center = orientedBox.center;
const halfsize = orientedBox.halfsize;
const orientation = orientedBox.orientation;