package maps.gml.generator;
import maps.gml.GMLMap;
import maps.gml.formats.RobocupFormat;
import maps.MapWriter;
import maps.MapException;
import rescuecore2.config.Config;
import rescuecore2.config.ConfigException;
import rescuecore2.log.Logger;
import java.io.File;
/**
A tool for generating GML maps.
*/
public class GMLMapGenerator {
private static final String OUTPUT_FILE_KEY = "generator.output";
private Config config;
/**
Construct a GMLMapGenerator.
@param config The configuration to use.
*/
public GMLMapGenerator(Config config) {
this.config = config;
}
/**
Entry point.
@param args Command line arguments.
*/
public static void main(String[] args) {
try {
Config config = new Config();
for (int i = 0; i < args.length; ++i) {
config.read(new File(args[i]));
}
GMLMap map = new GMLMapGenerator(config).generateMap();
String outFile = config.getValue(OUTPUT_FILE_KEY);
Logger.debug("Writing generated map to " + outFile);
MapWriter.writeMap(map, outFile, RobocupFormat.INSTANCE);
}
catch (MapException e) {
e.printStackTrace();
}
catch (ConfigException e) {
e.printStackTrace();
}
}
/**
Generate a new map.
@return The new map.
*/
public GMLMap generateMap() {
GMLMap result = new GMLMap();
new ManhattanGenerator(config).populate(result);
return result;
}
}