Skip to content

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)

设置包围盒的最小角点坐标。

参数类型说明
vVector3

设置最小点

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)

设置包围盒的最大角点坐标。

参数类型说明
vVector3

设置最大点

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()))

属性 ​

名称类型默认值说明
MinVector3-包围盒的最小点坐标。
MaxVector3-包围盒的最大点坐标。