BoundingBox
更新时间:2021-06-17
此类封装BoundingBox相关数据与操作,BoundingBox代表平行世界坐标轴的AABB包围盒,主要数据有三轴最小点、三轴最大点、中心点等。
Public methods | |
---|---|
BoundingBox | BoundingBox AABB包围盒的无参构造函数 |
BoundingBox | BoundingBox(ARVec3 min, ARVec3 max) AABB包围盒的有参构造函数 |
BoundingBox | center 获取包围盒的中心 |
BoundingBox | half_extent 获取包围盒的三轴长度的一半 |
BoundingBox | merge 合并目标包围盒到当前包围盒 |
BoundingBox | intersects(box) 判定和目标包围盒是否相交 |
BoundingBox | set(ARVec3 min, ARVec3 max) 设定包围盒的最小最大点 |
BoundingBox | set(box) 用目标包围盒设定当前包围盒的数据 |
Demo | |
---|---|
BoundingBox Demo | BoundingBox BoundingBoxDemo ()Demo示例 |
BoundingBox Demo
BoundingBox BoundingBoxDemo ()
demo示例
sample:
local box = scene.node:get_bounding_box()
local center = box:center()
local half_extent = box:half_extent()
local min = center - half_extent
local max = center + half_extent
BoundingBox
API起始版本:190
BoundingBox BoundingBox()
Returns
- BoundingBox : 默认参数构造的AABB包围盒
AABB包围盒的无参构造函数
sample:
local BoundingBox = ae.BoundingBox:new_local()
BoundingBox(ARVec3 min, ARVec3 max)
API起始版本:190
BoundingBox BoundingBox(ARVec3 min, ARVec3 max)
AABB包围盒的有参构造函数
Parameters
- min | ARVec3 : 包围盒坐标轴最小点
- max | ARVec3 : 包围盒坐标轴最大点
Returns
- BoundingBox : AABB包围盒
sample:
local bounding_box = ae.BoundingBox:new_local(ae.ARVec3:new_local(0,0,0),ae.ARVec3:new_local(5,5,5))
center
API起始版本:190
ARVec3 center()
获取包围盒的中心
Returns
- ARVec3 : 包围盒的中心点
sample:
local box_center = bounding_box:center()
half_extent
API起始版本:190
ARVec3 half_extent()
获取包围盒的三轴长度的一半
Returns
- ARVec3 : 包围盒的三轴长度的一半
sample:
local box_half_extent = bounding_box:half_extent()
merge
API起始版本:190
void merge(box)
合并目标包围盒到当前包围盒
Parameters
- box | BoundingBox : 待合并包围盒
sample:
box:merge(target_box)
intersects
API起始版本:190
bool intersects(box)
判定和目标包围盒是否相交
Parameters
- box | BoundingBox : 待判定是否相交的包围盒
Returns
- bool : 是否相交
sample:
local success = box:intersects(box1)
set(ARVec3 min, ARVec3 max)
API起始版本:190
void set(ARVec3 min, ARVec3 max)
设定包围盒的最小最大点
Parameters
- min | ARVec3 : 包围盒坐标轴最小点
- max | ARVec3 : 包围盒坐标轴最大点
sample:
box:set(ae.ARVec3:new_local(0,0,0),ae.ARVec3:new_local(5,5,5))
set(box)
API起始版本:190
void set(box)
用目标包围盒设定当前包围盒的数据
Parameters
- box | BoundingBox : 目标包围盒
sample:
box:set(box1)