GCubeSDK
©2026 FenixFox®Studios

Box3

Class representing an axis-aligned bounding box (AABB) in 3D space.
A Box3 represents a rectangular box in 3D space that is aligned with the world coordinate axes. It is defined by two Vector3 points: min (lower-left-back corner) and max (upper-right-front corner).

Methods

Box3()

Default constructor - creates an empty box

Box3(const Vector3& min, const Vector3& max)

Constructor with min and max vectors

min Lower boundary of the box (+∞, +∞, +∞)
max Upper boundary of the box (-∞, -∞, -∞)

Box3& set(const Vector3& min, const Vector3& max)

Sets the lower and upper boundaries of this box

min Vector3 representing the lower boundary
max Vector3 representing the upper boundary

Box3& setFromCenterAndSize(const Vector3& center, const Vector3& size)

Centers this box on center and sets its dimensions

center Desired center position of the box
size Desired x, y and z dimensions of the box

Box3& setFromPoints(const vector<Vector3>& points)

Sets the box to contain all points in the array

points Array of Vector3s that the box will contain

Box3& setFromArray(const f32* array, u32 count)

Sets the box to contain all data in the array

array Array of position data (x,y,z,x,y,z...)
count Number of elements in the array

Box3& setFromBufferAttribute(const BufferAttribute& attribute)

Sets the box to contain all data in the buffer attribute

attribute Buffer attribute of position data

Box3& setFromObject(const Object3D& object, bool precise = false)

Computes the world-axis-aligned bounding box of an object

object Object3D to compute the bounding box of
precise Compute the smallest box at expense of more computation

Box3& clone() const

Returns a new Box3 with the same min and max as this one

Box3& copy(const Box3& box)

Copies the min and max from box to this box

box Box3 to copy from

Box3& makeEmpty()

Makes this box empty

bool isEmpty() const

Returns true if this box includes zero points within its bounds

Box3& expandByPoint(const Vector3& point)

Expands the boundaries of this box to include point

point Vector3 that should be included in the box

Box3& expandByVector(const Vector3& vector)

Expands this box by vector in all directions

vector Vector3 to expand the box by

Box3& expandByScalar(f32 scalar)

Expands each dimension of the box by scalar

scalar Distance to expand the box by

Box3& expandByObject(const Object3D& object, bool precise = false)

Expands the boundaries to include object and its children

object Object3D to expand the box by
precise Expand as little as necessary at expense of computation

bool containsPoint(const Vector3& point) const

Returns true if the specified point lies within or on the boundaries

point Vector3 to check for inclusion

bool containsBox(const Box3& box) const

Returns true if this box includes the entirety of box

box Box3 to test for inclusion

Vector3& clampPoint(const Vector3& point, Vector3& target) const

Clamps the point within the bounds of this box

point Vector3 to clamp
target Result will be copied into this Vector3

f32 distanceToPoint(const Vector3& point) const

Returns the distance from any edge of this box to the specified point

point Vector3 to measure distance to

Box3& intersect(const Box3& box)

Computes the intersection of this and box

box Box to intersect with

Box3& unionBox(const Box3& box)

Computes the union of this box and box

box Box that will be unioned with this box

bool intersectsBox(const Box3& box) const

Determines whether or not this box intersects box

box Box to check for intersection against

bool intersectsSphere(const Sphere& sphere) const

Determines whether or not this box intersects sphere

sphere Sphere to check for intersection against

bool intersectsPlane(const Plane& plane) const

Determines whether or not this box intersects plane

plane Plane to check for intersection against

bool intersectsTriangle(const Triangle& triangle) const

Determines whether or not this box intersects triangle

triangle Triangle to check for intersection against

Box3& applyMatrix4(const Matrix4& matrix)

Transforms this Box3 with the supplied matrix

matrix Matrix4 to apply

Box3& translate(const Vector3& offset)

Adds offset to both the upper and lower bounds of this box

offset Direction and distance of offset

Vector3& getCenter(Vector3& target) const

Returns the center point of the box as a Vector3

target Result will be copied into this Vector3

Vector3& getSize(Vector3& target) const

Returns the width, height and depth of this box

target Result will be copied into this Vector3

Vector3& getParameter(const Vector3& point, Vector3& target) const

Returns a point as a proportion of this box's width, height and depth

point Vector3 to get parameter for
target Result will be copied into this Vector3

Sphere& getBoundingSphere(Sphere& target) const

Gets a Sphere that bounds the box

target Result will be copied into this Sphere

bool equals(const Box3& box) const

Returns true if this box and box share the same lower and upper bounds

box Box to compare with this one

bool operator==(const Box3& box) const

Checks if this box equals another

box Box to compare with

bool operator!=(const Box3& box) const

Checks if this box does not equal another

box Box to compare with

Properties

enabled bool Active/inactive
id u32 Unique identifier
isBox3 bool Read-only tag
max Vector3 Upper boundary of the box
min Vector3 Lower boundary of the box
name string Optional display name
uuid string UUID string
version u32 Bumps on change