Class Polygon

java.lang.Object
  extended by Shape
      extended by Polygon
All Implemented Interfaces:
CloneableEx, java.lang.Cloneable, Persistent

public class Polygon
extends Shape

A class representing a polygon. A polygon is specified by a list of vertices. If the vertices are not coplanar methods called on this class are undefined.


Constructor Summary
Polygon()
           
Polygon(java.util.ArrayList<javax.vecmath.Point3d> vertices, SurfaceProperties sp)
          Constructs a polygon with the specified parameters.
 
Method Summary
 java.lang.Object clone()
          Returns a copy of the object.
 Plane getPlane()
          Returns the plane of the polygon.
 java.util.ArrayList<javax.vecmath.Point3d> getVertices()
          Returns the vertices of the polygon.
 void load(DataParser dataParser)
          Loads data using the DataParser object.
 double nearestIntersectionTime(Ray3d ray)
          Gets the nearest intersection time between the specified ray and the shape.
 void setVertices(java.util.ArrayList<javax.vecmath.Point3d> vertices)
          Sets the vertices of the polygon.
 javax.vecmath.Vector3d surfaceNormal(javax.vecmath.Point3d point)
          Gets the surface normal at the specified point on the shape.
 
Methods inherited from class Shape
getSurfaceProperties, setSurfaceProperties
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Polygon

public Polygon()

Polygon

public Polygon(java.util.ArrayList<javax.vecmath.Point3d> vertices,
               SurfaceProperties sp)
Constructs a polygon with the specified parameters. The vertices should be coplanar.

Parameters:
vertices - The vertices making up the polygon.
sp - The surface properties of the polygon.
Method Detail

clone

public java.lang.Object clone()
Description copied from interface: CloneableEx
Returns a copy of the object.

Specified by:
clone in interface CloneableEx
Specified by:
clone in class Shape
Returns:
A copy of the object.

nearestIntersectionTime

public double nearestIntersectionTime(Ray3d ray)
Description copied from class: Shape
Gets the nearest intersection time between the specified ray and the shape.

Specified by:
nearestIntersectionTime in class Shape
Parameters:
ray - The ray to intersect with the shape.
Returns:
The nearest time of intersection.

surfaceNormal

public javax.vecmath.Vector3d surfaceNormal(javax.vecmath.Point3d point)
Description copied from class: Shape
Gets the surface normal at the specified point on the shape.

Specified by:
surfaceNormal in class Shape
Parameters:
point - The point on the surface of the shape.
Returns:
The surface normal of the point on the shape.

load

public void load(DataParser dataParser)
Description copied from interface: Persistent
Loads data using the DataParser object.

A class overrides this function to load data that has been parsed.

Specified by:
load in interface Persistent
Overrides:
load in class Shape
Parameters:
dataParser - The DataParser to load data from.

setVertices

public void setVertices(java.util.ArrayList<javax.vecmath.Point3d> vertices)
Sets the vertices of the polygon.

Parameters:
vertices - The vertices to set.

getVertices

public java.util.ArrayList<javax.vecmath.Point3d> getVertices()
Returns the vertices of the polygon.

Returns:
The vertices of the polygon.

getPlane

public Plane getPlane()
Returns the plane of the polygon.

Returns:
The plane of the polygon.