public void update() {
		Graphics2D g = _buffer.createGraphics();
		
		double pixX = DEFAULT_WIDTH / (double)_width;
		double pixY = DEFAULT_HEIGHT / (double)_height;
		for (int i = 0; i < _height; i++) {
			for (int j = 0; j < _width; j++) {
				//g.setColor(BACKGROUND_COLOR);
				int w = (int)(_wps.getMap().getWeight(j, i) / 4);
				if (w > 255) w = 255;
				int gr = (int)((w > 128 ? 1-2*(w-128)/256.0 : 1.0) * 210);
				int rd = (int)((w > 128 ? 1.0 : 2*w/256.0) * 210);
				g.setColor(new Color(rd,gr,80,255));
				
				g.fillRect((int)(j*pixX), (int)(i*pixY), (int)pixX+1, (int)pixY+1);
			}
		}
		
		for (int i = 0; i < _wps.getPath().size(); i++) {
			Point p = _wps.getPath().get(i);
			g.setColor(ORIG_PATH_COLOR);
			g.fillRect((int)(p.x()*pixX), (int)(p.y()*pixY), (int)pixX+1, (int)pixY+1);
		}

		for (int i = 0; i < _wps.getSmoothPath().size(); i++) {
			Point p = _wps.getSmoothPath().get(i);
			g.setColor(SMOOTH_PATH_COLOR);
			g.fillRect((int)(p.x()*pixX), (int)(p.y()*pixY), (int)pixX+1, (int)pixY+1);
		}

			

		
		g.dispose();
	}