final List<AbstractAwtElement> elements = Lists.newArrayList(provider.getElements());
for (final Iterator<AbstractAwtElement> it = elements.iterator(); it.hasNext();) {
final AbstractAwtElement element = it.next();
// check bounds to toss it or keep it.
final ReadOnlyVector4 bounds = element.getBounds();
if (bounds.getX() > maxX || bounds.getX() + bounds.getZ() <= minX || bounds.getY() > maxY
|| bounds.getY() + bounds.getW() <= minY) {
// toss it
it.remove();
}
}