Package geometries
Class Sphere
java.lang.Object
geometries.Geometry
geometries.Sphere
- All Implemented Interfaces:
Intersectible
public class Sphere extends Geometry
This represents a sphere. A sphere is described by a center
Point
and
a positive radius.-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and Type Method Description geometries.Boundary
boundary()
Get theBoundary
of this intersectible.java.util.List<Intersection>
intersect(LineSegment line)
Calculates all the intersections between a givenLineSegment
and this object.NormalizedVector
normal(Point p)
Returns normal to the sphere at given point.Methods inherited from class geometries.Geometry
intersection
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Constructor Details
-
Sphere
Constructs a sphere from a given center point and a radius.
-
-
Method Details
-
normal
Returns normal to the sphere at given point.- Specified by:
normal
in classGeometry
- Parameters:
p
- The point to get normal at. This point is assumed to be on the surface of the circle. If it's not then it is undefined behavior.- Returns:
- A
NormalizedVector
perpendicular to the surface of the shape at the givenPoint
. - Throws:
ZeroVectorException
- if p is the center of the sphere.
-
intersect
Description copied from interface:Intersectible
Calculates all the intersections between a givenLineSegment
and this object.- Parameters:
line
- TheLineSegment
to check for intersections.- Returns:
- A list of all the intersections with the given
LineSegment
.
-
boundary
public geometries.Boundary boundary()Description copied from interface:Intersectible
Get theBoundary
of this intersectible.- Returns:
- The bounding box of this intersectible.
-