Documentation / base / AABB
Class: AABB
Defined in: libs/base/src/math/aabb.ts:12
Axis aligned bounding box
Constructors
Constructor
new AABB():
AABB
Defined in: libs/base/src/math/aabb.ts:30
Construct an AABB with zero size at zero point.
Returns
AABB
Constructor
new AABB(
box):AABB
Defined in: libs/base/src/math/aabb.ts:35
Construct an AABB by copying from another AABB.
Parameters
box
AABB
The AABB to be copied from.
Returns
AABB
Constructor
new AABB(
minPoint,maxPoint):AABB
Defined in: libs/base/src/math/aabb.ts:41
Construct AABB from the min/max point.
Parameters
minPoint
The min point of the AABB.
maxPoint
The max point of the AABB.
Returns
AABB
Properties
ClipLeft
readonlystaticClipLeft:number
Defined in: libs/base/src/math/aabb.ts:14
Clip to the left side
ClipRight
readonlystaticClipRight:number
Defined in: libs/base/src/math/aabb.ts:16
Clip to the right side
ClipBottom
readonlystaticClipBottom:number
Defined in: libs/base/src/math/aabb.ts:18
Clip to the bottom side
ClipTop
readonlystaticClipTop:number
Defined in: libs/base/src/math/aabb.ts:20
Clip to the top side
ClipFront
readonlystaticClipFront:number
Defined in: libs/base/src/math/aabb.ts:22
Clip to the front side
ClipBack
readonlystaticClipBack:number
Defined in: libs/base/src/math/aabb.ts:24
Clip to the back side
Accessors
minPoint
Get Signature
get minPoint():
Vector3
Defined in: libs/base/src/math/aabb.ts:59
Get the min point of the AABB.
Returns
Set Signature
set minPoint(
p):void
Defined in: libs/base/src/math/aabb.ts:62
Parameters
p
Returns
void
maxPoint
Get Signature
get maxPoint():
Vector3
Defined in: libs/base/src/math/aabb.ts:66
Get the max point of the AABB.
Returns
Set Signature
set maxPoint(
p):void
Defined in: libs/base/src/math/aabb.ts:69
Parameters
p
Returns
void
extents
Get Signature
get extents():
Vector3
Defined in: libs/base/src/math/aabb.ts:73
Get half size of the AABB.
Returns
center
Get Signature
get center():
Vector3
Defined in: libs/base/src/math/aabb.ts:77
Get center point of the AABB.
Returns
size
Get Signature
get size():
Vector3
Defined in: libs/base/src/math/aabb.ts:81
Get size of the AABB.
Returns
diagonalLength
Get Signature
get diagonalLength():
number
Defined in: libs/base/src/math/aabb.ts:85
Get the diagonal length of the AABB.
Returns
number
Methods
clone()
clone():
this
Defined in: libs/base/src/math/aabb.ts:55
Clone this aabb
Returns
this
computePoints()
computePoints():
Vector3[]
Defined in: libs/base/src/math/aabb.ts:92
Calculate the coordinates of the eight corners of the AABB.
Returns
Vector3[]
the coordinates of the eight corners of the AABB.
inplaceTransform()
inplaceTransform(
matrix):AABB
Defined in: libs/base/src/math/aabb.ts:111
Inplace transform the AABB.
Parameters
matrix
The transform matrix.
Returns
AABB
self
beginExtend()
beginExtend():
AABB
Defined in: libs/base/src/math/aabb.ts:119
Invalidate the min/max point so that we can start extending the AABB.
Returns
AABB
self
extend()
extend(
v):AABB
Defined in: libs/base/src/math/aabb.ts:129
Extend the AABB so that it can contain specified point.
Parameters
v
The point used to extend the AABB.
Returns
AABB
self
extend3()
extend3(
x,y,z):AABB
Defined in: libs/base/src/math/aabb.ts:141
Extend the AABB so that it can contain specified point.
Parameters
x
number
The x coordinate of the point.
y
number
The y coordinate of the point.
z
number
The z coordinate of the point.
Returns
AABB
self
union()
union(
other):AABB
Defined in: libs/base/src/math/aabb.ts:167
Merge the AABB with another AABB.
Parameters
other
AABB
The AABB to be merged with.
Returns
AABB
self
isValid()
isValid():
boolean
Defined in: libs/base/src/math/aabb.ts:178
Check if the AABB is valid.
Returns
boolean
true if the AABB is valid, otherwise false.
equalsTo()
equalsTo(
other,epsl?):boolean
Defined in: libs/base/src/math/aabb.ts:191
Check if the AABB is close enough to another AABB.
Parameters
other
AABB
The AABB to be compared with.
epsl?
number
The epsilon for comparison.
Returns
boolean
true if the comparison error is less than epsl, otherwise false.
intersectedWithBox()
intersectedWithBox(
other):boolean
Defined in: libs/base/src/math/aabb.ts:199
Check if the AABB intersects with another AABB.
Parameters
other
AABB
The destination AABB.
Returns
boolean
true if the AABB intersects with other, otherwise false.
containsPoint()
containsPoint(
pt):boolean
Defined in: libs/base/src/math/aabb.ts:214
Check if the box contains specified point.
Parameters
pt
The point to be checked.
Returns
boolean
true if the box contains the point, otherwise false.s
containsBox()
containsBox(
other):boolean
Defined in: libs/base/src/math/aabb.ts:229
Check if the AABB contains all of the eight corner point of another AABB
Parameters
other
AABB
The AABB to be checked.
Returns
boolean
true if all contains, otherwise false.
getClipStateMask()
getClipStateMask(
viewProjMatrix,mask):NOT_CLIPPED|A_INSIDE_B|CLIPPED
Defined in: libs/base/src/math/aabb.ts:245
Do a clip test at the AABB and a frustum.
Parameters
viewProjMatrix
The view projection matrix of the frustum.
mask
number
The frustum planes that needs to be tested.
Returns
NOT_CLIPPED | A_INSIDE_B | CLIPPED
The clip test result.
getClipState()
getClipState(
viewProjMatrix):NOT_CLIPPED|A_INSIDE_B|CLIPPED
Defined in: libs/base/src/math/aabb.ts:297
Do a clip test at the AABB and a frustum.
Parameters
viewProjMatrix
The view projection matrix of the frustum.
Returns
NOT_CLIPPED | A_INSIDE_B | CLIPPED
The clip test result.
behindPlane()
behindPlane(
p):boolean
Defined in: libs/base/src/math/aabb.ts:343
Check if the box is behind a plane.
Parameters
p
The plane to be tested.
Returns
boolean
true if the box is behind the plane, otherwise false.
getClipStateWithFrustum()
getClipStateWithFrustum(
frustum):NOT_CLIPPED|A_INSIDE_B|CLIPPED
Defined in: libs/base/src/math/aabb.ts:357
Do a clip test at the AABB and a frustum.
Parameters
frustum
Pick<Frustum, "planes"> | Readonly<{ planes: readonly Readonly<{[key: number]: number; a: number; b: number; c: number; d: number; px: number; py: number; pz: number; nx: number; ny: number; nz: number; assign: Plane; setEquation: Plane; initWithOriginNormal: Plane; initWithPoints: Plane; distanceToPoint: number; nearestPointToPoint: Vector3; getNormal: Vector3; inplaceFlip: Plane; inplaceNormalize: Plane; equalsTo: boolean; toString: string; isNaN: boolean; setRandom: void; }>[]; corners: readonly Readonly<{[key: number]: number; equalsTo: boolean; toString: string; isNaN: boolean; setRandom: void; clone: Vector3; x: number; y: number; z: number; magnitude: number; magnitudeSq: number; xy: Vector2; setXYZ: Vector3; setAndNormalize: Vector3; subBy: Vector3; addBy: Vector3; combineBy: Vector3; mulBy: Vector3; divBy: Vector3; scaleBy: Vector3; inplaceNormalize: Vector3; inplaceInverse: Vector3; inplaceMin: Vector3; inplaceMax: Vector3; }>[]; getCorner: Readonly<{[key: number]: number; equalsTo: boolean; toString: string; isNaN: boolean; setRandom: void; clone: Vector3; x: number; y: number; z: number; magnitude: number; magnitudeSq: number; xy: Vector2; setXYZ: Vector3; setAndNormalize: Vector3; subBy: Vector3; addBy: Vector3; combineBy: Vector3; mulBy: Vector3; divBy: Vector3; scaleBy: Vector3; inplaceNormalize: Vector3; inplaceInverse: Vector3; inplaceMin: Vector3; inplaceMax: Vector3; }>; containsPoint: boolean; initWithMatrix: Frustum; }>
The frustum object.
Returns
NOT_CLIPPED | A_INSIDE_B | CLIPPED
The clip test result.
getClipStateWithFrustumMask()
getClipStateWithFrustumMask(
frustum,mask):NOT_CLIPPED|A_INSIDE_B|CLIPPED
Defined in: libs/base/src/math/aabb.ts:382
Do a clip test at the AABB and a frustum.
Parameters
frustum
Pick<Frustum, "planes"> | Readonly<{ planes: readonly Readonly<{[key: number]: number; a: number; b: number; c: number; d: number; px: number; py: number; pz: number; nx: number; ny: number; nz: number; assign: Plane; setEquation: Plane; initWithOriginNormal: Plane; initWithPoints: Plane; distanceToPoint: number; nearestPointToPoint: Vector3; getNormal: Vector3; inplaceFlip: Plane; inplaceNormalize: Plane; equalsTo: boolean; toString: string; isNaN: boolean; setRandom: void; }>[]; corners: readonly Readonly<{[key: number]: number; equalsTo: boolean; toString: string; isNaN: boolean; setRandom: void; clone: Vector3; x: number; y: number; z: number; magnitude: number; magnitudeSq: number; xy: Vector2; setXYZ: Vector3; setAndNormalize: Vector3; subBy: Vector3; addBy: Vector3; combineBy: Vector3; mulBy: Vector3; divBy: Vector3; scaleBy: Vector3; inplaceNormalize: Vector3; inplaceInverse: Vector3; inplaceMin: Vector3; inplaceMax: Vector3; }>[]; getCorner: Readonly<{[key: number]: number; equalsTo: boolean; toString: string; isNaN: boolean; setRandom: void; clone: Vector3; x: number; y: number; z: number; magnitude: number; magnitudeSq: number; xy: Vector2; setXYZ: Vector3; setAndNormalize: Vector3; subBy: Vector3; addBy: Vector3; combineBy: Vector3; mulBy: Vector3; divBy: Vector3; scaleBy: Vector3; inplaceNormalize: Vector3; inplaceInverse: Vector3; inplaceMin: Vector3; inplaceMax: Vector3; }>; containsPoint: boolean; initWithMatrix: Frustum; }>
The frustum object.
mask
number
The frustum planes that needs to be tested.
Returns
NOT_CLIPPED | A_INSIDE_B | CLIPPED
The clip test result.
transform()
statictransform(bbox,matrix,result?):AABB
Defined in: libs/base/src/math/aabb.ts:410
Get an AABB by transforming another AABB
Parameters
bbox
AABB
The AABB to be transformed.
matrix
The transform matrix.
result?
AABB
The out AABB to be write to.
Returns
AABB
The out AABB.