主题
BoundingBox
轴对齐包围盒用于定义一个三维空间中的矩形区域,通过最小点和最大点确定范围。它提供获取中心点、半尺寸以及读写最小最大点的能力,常用于空间查询、碰撞检测和区域裁剪。
概览
轴对齐包围盒用于定义一个三维空间中的矩形区域,通过最小点和最大点确定范围。它提供获取中心点、半尺寸以及读写最小最大点的能力,常用于空间查询、碰撞检测和区域裁剪。
可通过
BoundingBox.New(min, max)构造
代码示例
构造包围盒并读取中心与半尺寸
lua
-- @runtime client
local box = BoundingBox.New(
Vector3.New(-5, -2, -3),
Vector3.New(5, 2, 3)
)
local center = box:GetCenter() -- Vector3(0, 0, 0)
local extent = box:GetExtent() -- Vector3(5, 2, 3),半尺寸
print("中心:", center, "半尺寸:", extent)函数
GetCenter
签名:GetCenter() -> Vector3
返回包围盒的中心点坐标。
返回值 Vector3
获取中心点
lua
-- @runtime client
local box = BoundingBox.New(Vector3.New(-5, -2, -3), Vector3.New(5, 2, 3))
local center = box:GetCenter() -- 返回 Vector3(0, 0, 0)
print("中心:", tostring(center))GetExtent
签名:GetExtent() -> Vector3
返回包围盒从中心到边界的半尺寸向量,即 (Max - Min) / 2。
返回值 Vector3
获取半尺寸
lua
-- @runtime client
local box = BoundingBox.New(Vector3.New(-5, -2, -3), Vector3.New(5, 2, 3))
local extent = box:GetExtent() -- 返回半尺寸 Vector3(5, 2, 3)
print("半尺寸:", tostring(extent))GetMin
签名:GetMin() -> Vector3
返回包围盒的最小点坐标。
返回值 Vector3
获取最小点
lua
-- @runtime client
local box = BoundingBox.New(Vector3.New(-5, -2, -3), Vector3.New(5, 2, 3))
local minP = box:GetMin() -- 返回 Vector3(-5, -2, -3)
print("最小点:", tostring(minP))SetMin
签名:SetMin(v: Vector3)
设置包围盒的最小角点坐标。
| 参数 | 类型 | 说明 |
|---|---|---|
v | Vector3 |
设置最小点
lua
-- @runtime client
local box = BoundingBox.New(Vector3.New(0, 0, 0), Vector3.New(2, 2, 2))
box:SetMin(Vector3.New(-1, -1, -1))
print("新的最小点:", tostring(box:GetMin()))GetMax
签名:GetMax() -> Vector3
返回包围盒的最大点坐标。
返回值 Vector3
获取最大点
lua
-- @runtime client
local box = BoundingBox.New(Vector3.New(-5, -2, -3), Vector3.New(5, 2, 3))
local maxP = box:GetMax() -- 返回 Vector3(5, 2, 3)
print("最大点:", tostring(maxP))SetMax
签名:SetMax(v: Vector3)
设置包围盒的最大角点坐标。
| 参数 | 类型 | 说明 |
|---|---|---|
v | Vector3 |
设置最大点
lua
-- @runtime client
local box = BoundingBox.New(Vector3.New(0, 0, 0), Vector3.New(2, 2, 2))
box:SetMax(Vector3.New(3, 3, 3))
print("新的最大点:", tostring(box:GetMax()))属性
| 名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
Min | Vector3 | - | 包围盒的最小点坐标。 |
Max | Vector3 | - | 包围盒的最大点坐标。 |
