Class: Ray
射线
Properties
Constructors
Accessors
Methods
- intersectsBox
- intersectBox
- at
- copy
- setApproxDirection
- setOrigin
- getOrigin
- getPoint
- sqrDistToPoint
- applyMatrix
- pointInTriangle
- intersectTriangle
- intersectSphere
- intersectionSegment
Properties
origin
• origin: Vector3
射线起始点
Defined in
length
• length: number
= Number.MAX_VALUE
长度
Defined in
Constructors
constructor
• new Ray(origin?
, dir?
)
构建新的射线对象
Parameters
Name | Type | Description |
---|---|---|
origin? | Vector3 | 射线起始点 |
dir? | Vector3 | 射线方向 |
Defined in
Accessors
direction
• get
direction(): Vector3
获取射线方向
Returns
Defined in
• set
direction(dir
): void
设置射线方向
Parameters
Name | Type | Description |
---|---|---|
dir | Vector3 | 方向向量 |
Returns
void
Defined in
Methods
intersectsBox
▸ intersectsBox(box
): boolean
判断是否和某包围盒相交
Parameters
Name | Type | Description |
---|---|---|
box | IBound | 包围盒 |
Returns
boolean
返回是否相交
Defined in
intersectBox
▸ intersectBox(box
, target
): Vector3
判断是否和某包围盒相交,并计算交点
Parameters
Name | Type | Description |
---|---|---|
box | IBound | 包围盒 |
target | Vector3 | 输出交点 |
Returns
返回是否相交
Defined in
at
▸ at(t
, target
): Vector3
计算射线上的某点
Parameters
Name | Type | Description |
---|---|---|
t | number | 长度标量 |
target | Vector3 | 输出值 |
Returns
输出值
Defined in
copy
▸ copy(src
): Ray
将射线设置为从原射线的拷贝
Parameters
Name | Type | Description |
---|---|---|
src | Ray | 原射线 |
Returns
拷贝后的射线对象本身
Defined in
setApproxDirection
▸ setApproxDirection(dir
): void
快速射至近似射线方向
Parameters
Name | Type | Description |
---|---|---|
dir | Vector3 | 输入方向 |
Returns
void
Defined in
setOrigin
▸ setOrigin(origin
): void
设置射线起点
Parameters
Name | Type | Description |
---|---|---|
origin | Vector3 | 输入起点 |
Returns
void
Defined in
getOrigin
▸ getOrigin(): Vector3
获取射线起点
Returns
Defined in
getPoint
▸ getPoint(t
): Vector3
获取射线上指定位置的点
Parameters
Name | Type | Description |
---|---|---|
t | number | 长度位置 |
Returns
返回指定位置的点
Defined in
sqrDistToPoint
▸ sqrDistToPoint(P
): number
计算距某点的距离
Parameters
Name | Type | Description |
---|---|---|
P | Vector3 | 指定点 |
Returns
number
返回计算结果
Defined in
applyMatrix
▸ applyMatrix(mat4
): void
应用矩阵变换
Parameters
Name | Type | Description |
---|---|---|
mat4 | Matrix4 | 变换矩阵 |
Returns
void
Defined in
pointInTriangle
▸ pointInTriangle(P
, A
, B
, C
): boolean
计算指定点是否在某个三角形内
Parameters
Name | Type | Description |
---|---|---|
P | Vector3 | 输入点 |
A | Vector3 | 三角形顶点1 |
B | Vector3 | 三角形顶点2 |
C | Vector3 | 三角形顶点3 |
Returns
boolean
返回是否在三角形内
Defined in
intersectTriangle
▸ intersectTriangle(orig
, dir
, face
): Vector3
判断某射线是否和某三角型相交
Parameters
Name | Type | Description |
---|---|---|
orig | Vector3 | 射线起始点 |
dir | Vector3 | 射线方向 |
face | Triangle | 三角形 |
Returns
交点
Defined in
intersectSphere
▸ intersectSphere(o
, dir
, center
, radius
): Vector3
判断某射线是否和球面相交
Parameters
Name | Type | Description |
---|---|---|
o | Vector3 | 射线起始点 |
dir | Vector3 | 射线方向 |
center | Vector3 | 球体中心 |
radius | number | 球体半径 |
Returns
交点
Defined in
intersectionSegment
▸ intersectionSegment(sega
, segb
, threshold
): Object
在给定容差(阈值)内,射线与给定线段之间的相交测试
Parameters
Name | Type | Description |
---|---|---|
sega | Vector3 | 用于测试交点的线段的第一个点 |
segb | Vector3 | 用于测试交点的线段的第二个点 |
threshold | number | 容差余量,如果光线不与线段相交但接近给定阈值,则相交成功 |
Returns
Object
如果有交点,则从射线原点到交点的距离,如果没有交点,则为 -1
Name | Type |
---|---|
out | Vector3 |
length | number |