|
|||||||||||
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(IPolygon p)
Add an inner polygon to this polygon - assumes that adding polygon does not have any inner polygons. |
void |
add(Point p)
Add a point to the first inner polygon. |
void |
clear()
Remove all of the points. |
boolean |
contains(Point loc)
|
double |
getArea()
Return the area of the polygon in square units. |
Rectangle |
getBounds()
Returns the bounding rectangle of this polygon. |
IPolygon |
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 |
Point |
getPoint(int i)
|
java.util.List |
getPoints()
Returns the points |
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 |
IPolygon |
intersection(IPolygon 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. |
IPolygon |
union(IPolygon p)
Return a Poly that is the union of this polygon with the given polygon. |
IPolygon |
xor(IPolygon 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(Point p)
public void add(IPolygon p)
public boolean isEmpty()
public Rectangle getBounds()
public IPolygon getInnerPoly(int polyIndex)
public java.util.List getPoints()
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 IPolygon intersection(IPolygon p)
public IPolygon union(IPolygon p)
public IPolygon xor(IPolygon p)
public double getArea()
public boolean contains(Point loc)
public Point getPoint(int i)
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |