OBB

优质
小牛编辑
144浏览
2023-12-01

Represents an oriented bounding box (OBB) in 3D space.

Examples

webgl_math_obb

Constructor

OBB( center : Vector3, halfSize : Vector3, rotation : Matrix3 )

center — The center of the OBB. (optional)
halfSize — Positive halfwidth extents of the OBB along each axis. (optional)
rotation — The rotation of the OBB. (optional)

Creates a new OBB.

Properties

.center : Vector3

The center of the OBB. Default is ( 0, 0, 0 ).

.halfSize : Vector3

Positive halfwidth extents of the OBB along each axis. Default is ( 0, 0, 0 ).

.rotation : Matrix3

The rotation of the OBB. Default is the identity matrix.

Methods

.applyMatrix4 ( matrix : Matrix4 ) : this

matrix — A 4x4 transformation matrix.

Applies the given transformation matrix to this OBB. This method can be used to transform the bounding volume with the world matrix of a 3D object in order to keep both entities in sync.

.clampPoint ( point : Vector3, clampedPoint : Vector3 ) : Vector3

point — The point that should be clamped within the bounds of this OBB.
clampedPoint — The result will be copied into this vector.

Clamps the given point within the bounds of this OBB.

.clone () : OBB

Creates a cloned OBB for this instance.

.containsPoint ( point : Vector3 ) : Boolean

point — The point to test.

Whether the given point lies within this OBB or not.

.copy ( obb : OBB ) : this

obb — The OBB to copy.

Copies the properties of the given OBB to this OBB.

.equals ( obb : OBB ) : Boolean

obb — The OBB to test.

Whether the given OBB is equal to this OBB or not.

.fromBox3 ( box3 : Box3 ) : this

box3 — An AABB.

Defines an OBB based on the given AABB.

.getSize ( size : Vector3 ) : Vector3

size — The result will be copied into this vector.

Returns the size of this OBB into the given vector.

.intersectsBox3 ( box3 : Box3 ) : Boolean

box3 — The AABB to test.

Whether the given AABB intersects this OBB or not.

.intersectsSphere ( sphere : Sphere ) : Boolean

sphere — The bounding sphere to test.

Whether the given bounding sphere intersects this OBB or not.

.intersectsOBB ( obb : OBB, epsilon : Number ) : Boolean

obb — The OBB to test.
epsilon — An optional numeric value to counteract arithmetic errors. Default is Number.EPSILON.

Whether the given OBB intersects this OBB or not.

.intersectsRay ( ray : Ray ) : Boolean

ray — The ray to test.

Whether the given ray intersects this OBB or not.

.intersectRay ( ray : Ray, intersectionPoint : Vector3 ) : Vector3

ray — The ray to test.
intersectionPoint — The result will be copied into this vector.

Performs a Ray/OBB intersection test and stores the intersection point to the given 3D vector. If no intersection is detected, null is returned.

.set ( center : Vector3, halfSize : Vector3, rotation : Matrix3 ) : this

center — The center of the OBB.
halfSize — Positive halfwidth extents of the OBB along each axis.
rotation — The rotation of the OBB.

Defines the OBB for the given values.

Source

examples/jsm/math/OBB.js