Page 292 - The Definitive Guide to Building Java Robots
P. 292

Preston_5564C07.fm  Page 273  Monday, September 26, 2005  5:38 AM



                                                                               CHAPTER 7  ■  NAVIGATION  273



                            public void addVertex(Vertex v) {
                                vertices.add(v);
                            }

                            public void addAllVertices(ArrayList v) {
                                vertices = v;
                            }


                            public int getDist(Vertex start, Vertex end) {
                                int[][] adj = getAdj();
                                int size = vertices.size();
                                int w = 0;
                                for (int i = 0; i < size; i++) {
                                    Vertex vi = (Vertex) vertices.get(i);
                                    for (int j = 0; j < size; j++) {
                                        Vertex vj = (Vertex) vertices.get(j);
                                        if (vi.equals(start) && vj.equals(end)) {
                                            w = adj[i][j];
                                        }
                                    }

                                }
                                return w;
                            }

                            public void setShortDistance(Vertex v, int dist) {
                                unsettled.remove(v);
                                distances.put(v, new Integer(dist));
                                unsettled.add(v);
                            }

                            public void setPred(Vertex a, Vertex b ){
                                oldVertex.put(a,b);
                            }

                            public Vertex getPred(Vertex a) {
                                return (Vertex)oldVertex.get(a);
                            }

                            public int getShortDistance(Vertex v) {
                                Integer d = (Integer) distances.get(v);
                                if (d == null) {
                                    return Integer.MAX_VALUE;
                                } else {
                                    return d.intValue();
                                }
                            }
   287   288   289   290   291   292   293   294   295   296   297