Ray
更新时间:2021-06-17
此类封装Ray相关数据与操作,Ray代表几何射线结构,由起点和方向组成。
Public methods | |
---|---|
Ray | Ray 射线的无参构造函数,起点为(0,0,0),方向为(0,0,1) |
Ray | Ray(origin, direction)射线的起点、方向构造函数 |
Ray | Ray(copy)射线的拷贝构造函数 |
Ray | origin 获取射线的起点 |
Ray | set_origin 设定射线的起点 |
Ray | direction 获取射线的方向向量 |
Ray | set_direction 设定射线的起点 |
Ray | intersects(plane) 获取与平面相交点的距离,如果不相交,返回-1 |
Ray | intersects(box) 获取与包围盒相交点的距离,如果不相交,返回-1 |
Demo | |
---|---|
Ray Demo | Ray RayDemo ()Demo示例 |
Ray Demo
Ray RayDemo ()
demo示例
sample:
local origin = ae.ARVec3:new_local(0,0,0)
local direction = ae.ARVec3:new_local(0,1,0)
local ray = ae.Ray:new_local(origin,direction)
local dis = ray:intersect(plane)
--获取相交点
if distance > 0 then
local point = ray:origin() + ray:direction() * distance
end
Ray
API起始版本:190
Ray Ray()
射线的无参构造函数,起点为(0,0,0),方向为(0,0,1)
Returns
- Ray : 默认参数构造的射线
sample:
local ray = ae.Ray:new_local()
Ray(origin, direction)
API起始版本:190
Ray Ray(origin, direction)
射线的起点、方向构造函数
Parameters
- ARVec3 | origin : 射线起点
- ARVec3 | direction : 射线方向
Returns
- Ray : 由起点和方向构成的射线
sample:
local ray = ae.Ray:new_local(ae.ARVec3:new_local(0,0,0), ae.ARVec3:new_local(0,1,0))
Ray(copy)
API起始版本:190
Ray Ray(copy)
射线的拷贝构造函数
Parameters
- Ray | copy : 射线对象
Returns
- Ray : 由copy构造的射线
sample:
local ray = ae.Ray:new_local(ae.ARVec3:new_local(0,0,0), ae.ARVec3:new_local(0,1,0))
local ray1 = ae.Ray:new_local(ray)
origin
API起始版本:190
ARVec3 origin()
获取射线的起点
Returns
- ARVec3 : 射线起点
sample:
local origin = ray:origin()
set_origin
API起始版本:190
void set_origin(origin)
设定射线的起点
Parameters
- ARVec3 | origin : 起点
sample:
ray:set_origin(origin)
direction
API起始版本:190
ARVec3 direction()
获取射线的方向向量
Returns
- ARVec3 : 射线方向向量
sample:
local dir = ray:direction()
set_direction
API起始版本:190
void set_direction(dir)
设定射线的起点
Parameters
- ARVec3 | dir : 方向向量
sample:
ray:set_direction(dir)
intersects(plane)
API起始版本:190
float intersects(plane)
获取与平面相交点的距离,如果不相交,返回-1
Parameters
- Plane | plane : 平面对象
Returns
- float : 与相交点的距离,如果不相交,返回-1
sample:
local distance = ray:intersects(plane)
if distance > 0 then
...
end
intersects(box)
API起始版本:190
float intersects(box)
获取与包围盒相交点的距离,如果不相交,返回-1
Parameters
- BoundingBox | box : 包围盒
Returns
- float : 与相交点的距离,如果不相交,返回-1
sample:
local distance = ray:intersects(box)
if distance > 0 then
...
end