|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
Poly is an interface to a complex polygon. Poly polygons
can consist of multiple "inner" polygons that can be disjoint and can be considered holes.
Currently, this interface supports two concepts:
Refactoring. This would be a good place for some refactoring to create
a ComplexPoly and an InnerPoly or something so that these two concepts are broken
out. One might also consider changing from an interface to an abstract class,
so the methods isContributing() and setContributing()
could have an access of package only. Or, the Clip algorithm could
not store this information in the Poly.
Assumptions. The methods that access the polygon as though it were a set of points assume it is accessing the first polygon in the list of inner polygons. It is also assumed that inner polygons do not have more inner polygons.
| Method Summary | |
void |
add(double x,
double y)
Add a point to the first inner polygon. |
void |
add(java.awt.geom.Point2D p)
Add a point to the first inner polygon. |
void |
add(Poly p)
Add an inner polygon to this polygon - assumes that adding polygon does not have any inner polygons. |
void |
clear()
Remove all of the points. |
double |
getArea()
Return the area of the polygon in square units. |
java.awt.geom.Rectangle2D |
getBounds()
Returns the bounding rectangle of this polygon. |
Poly |
getInnerPoly(int polyIndex)
Returns the polygon at this index. |
int |
getNumInnerPoly()
Returns the number of inner polygons - inner polygons are assumed to return one here. |
int |
getNumPoints()
Return the number points of the first inner polygon |
double |
getX(int index)
Return the X value of the point at the index in the first inner polygon |
double |
getY(int index)
Return the Y value of the point at the index in the first inner polygon |
Poly |
intersection(Poly p)
Return a Poly that is the intersection of this polygon with the given polygon. |
boolean |
isContributing(int polyIndex)
Return true if the given inner polygon is contributing to the set operation. |
boolean |
isEmpty()
Return true if the polygon is empty |
boolean |
isHole()
Return true if this polygon is a hole. |
void |
setContributing(int polyIndex,
boolean contributes)
Set whether or not this inner polygon is constributing to the set operation. |
void |
setIsHole(boolean isHole)
Set whether or not this polygon is a hole. |
Poly |
union(Poly p)
Return a Poly that is the union of this polygon with the given polygon. |
Poly |
xor(Poly p)
Return a Poly that is the exclusive-or of this polygon with the given polygon. |
| Method Detail |
public void clear()
public void add(double x,
double y)
public void add(java.awt.geom.Point2D p)
public void add(Poly p)
public boolean isEmpty()
public java.awt.geom.Rectangle2D getBounds()
public Poly getInnerPoly(int polyIndex)
public int getNumInnerPoly()
public int getNumPoints()
public double getX(int index)
public double getY(int index)
public boolean isHole()
java.lang.IllegalStateException - if called on a complex polygon.public void setIsHole(boolean isHole)
java.lang.IllegalStateException - if called on a complex polygon.public boolean isContributing(int polyIndex)
public void setContributing(int polyIndex,
boolean contributes)
public Poly intersection(Poly p)
public Poly union(Poly p)
public Poly xor(Poly p)
public double getArea()
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||