if (dataArea.isEmpty() == false)
{
a.intersect(new Area(dataArea));
}
final PathIterator pathIterator = a.getPathIterator(null, 2);
final FloatList floats = new FloatList(100);
final float[] coords = new float[6];
while (pathIterator.isDone() == false)
{
final int retval = pathIterator.currentSegment(coords);
if (retval == PathIterator.SEG_MOVETO ||
retval == PathIterator.SEG_LINETO)
{
floats.add(coords[0]);
floats.add(coords[1]);
}
pathIterator.next();
}
if (floats.size() == 0)
{
return null;
}
return (new PolygonImageMapEntry(floats.toArray()));
}