Module org.dyn4j

## Class Circle

• All Implemented Interfaces:
`DataContainer`, `Convex`, `Rotatable`, `Shape`, `Transformable`, `Translatable`

```public class Circle
extends AbstractShape
implements Convex, Shape, Transformable, DataContainer```
Implementation of a Circle `Convex` `Shape`.

A `Circle`'s radius must be greater than zero.

Since:
1.0.0
Version:
3.2.0
Author:
William Bittle
• ### Constructor Summary

Constructors
Constructor Description
`Circle​(double radius)`
Full constructor.
• ### Method Summary

All Methods
Modifier and Type Method Description
`void` ```computeAABB​(Transform transform, AABB aabb)```
Computes the `AABB` from this `Shape` after applying the given transformation and places the result in the given `AABB`.
`boolean` ```contains​(Vector2 point, Transform transform)```
Returns true if the given point is inside this `Shape`.
`Mass` `createMass​(double density)`
Creates a `Mass` object using the geometric properties of this `Shape` and the given density.
`Vector2[]` ```getAxes​(Vector2[] foci, Transform transform)```
Returns an array of separating axes to test for this `Shape`.
`PointFeature` ```getFarthestFeature​(Vector2 vector, Transform transform)```
Returns the `Feature` farthest in the direction of the given vector.
`Vector2` ```getFarthestPoint​(Vector2 vector, Transform transform)```
Returns the point farthest in the direction of the given vector.
`Vector2[]` `getFoci​(Transform transform)`
Returns an array of world space foci points for circular curved edges.
`double` `getRadius​(Vector2 center)`
Returns the radius of the shape if the given point was the center for this shape.
`Interval` ```project​(Vector2 vector, Transform transform)```
Returns the `Interval` of this `Shape` projected onto the given `Vector2` given the `Transform`.
`String` `toString()`
• ### Methods inherited from class AbstractShape

`computeAABB, contains, createAABB, createAABB, getCenter, getRadius, getUserData, project, rotate, rotate, rotate, rotate, rotate, rotate, rotateAboutCenter, setUserData, translate, translate`
• ### Methods inherited from class Object

`equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`
• ### Methods inherited from interface DataContainer

`getUserData, setUserData`
• ### Methods inherited from interface Rotatable

`rotate, rotate, rotate, rotate, rotate, rotate`
• ### Methods inherited from interface Shape

`computeAABB, contains, createAABB, createAABB, getCenter, getRadius, project, rotateAboutCenter`
• ### Methods inherited from interface Translatable

`translate, translate`
• ### Constructor Detail

• #### Circle

`public Circle​(double radius)`
Full constructor.

Creates a new `Circle` centered on the origin with the given radius.

Parameters:
`radius` - the radius
Throws:
`IllegalArgumentException` - if the given radius is less than or equal to zero
• ### Method Detail

`public double getRadius​(Vector2 center)`
Description copied from interface: `Shape`
Returns the radius of the shape if the given point was the center for this shape.
Specified by:
`getRadius` in interface `Shape`
Parameters:
`center` - the center point
Returns:
double
• #### toString

`public String toString()`
Overrides:
`toString` in class `AbstractShape`
• #### contains

```public boolean contains​(Vector2 point,
Transform transform)```
Description copied from interface: `Shape`
Returns true if the given point is inside this `Shape`.

If the given point lies on an edge the point is considered to be inside the `Shape`.

The given point is assumed to be in world space.

Specified by:
`contains` in interface `Shape`
Parameters:
`point` - world space point
`transform` - `Transform` for this `Shape`
Returns:
boolean
• #### getFarthestPoint

```public Vector2 getFarthestPoint​(Vector2 vector,
Transform transform)```
Description copied from interface: `Convex`
Returns the point farthest in the direction of the given vector. If two points are equally distant along the given `Vector2` the first one is used.

The returned point is in world space.

Specified by:
`getFarthestPoint` in interface `Convex`
Parameters:
`vector` - the direction
`transform` - the local to world space `Transform` of this `Convex` `Shape`
Returns:
`Vector2`
• #### getAxes

```public Vector2[] getAxes​(Vector2[] foci,
Transform transform)```
Returns an array of separating axes to test for this `Shape`.

The `foci` parameter is an array of circular focal points of the other `Shape`.

If foci points are given, this method will return the separating axes for this `Shape`'s voronoi regions also. The points in the foci array are assumed to be in world space.

The returned axes are normalized and in world space.

Circular shapes are handled specifically in the SAT algorithm since they have an infinite number of axes. As a result this method returns null.

Specified by:
`getAxes` in interface `Convex`
Parameters:
`foci` - the world space points representing foci of curved `Shape`s; can be null
`transform` - the local to world space `Transform` of this `Convex` `Shape`
Returns:
null
• #### getFoci

`public Vector2[] getFoci​(Transform transform)`
Description copied from interface: `Convex`
Returns an array of world space foci points for circular curved edges.

This method returns null if the `Shape` has zero curved edges.

The returned points are in world space.

Specified by:
`getFoci` in interface `Convex`
Parameters:
`transform` - the local to world space `Transform` of this `Convex` `Shape`
Returns:
`Vector2`[]