## Libraries.Game.Collision.Shapes.Sphere Documentation

This class describes the sphere shape in 3D.

*Inherits from: *Libraries.Language.Object, Libraries.Game.Collision.Shapes.CollisionShape3D

## Summary

### Actions Summary Table

Actions | Description |
---|---|

CalculateLocalInertia(number mass, Libraries.Compute.Vector3 inertia) | This action approximates the inertia of the sphere. |

CalculateTemporalBoundingBox(Libraries.Game.Collision.PhysicsPosition3D currentTransform, Libraries.Compute.Vector3 linearVelocity, Libraries.Compute.Vector3 angularVelocity, number timeStep, Libraries.Game.BoundingBox temporalBoundingBox) | This action calculates the rectangular cube that will contain both the object in its position currently and also contain the object in a position after "timeStep" seconds from now. |

Compare(Libraries.Language.Object object) | This action compares two object hash codes and returns a CompareResult. |

ComputeBoundingBox(Libraries.Game.BoundingBox boundingBox, Libraries.Game.Collision.PhysicsPosition3D transform) | This action finds the bounding box that would bound the Sphere in its current position. |

Copy() | This action sets another sphere to have the properties of the current sphere. |

Equals(Libraries.Language.Object object) | This action determines if two objects are equal based on their hash code values. |

GetAngularMotionDisc() | This calculates the maximum distance between any point to the center of the 3D object. |

