Class Sphere

java.lang.Object
  |
  +--Object
        |
        +--Sphere

public class Sphere
extends Object

Sphere represents a spherical object


Field Summary
 Point Centre
          Holds the point that defines the sphere centre
 double Radius
          Holds the radius of the sphere
 
Fields inherited from class Object
SurfaceMaterial
 
Constructor Summary
Sphere()
          Create a default sphere
Sphere(Material n, Point p, double r)
          Create a sphere with the given material, centre and radius Note values are referenced not copied in the new object
 
Method Summary
 double intersect(Ray ray)
          Find the intersection of the plane and a given ray.
 Vector normal(Point p)
          Find the normal of an object at the given point on its surface.
 void print(SceneWriter os)
          Print a human readable version of the sphere definition to the given destination
 void read(SceneReader is)
          Read the sphere from the given source
 void write(SceneWriter os)
          Write the sphere to the given destination
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

Centre

public Point Centre
Holds the point that defines the sphere centre

Radius

public double Radius
Holds the radius of the sphere
Constructor Detail

Sphere

public Sphere()
Create a default sphere

Sphere

public Sphere(Material n,
              Point p,
              double r)
Create a sphere with the given material, centre and radius Note values are referenced not copied in the new object
Parameters:
n - the material for the plane
p - the centre of the sphere
r - the radius of the sphere
Method Detail

normal

public Vector normal(Point p)
Find the normal of an object at the given point on its surface. Note that a new Vector is created on each call.
Parameters:
pt - the surface point to find the normal at
Returns:
a reference to the fixed normal of the plane
Overrides:
normal in class Object

intersect

public double intersect(Ray ray)
Find the intersection of the plane and a given ray. The return value is positive is the intersection is found and this value gives the distance along the ray. Negative values imply that the intersection was either not successful or the intersection point was before the origin. This value can be used with the pointAt method of the Ray class (@see Ray#pointAt)
Parameters:
ray - the ray to intersect with
Returns:
a double value that gives the distance along the ray.
Overrides:
intersect in class Object

read

public void read(SceneReader is)
          throws java.io.IOException,
                 java.lang.NumberFormatException
Read the sphere from the given source
Parameters:
is - the source to read from
Throws:
java.io.IOException - if the light can not be read
java.io.NumberFormatException - if there a number format error is encountered
Overrides:
read in class Object

write

public void write(SceneWriter os)
           throws java.io.IOException
Write the sphere to the given destination
Parameters:
os - the destination to write to
Throws:
java.io.IOException - if the write fails.
Overrides:
write in class Object

print

public void print(SceneWriter os)
           throws java.io.IOException
Print a human readable version of the sphere definition to the given destination
Parameters:
os - the destination to write to
Throws:
java.io.IOException - if the write fails.
Overrides:
print in class Object