/** * @param g the graphics object intialized in paint method which is used to draw on the panel * <p>loops from the minimum cell (getSlam2().getMap().getmap.getMinPoint()()) explored of the * environment to the maximum cell (map.getMaxPoint()) */ public void gridDraw(Graphics g) { x = 0; y = 0; cellSize = calculateCellSize(); for (int i = (int) map.getMinPoint().getX(); i <= map.getMaxPoint().getX(); i++) { x++; y = 0; for (int j = (int) map.getMinPoint().getY(); j <= map.getMaxPoint().getY(); j++) { y++; cellDraw(i, j, g); } } try { Thread.sleep(25); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
/** * @param a the width of the panel * @param b the height of the panel * @param s the slam object to be used */ public EvaulationMapPanel(double a, double b, EvaluationGUI frameUI) { setSize((int) a, (int) b); percentageZoom = 1; // System.out.println(getHeight()); map = frameUI.getSlam2().getMap(); frame = frameUI; main = frame.getSlam2(); mapSize = new Point(getSlam2().getMap().getGrid()[0].length, getSlam2().getMap().getGrid().length); currentCell = new Point(getSlam2().getCurrentIndexX(), getSlam2().getCurrentIndexY()); totalCells = 0; cellsVisited = 0; if (map.getMaxPoint() == null) { map.setMaxPoint(new Point(currentCell.getX() + 1, currentCell.getY() + 1)); } if (map.getMinPoint() == null) { map.setMinPoint(new Point(currentCell.getX() - 1, currentCell.getY() - 1)); } if (map.getMapPoint() == null) { map.setMapPoint( new Point(this.getWidth() / calculateCellSize(), this.getHeight() / calculateCellSize())); } setAutoscrolls(true); mouseListener mouse = new mouseListener(); addMouseWheelListener(mouse); }
/** method to draw the map */ public void paint(Graphics g) { super.paintComponent(g); this.setBackground(new Color(172, 158, 158)); moveX = (int) ((int) (map.getMapPoint().getX() - (map.getMaxPoint().getX() - map.getMinPoint().getX())) / 2); moveY = (int) ((int) (map.getMapPoint().getY() - (map.getMaxPoint().getY() - map.getMinPoint().getY())) / 2); resetSize(); getCurrentCell(); refreshMaxMin(); gridDraw(g); }
public void refreshMaxMin() { xCoordinate = (int) currentCell.getX(); yCoordiante = (int) currentCell.getY(); if (map.getMapPoint().getY() > map.getMaxPoint().getY() - map.getMinPoint().getY() && map.getMapPoint().getX() > map.getMaxPoint().getX() - map.getMinPoint().getX()) { if (yCoordiante - 1 < map.getMinPoint().getY()) { map.getMinPoint().setY(yCoordiante - 1); } if (xCoordinate - 1 < map.getMinPoint().getX()) { map.getMinPoint().setX(xCoordinate - 1); } if (yCoordiante + 1 > map.getMaxPoint().getY()) { map.getMaxPoint().setY(yCoordiante + 1); // System.out.println("doing it"); } if (xCoordinate + 1 > map.getMaxPoint().getX()) { map.getMaxPoint().setX(xCoordinate + 1); } } else { if (map.getMapPoint().getX() < map.getGrid()[0].length) { setPreferredSize( new Dimension((int) (20 * calculateCellSize()) + this.getWidth(), this.getHeight())); this.repaint(); map.getMapPoint().setX(map.getMapPoint().getX() + 20); frame.panelSize.setX(this.getWidth() + (int) (20 * calculateCellSize())); } if (map.getMapPoint().getY() < map.getGrid().length) { frame.panelSize.setY(this.getHeight() + (int) (20 * calculateCellSize())); setPreferredSize( new Dimension(this.getWidth(), this.getHeight() + (int) (20 * calculateCellSize()))); map.getMapPoint().setY(map.getMapPoint().getY() + 10); this.repaint(); } } }