- boolean drawn_landed_circle = false;
- boolean drawn_boost_circle = false;
- public void show(AltosState state, int crc_errors, Point2D.Double pt) {
- if (last_pt == null) {
- // setLocation(state.pad_lat, state.pad_lon);
- // loadMap();
- last_pt = pt;
- }
-
- if (pt != last_pt) {
- if (0 <= state.state && state.state < stateColors.length) {
- g2d.setColor(stateColors[state.state]);
- }
- g2d.draw(new Line2D.Double(last_pt, pt));
- }
-
- int px_size = getWidth();
- if (0 <= pt.x && pt.x < px_size) {
- if (0 <= pt.y && pt.y < px_size) {
- int dx = 500, dy = 250;
- if (state.state > 2) {
- dx = Math.min(200, 20 + (int) Math.abs(last_pt.x - pt.x));
- dy = Math.min(100, 10 + (int) Math.abs(last_pt.y - pt.y));
- }
- Rectangle r = new Rectangle((int)pt.x-dx, (int)pt.y-dy,
- dx*2, dy*2);
- scrollRectToVisible(r);
- }
+ private boolean drawn_landed_circle = false;
+ private boolean drawn_boost_circle = false;
+ public synchronized void show(AltosState state, int crc_errors,
+ Point2D.Double last_pt, Point2D.Double pt)
+ {
+ if (0 <= state.state && state.state < stateColors.length) {
+ g2d.setColor(stateColors[state.state]);