Ray

Ray

类表示具有位置和方向的射线

Members

origin : Vector3

原点

direction : Vector3

方向

length : number

射线长度

Methods

constructor(origin,direction,length)

创建一条新射线
Name Type Description
origin Vector3 原点
direction Vector3 方向
length number optional射线的长度

intersectsBoxMinMax(minimum,maximum,intersectionTreshold) → boolean

检查射线是否与长方体相交
Name Type Description
minimum DeepImmutable<Vector3> 框的最小界限
maximum DeepImmutable<Vector3> 框的最大界限
intersectionTreshold number optional在所有方向上向长方体添加额外的延伸

intersectsBox(box,intersectionTreshold) → boolean

检查射线是否与长方体相交
Name Type Description
box DeepImmutable<BoundingBox> 要检查的包围盒
intersectionTreshold number optional在所有方向上向包围盒添加额外的延伸

intersectsTriangle(vertex0,vertex1,vertex2) → Nullable<IntersectionInfo>

如果射线击中三角形
Name Type Description
vertex0 DeepImmutable<Vector3> 三角形顶点
vertex1 DeepImmutable<Vector3> 三角形顶点
vertex2 DeepImmutable<Vector3> 三角形顶点

intersectsPlane(plane) → Nullable<number>

检查射线是否与平面相交
Name Type Description
plane DeepImmutable<Plane> 要检查的平面

intersectionSegment(sega,segb,threshold) → number

射线与给定段(具有给定公差)之间的相交测试(阈值)
Name Type Description
sega DeepImmutable<Vector3> 测试交叉点的线段的第一个点
segb DeepImmutable<Vector3> 用于测试交叉点的线段的第二个点
threshold number 公差范围。如果射线未与线段相交,但接近给定阈值,则相交成功

update(x,y,viewportWidth,viewportHeight,world,view,projection) → Ray

从视口位置更新射线
Name Type Description
x number x位置
y number y位置
viewportWidth number 视口宽度
world DeepImmutable<Matrix> 世界矩阵
view DeepImmutable<Matrix> 视图矩阵
projection DeepImmutable<Matrix> 投影矩阵

staticZero() → Ray

创建原点和方向为0,0,0的射线@returns 返回新的射线

staticCreateNew(x,y,viewportWidth,viewportHeight,world,view,projection) → Ray

从屏幕空间和视口创建新射线
Name Type Description
x number x位置
y number y位置
viewportWidth number 视口宽度
world DeepImmutable<Matrix> 世界矩阵
view DeepImmutable<Matrix> 视图矩阵
projection DeepImmutable<Matrix> 投影矩阵

staticCreateNewFromTo(origin,end,world) → Ray

函数将创建一条从原点开始到终点的新变换射线。将设置射线的长度,射线将转换为给定的世界矩阵。
Name Type Description
origin DeepImmutable<Vector3> 原点
end DeepImmutable<Vector3> 结束端点
world DeepImmutable<Matrix> optional将射线转换为矩阵,默认值是单位矩阵

staticTransform(ray,matrix) → Ray

通过矩阵变换射线
Name Type Description
ray DeepImmutable<Ray> 射线
matrix DeepImmutable<Matrix> 矩阵

staticTransformToRef(ray,matrix,result)

通过矩阵变换射线
Name Type Description
ray DeepImmutable<Ray> 射线
matrix DeepImmutable<Matrix> 矩阵
result Ray 用于存储结果

unprojectRayToRef(sourceX,sourceY,viewportWidth,viewportHeight,world,view,projection)

将射线从屏幕空间投影到对象空间
Name Type Description
sourceX float 屏幕空间x坐标
sourceY float 屏幕空间y坐标
viewportWidth number 视口的当前宽度
viewportHeight number 视口的当前高度
world DeepImmutable<Matrix> 世界矩阵(可以设置为Identity以进入世界空间)
view DeepImmutable<Matrix> 视图矩阵
projection DeepImmutable<Matrix> 投影矩阵