/** * Gets the layer extent that this compiler will use. If this is set * to GeoExtent.Infinite, that compiler will query the feature layer * for its full extent and use that as the AOI. */ public GeoExtent getAreaOfInterest(FeatureLayer layer) { if (aoi_xmin < aoi_xmax && aoi_ymin < aoi_ymax) { return(new GeoExtent(aoi_xmin, aoi_ymin, aoi_xmax, aoi_ymax, layer.getSRS())); } else { return(layer.getExtent()); } }
/** * Pushes source data onto the level of detail queue. Levels of detail are * interpreted from front to back. * * @param layer * Feature layer from which to read source data * @param graph * Filter graph to use to build scene graph * @param min_range * Minimum visibility range of this level of detail * @param max_range * Maximum visibility range of this level of detail * @param replace * If true, this detail level will replace the ones before it. If false, it * will join the scene graph without removing the previous levels. * @param depth * Level of detail depth (0 = top level) * @param user_data * User-defined data to pass to the cell compiler */ public void push(FeatureLayer layer, FilterGraph graph, Properties env_props, ResourcePackager packager, float min_range, float max_range, bool replace, uint depth, object user_data) { if (layer != null) { // update the automatic AOI: if (!aoi_auto.isValid()) aoi_auto = layer.getExtent(); else aoi_auto.expandToInclude(layer.getExtent()); // store the LOD definition: levels.Add(new MapLayerLevelOfDetail( layer, graph, env_props, packager, min_range, max_range, replace, depth, user_data)); grid_valid = false; } }