Skip to content
本页内容

Class: Ray

射线

Properties

Constructors

Accessors

Methods

Properties

origin

origin: Vector3

射线起始点

Defined in

src/engine/math/Ray.ts:19


length

length: number = Number.MAX_VALUE

长度

Defined in

src/engine/math/Ray.ts:27

Constructors

constructor

new Ray(origin?, dir?)

构建新的射线对象

Parameters

NameTypeDescription
origin?Vector3射线起始点
dir?Vector3射线方向

Defined in

src/engine/math/Ray.ts:34

Accessors

direction

get direction(): Vector3

获取射线方向

Returns

Vector3

Defined in

src/engine/math/Ray.ts:43

set direction(dir): void

设置射线方向

Parameters

NameTypeDescription
dirVector3方向向量

Returns

void

Defined in

src/engine/math/Ray.ts:51

Methods

intersectsBox

intersectsBox(box): boolean

判断是否和某包围盒相交

Parameters

NameTypeDescription
boxIBound包围盒

Returns

boolean

返回是否相交

Defined in

src/engine/math/Ray.ts:61


intersectBox

intersectBox(box, target): Vector3

判断是否和某包围盒相交,并计算交点

Parameters

NameTypeDescription
boxIBound包围盒
targetVector3输出交点

Returns

Vector3

返回是否相交

Defined in

src/engine/math/Ray.ts:71


at

at(t, target): Vector3

计算射线上的某点

Parameters

NameTypeDescription
tnumber长度标量
targetVector3输出值

Returns

Vector3

输出值

Defined in

src/engine/math/Ray.ts:132


copy

copy(src): Ray

将射线设置为从原射线的拷贝

Parameters

NameTypeDescription
srcRay原射线

Returns

Ray

拷贝后的射线对象本身

Defined in

src/engine/math/Ray.ts:147


setApproxDirection

setApproxDirection(dir): void

快速射至近似射线方向

Parameters

NameTypeDescription
dirVector3输入方向

Returns

void

Defined in

src/engine/math/Ray.ts:159


setOrigin

setOrigin(origin): void

设置射线起点

Parameters

NameTypeDescription
originVector3输入起点

Returns

void

Defined in

src/engine/math/Ray.ts:167


getOrigin

getOrigin(): Vector3

获取射线起点

Returns

Vector3

Defined in

src/engine/math/Ray.ts:174


getPoint

getPoint(t): Vector3

获取射线上指定位置的点

Parameters

NameTypeDescription
tnumber长度位置

Returns

Vector3

返回指定位置的点

Defined in

src/engine/math/Ray.ts:183


sqrDistToPoint

sqrDistToPoint(P): number

计算距某点的距离

Parameters

NameTypeDescription
PVector3指定点

Returns

number

返回计算结果

Defined in

src/engine/math/Ray.ts:193


applyMatrix

applyMatrix(mat4): void

应用矩阵变换

Parameters

NameTypeDescription
mat4Matrix4变换矩阵

Returns

void

Defined in

src/engine/math/Ray.ts:209


pointInTriangle

pointInTriangle(P, A, B, C): boolean

计算指定点是否在某个三角形内

Parameters

NameTypeDescription
PVector3输入点
AVector3三角形顶点1
BVector3三角形顶点2
CVector3三角形顶点3

Returns

boolean

返回是否在三角形内

Defined in

src/engine/math/Ray.ts:226


intersectTriangle

intersectTriangle(orig, dir, face): Vector3

判断某射线是否和某三角型相交

Parameters

NameTypeDescription
origVector3射线起始点
dirVector3射线方向
faceTriangle三角形

Returns

Vector3

交点

Defined in

src/engine/math/Ray.ts:271


intersectSphere

intersectSphere(o, dir, center, radius): Vector3

判断某射线是否和球面相交

Parameters

NameTypeDescription
oVector3射线起始点
dirVector3射线方向
centerVector3球体中心
radiusnumber球体半径

Returns

Vector3

交点

Defined in

src/engine/math/Ray.ts:342


intersectionSegment

intersectionSegment(sega, segb, threshold): Object

在给定容差(阈值)内,射线与给定线段之间的相交测试

Parameters

NameTypeDescription
segaVector3用于测试交点的线段的第一个点
segbVector3用于测试交点的线段的第二个点
thresholdnumber容差余量,如果光线不与线段相交但接近给定阈值,则相交成功

Returns

Object

如果有交点,则从射线原点到交点的距离,如果没有交点,则为 -1

NameType
outVector3
lengthnumber

Defined in

src/engine/math/Ray.ts:373