GetBoundingSphere(Libraries.Compute.Vector3 center) | This action finds the center (relative to the object's local origin) and the radius of a sphere that would bound the object that is at its current position. |

GetChildCount() | This action returns how many children shapes are attached to this sphere. |

GetHashCode() | This action gets the hash code for an object. |

GetLocalScaling(Libraries.Compute.Vector3 out) | This action returns how the 3D object has been scaled to the shape that it has right now. |

GetMargin() | This action returns the thickness of the "shell" that will surround this Sphere to prevent objects going through each other graphically. |

GetNumberPreferredPenetrationDirections() | This action calculates the preferred number of directions to check if another object has penetrated this sphere. |

GetPreferredPenetrationDirection(integer index, Libraries.Compute.Vector3 penetrationVector) | This action calculates one of the directions to check if another object has penetrated this sphere. |

GetRadius() | This action returns the radius of the Sphere. |

GetType() | This action returns what type of 3D object the 3D object is. |

LocalGetSupportingVertex(Libraries.Compute.Vector3 vector) | |

LocalGetSupportingVertexWithoutMargin(Libraries.Compute.Vector3 vector) | This action finds the vertex that is furthest away in a direction specified by "Vector3 vector" that doesn't have an offset. |

Scale(Libraries.Compute.Vector3 scale) | This action sets how big the 3D object is, scaling from the current size of the 3D object. |

Set(number radius) | This action sets the radius of the Sphere. |

SetLocalScaling(Libraries.Compute.Vector3 scaling) | This action sets how big the 3D object is, scaling from the default size of the 3D object. |

SetMargin(number margin) | This action sets the thickness of the "shell" that will surround this Sphere to prevent objects going through each other graphically. |

SetRadius(number radius) | This action sets the radius of the Sphere. |

SetType(integer type) | This action sets what type of 3D object this 3D object is. |

## Actions Documentation

### CalculateLocalInertia(number mass, Libraries.Compute.Vector3 inertia)

This action approximates the inertia of the sphere.

#### Parameters

### CalculateTemporalBoundingBox(Libraries.Game.Collision.PhysicsPosition3D currentTransform, Libraries.Compute.Vector3 linearVelocity, Libraries.Compute.Vector3 angularVelocity, number timeStep, Libraries.Game.BoundingBox temporalBoundingBox)

This action calculates the rectangular cube that will contain both the object in its position currently and also contain the object in a position after "timeStep" seconds from now.

#### Parameters

- Libraries.Game.Collision.PhysicsPosition3D
- Libraries.Compute.Vector3
- Libraries.Compute.Vector3
- Libraries.Game.BoundingBox

### Compare(Libraries.Language.Object object)

This action compares two object hash codes and returns a CompareResult. The compare result is either larger if this hash code is larger than the object passed as a parameter, smaller, or equal.

**Example Code**

```
use Libraries.Language.Support.CompareResult
Object o
Object t
CompareResult result = o:Compare(t)
```

#### Parameters

- Libraries.Language.Object: The object to compare to.

#### Return

Libraries.Language.Support.CompareResult: The Compare result, Smaller, Equal, or Larger.

### ComputeBoundingBox(Libraries.Game.BoundingBox boundingBox, Libraries.Game.Collision.PhysicsPosition3D transform)

This action finds the bounding box that would bound the Sphere in its current position.

#### Parameters

### Copy()

This action sets another sphere to have the properties of the current sphere.

#### Return

Libraries.Game.Collision.Shapes.CollisionShape3D:

### Equals(Libraries.Language.Object object)

This action determines if two objects are equal based on their hash code values.

**Example Code**

```
use Libraries.Language.Object
use Libraries.Language.Types.Text
Object o
Text t
boolean result = o:Equals(t)
```

#### Parameters

- Libraries.Language.Object: The to be compared.

#### Return

boolean: True if the hash codes are equal and false if they are not equal.

### GetAngularMotionDisc()

This calculates the maximum distance between any point to the center of the 3D object.

#### Return

number:

### GetBoundingSphere(Libraries.Compute.Vector3 center)

This action finds the center (relative to the object's local origin) and the radius of a sphere that would bound the object that is at its current position.

#### Parameters

#### Return

number:

### GetChildCount()

This action returns how many children shapes are attached to this sphere.

#### Return

integer:

### GetHashCode()

This action gets the hash code for an object.

**Example Code**

```
Object o
integer hash = o:GetHashCode()
```

#### Return

integer: The integer hash code of the object.

### GetLocalScaling(Libraries.Compute.Vector3 out)

This action returns how the 3D object has been scaled to the shape that it has right now.

#### Parameters

#### Return

### GetMargin()

This action returns the thickness of the "shell" that will surround this Sphere to prevent objects going through each other graphically.

#### Return

number:

### GetNumberPreferredPenetrationDirections()

This action calculates the preferred number of directions to check if another object has penetrated this sphere.

#### Return

integer:

### GetPreferredPenetrationDirection(integer index, Libraries.Compute.Vector3 penetrationVector)

This action calculates one of the directions to check if another object has penetrated this sphere. Since sphere is a special case, this action doesn't do anything.

#### Parameters

### GetRadius()

This action returns the radius of the Sphere.

#### Return

number:

### GetType()

This action returns what type of 3D object the 3D object is.

#### Return

integer:

### LocalGetSupportingVertex(Libraries.Compute.Vector3 vector)

#### Parameters

#### Return

### LocalGetSupportingVertexWithoutMargin(Libraries.Compute.Vector3 vector)

This action finds the vertex that is furthest away in a direction specified by "Vector3 vector" that doesn't have an offset.

#### Parameters

#### Return

### Scale(Libraries.Compute.Vector3 scale)

This action sets how big the 3D object is, scaling from the current size of the 3D object.

#### Parameters

### Set(number radius)

This action sets the radius of the Sphere.

#### Parameters

### SetLocalScaling(Libraries.Compute.Vector3 scaling)

This action sets how big the 3D object is, scaling from the default size of the 3D object.

#### Parameters

### SetMargin(number margin)

This action sets the thickness of the "shell" that will surround this Sphere to prevent objects going through each other graphically.

#### Parameters

### SetRadius(number radius)

This action sets the radius of the Sphere.

#### Parameters

### SetType(integer type)

This action sets what type of 3D object this 3D object is.