# Unigine.BoundSphere Struct

Notice
The functions listed below are the members of the Unigine.MathLib namespace.

## BoundSphereoperator* ( mat4 m, BoundSphere bs ) #

Multiplies the matrix by the bounding sphere and returns the resulting bounding sphere.

### Return value

Resulting bounding sphere.

## BoundSphereoperator* ( dmat4 m, BoundSphere bs ) #

Multiplies the matrix by the bounding sphere and returns the resulting bounding sphere.

### Return value

Resulting bounding sphere.

## voidSet ( vec3 center, float radius ) #

Sets the bounding sphere using the specified arguments.

### Arguments

• vec3 center - The bounding sphere center.

## voidSet ( vec3[] points, bool optimal ) #

Sets the bounding sphere using the specified arguments.

### Arguments

• vec3[] points - Array of points.
• bool optimal - Flag defining if the optimal sphere should be used. If false, the sphere will be expanded for including all the given points.

## voidSet ( BoundSphere bs ) #

Sets the bounding sphere using the specified arguments.

## voidSet ( BoundSphere bs, mat4 transform ) #

Sets the bounding sphere using the specified arguments.

### Arguments

• BoundSphere bs - Bounding sphere.
• mat4 transform - Transformation matrix (mat4) to be set.

## voidSet ( BoundSphere bs, dmat4 transform ) #

Sets the bounding sphere using the specified arguments.

### Arguments

• BoundSphere bs - Bounding sphere.
• dmat4 transform - Transformation matrix (dmat4) to be set.

## voidSet ( BoundBox bb ) #

Sets the bounding sphere by the bounding box.

## voidClear ( ) #

Clears the bounding sphere by setting all components/elements to 0.

## boolEquals ( BoundSphere other ) #

Checks if the bounding sphere and the specified argument are equal considering the predefined accuracy (epsilon).

### Arguments

• BoundSphere other - Bounding sphere to be checked for equality.

### Return value

true if the radii and the centers of both bounding spheres are equal; otherwise, false.

## boolEqualsNearly ( BoundSphere other, float epsilon ) #

Checks if the bounding sphere and the specified argument represent the same value with regard to the specified accuracy (epsilon).

### Arguments

• BoundSphere other - Bounding sphere to be checked for equality.
• float epsilon - Epsilon value, that determines accuracy of comparison.

### Return value

true if the radii and the centers of both bounding spheres are equal; otherwise, false.

## boolEquals ( object obj ) #

Checks if the bounding sphere and the specified argument are equal considering the predefined accuracy (epsilon).

### Arguments

• object obj - Object to be checked for equality.

### Return value

true if the object and the bounding sphere are equal; otherwise, false.

## intGetHashCode ( ) #

Returns a hash code for the current object. Serves as the default hash function.

Hash code.

## voidSetTransform ( mat4 transform ) #

Sets the given transformation matrix to bounding sphere.

### Arguments

• mat4 transform - Transformation matrix (mat4) to be set.

## voidSetTransform ( dmat4 transform ) #

Sets the given transformation matrix to bounding sphere.

### Arguments

• dmat4 transform - Transformation matrix (dmat4) to be set.

## voidExpand ( vec3 point ) #

Expands the current bounding sphere to include the given point.

### Arguments

• vec3 point - Coordinates of the point.

## voidExpand ( vec3[] points ) #

Expands the current bounding sphere for including all points in the array.

### Arguments

• vec3[] points - Array of points.

## voidExpand ( BoundSphere bs ) #

Expands the current bounding sphere to include the given bounding sphere.

## voidExpand ( BoundBox bb ) #

Expands the current bounding sphere to include the given bounding box.

### Arguments

• BoundBox bb - Bounding box to be included.

## voidExpandRadius ( vec3 point ) #

Expands the radius of the bounding sphere.

### Arguments

• vec3 point - Point coordinates setting the end point of radius.

## voidExpandRadius ( vec3[] points ) #

Expands the radius of the current bounding sphere for including all points of the array.

### Arguments

• vec3[] points - Array of points.

## voidExpandRadius ( BoundSphere bs ) #

Expands the radius of the bounding sphere by using the radius of the given bounding sphere.

## voidExpandRadius ( BoundBox bb ) #

Expands the radius of the bounding sphere by using the max and min points of the given bounding box.

## boolInside ( vec3 point ) #

Checks if the given point is inside the current bounding sphere.

### Arguments

• vec3 point - Point coordinates.

### Return value

true if the given point is inside the bounding sphere; otherwise, false.

## boolInside ( vec3 point, float radius ) #

Checks if the sphere defined by the arguments is inside the bounding sphere.

### Arguments

• vec3 point - Center of the sphere.

### Return value

true if the sphere is inside the bounding sphere; otherwise, false.

## boolInside ( vec3 min, vec3 max ) #

Checks if the box is inside the bounding sphere.

### Arguments

• vec3 min - Minimum coordinates of the box.
• vec3 max - Maximum coordinates of the box.

### Return value

true if the box is inside the bounding sphere; otherwise, false.

## boolInsideValid ( vec3 point ) #

Checks if the given point is inside the current bounding sphere.
Notice
The method doesn't check if the current bounding sphere is valid.

### Arguments

• vec3 point - Point coordinates.

### Return value

true if the given point is inside the bounding sphere; otherwise, false.

