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.Boundaryboundary()Get theBoundaryof this intersectible.java.util.List<Intersection>intersect(LineSegment line)Calculates all the intersections between a givenLineSegmentand this object.NormalizedVectornormal(Point p)Returns normal to the sphere at given point.Methods inherited from class geometries.Geometry
intersectionMethods 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:
normalin 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
NormalizedVectorperpendicular to the surface of the shape at the givenPoint. - Throws:
ZeroVectorException- if p is the center of the sphere.
-
intersect
Description copied from interface:IntersectibleCalculates all the intersections between a givenLineSegmentand this object.- Parameters:
line- TheLineSegmentto check for intersections.- Returns:
- A list of all the intersections with the given
LineSegment.
-
boundary
public geometries.Boundary boundary()Description copied from interface:IntersectibleGet theBoundaryof this intersectible.- Returns:
- The bounding box of this intersectible.
-