package iamrescue.routing.gui; import iamrescue.belief.IAMWorldModel; import iamrescue.routing.dijkstra.SimpleGraph; import iamrescue.routing.dijkstra.SimpleGraph.Node; import iamrescue.util.PositionXY; import java.awt.Color; import java.awt.Graphics2D; import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Set; import javolution.util.FastSet; import rescuecore2.misc.Pair; import rescuecore2.misc.gui.ScreenTransform; import rescuecore2.standard.entities.StandardEntity; import rescuecore2.standard.view.StandardViewLayer; import rescuecore2.view.RenderedObject; import rescuecore2.view.ViewComponent; import rescuecore2.view.ViewListener; import rescuecore2.worldmodel.EntityID; public class SearchLayer extends StandardViewLayer implements ViewListener { private IAMWorldModel worldModel; public SearchLayer(IAMWorldModel worldModel) { this.worldModel = worldModel; } /* * (non-Javadoc) * * @see rescuecore2.view.ViewLayer#getName() */ @Override public String getName() { return "Search Graph"; } /* * (non-Javadoc) * * @see rescuecore2.view.ViewLayer#render(java.awt.Graphics2D, * rescuecore2.misc.gui.ScreenTransform, int, int) */ @Override public Collection<RenderedObject> render(Graphics2D g, ScreenTransform transform, int width, int height) { Collection<EntityID> unknownBuildings = worldModel .getUnknownBuildings(); Collection<EntityID> safeUnsearchedBuildings = worldModel .getSafeUnsearchedBuildings(); g.setColor(Color.YELLOW); for (EntityID building : unknownBuildings) { StandardEntity entity = world.getEntity(building); Pair<Integer, Integer> location = entity.getLocation(worldModel); int x = transform.xToScreen(location.first()); int y = transform.yToScreen(location.second()); g.fillOval(x, y, 15, 15); } g.setColor(Color.CYAN); for (EntityID building : safeUnsearchedBuildings) { StandardEntity entity = world.getEntity(building); Pair<Integer, Integer> location = entity.getLocation(worldModel); int x = transform.xToScreen(location.first()); int y = transform.yToScreen(location.second()); g.fillOval(x, y, 10, 10); } return new ArrayList<RenderedObject>(); } /* * (non-Javadoc) * * @see * rescuecore2.view.ViewListener#objectsClicked(rescuecore2.view.ViewComponent * , java.util.List) */ @Override public void objectsClicked(ViewComponent view, List<RenderedObject> objects) { // TODO Auto-generated method stub } /* * (non-Javadoc) * * @see * rescuecore2.view.ViewListener#objectsRollover(rescuecore2.view.ViewComponent * , java.util.List) */ @Override public void objectsRollover(ViewComponent view, List<RenderedObject> objects) { // TODO Auto-generated method stub } }