## boolInsideValid ( vec3 point, float radius ) #

Checks if the sphere specified in the argument is inside the current bounding sphere.
Notice
The method doesn't check if the current bounding sphere is valid.

### Arguments

• vec3 point - Cente of the sphere.

### Return value

true if the sphere is inside the bounding sphere; otherwise, false.

## boolInsideValid ( vec3 min, vec3 max ) #

Checks if the box specified in the argument is inside the current bounding sphere.
Notice
The method doesn't check if the current bounding sphere is valid.

### Arguments

• vec3 min - Minimum coordinates of the box (lower limit).
• vec3 max - Maximum coordinates of the box (upper limit).

### Return value

true if the box is inside the bounding sphere; otherwise, false.

## boolInside ( BoundSphere bs ) #

Checks if the bounding sphere specified in the argument is inside the current bounding sphere.

### Return value

true if the bounding sphere is inside the bounding sphere; otherwise, false.

## boolInside ( BoundBox bb ) #

Checks if the bounding box specified in the argument is inside the current bounding sphere.

### Return value

true if the bounding box is inside the bounding sphere; otherwise, false.

## boolInsideValid ( BoundSphere bs ) #

Checks if the bounding sphere specified in the argument is inside the current bounding sphere.
Notice
This method doesn't check if the current bounding sphere is valid (has a positive radius).

### Return value

true if the bounding sphere is inside the bounding sphere; otherwise, false.

## boolInsideValid ( BoundBox bb ) #

Checks if the bounding box specified in the argument is inside the current bounding sphere.
Notice
This method doesn't check if the current bounding sphere is valid (has a positive radius).

### Return value

true if the bounding box is inside the bounding sphere; otherwise, false.

## boolInsideAll ( BoundSphere bs ) #

Checks if the whole specified bounding sphere is inside the current bounding sphere.

### Return value

true if the whole bounding sphere is inside the bounding sphere; otherwise, false.

## boolInsideAll ( BoundBox bb ) #

Checks if the whole specified bounding box is inside the current bounding sphere.

### Return value

true if the whole bounding box is inside the bounding sphere; otherwise, false.

## boolInsideAllValid ( BoundSphere bs ) #

Checks if the whole bounding sphere specified in the argument is completely inside the current bounding sphere.
Notice
This method doesn't check if the current bounding sphere is valid (has a positive radius).

### Return value

true if the whole bounding sphere is inside the bounding sphere; otherwise, false.

## boolInsideAllValid ( BoundBox bb ) #

Checks if the whole bounding box specified in the argument is completely inside the current bounding sphere.
Notice
This method doesn't check if the current bounding sphere is valid (has a positive radius).

### Return value

true if the whole bounding box is inside the bounding sphere; otherwise, false.

## boolRayIntersection ( vec3 point, vec3 direction ) #

Checks for an intersection between a ray and the current bound.

### Arguments

• vec3 point - The starting point of the ray.
• vec3 direction - Direction vector coordinates.

### Return value

true if an intersection has occurred; otherwise, false.

## boolGetIntersection ( vec3 p0, vec3 p1 ) #

Checks for an intersection of a line with the current bounding sphere.

### Arguments

• vec3 p0 - The starting point of the line.
• vec3 p1 - The ending point of the line.

### Return value

true if an intersection has occurred; otherwise, false.

## boolRayIntersectionValid ( vec3 point, vec3 direction ) #

Checks for an intersection between a ray and the current bound.
Notice
This method doesn't check if the current bounding sphere is valid (has a positive radius).

### Arguments

• vec3 point - The starting point of the ray.
• vec3 direction - Direction vector coordinates.

### Return value

true if an intersection has occurred; otherwise, false.

## boolGetIntersectionValid ( vec3 p0, vec3 p1 ) #

Checks for an intersection of a line with the current bounding sphere.
Notice
This method doesn't check if the current bounding sphere is valid (has a positive radius).

### Arguments

• vec3 p0 - The starting point of the line.
• vec3 p1 - The starting point of the line.

### Return value

true if an intersection has occurred; otherwise, false.

## floatDistance ( ) #

Returns the distance from the origin of coordinates to the closest point of the current bounding sphere.

### Return value

Distance from the origin, in units.

## floatDistance ( vec3 point ) #

Returns the distance from the given point to the closest point of the current bounding sphere.

### Arguments

• vec3 point - Coordinates of the point.

### Return value

Distance from the point, in units.

## floatDistanceValid ( ) #

Returns the distance from the origin of coordinates to the closest point of the current bounding sphere.
Notice
This method doesn't check if the current bounding sphere is valid (has a positive radius).

### Return value

Distance from the origin, in units.

## floatDistanceValid ( vec3 point ) #

Returns the distance from the given point to the closest point of the current bounding sphere.
Notice
This method doesn't check if the current bounding sphere is valid (has a positive radius).

### Arguments

• vec3 point - Coordinates of the point.

### Return value

Distance from the origin, in units.

## boolIsCameraVisible ( vec3 camera, float min_distance, float max_distance ) #

Checks if the bounding sphere is within the camera visibility distance.

### Arguments

• vec3 camera - Camera position.
• float min_distance - Minimum visibility distance, in units.
• float max_distance - Maximum visibility distance, in units.

### Return value

true if the bounding sphere is within the camera visibility distance; otherwise, false.
Last update: 24.08.2021