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 |
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 |
Centre
public Point Centre
- Holds the point that defines the sphere centre
Radius
public double Radius
- Holds the radius of the sphere
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 planep
- the centre of the spherer
- the radius of the sphere
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