package jeql.std.geom;
import java.util.HashMap;
import java.util.Map;
import jeql.api.function.FunctionClass;
import com.vividsolutions.jts.geom.Geometry;
import com.vividsolutions.jts.geom.prep.PreparedGeometry;
import com.vividsolutions.jts.geom.prep.PreparedGeometryFactory;
/**
* Prepares all LHS geometries used, and caches
* them for future use.
*
* @author Martin Davis
*
*/
public class GeomPrepAllFunction
implements FunctionClass
{
private static Map<Geometry, PreparedGeometry> cache = new HashMap<Geometry, PreparedGeometry>();
private static PreparedGeometry cacheFind(Geometry g)
{
PreparedGeometry pg = cache.get(g);
if (pg == null) {
pg = PreparedGeometryFactory.prepare(g);
cache.put(g, pg);
//System.out.println("cache size = " + cache.size());
}
return pg;
}
public static boolean contains(Geometry g1, Geometry g2)
{
return cacheFind(g1).contains(g2);
}
}