88import aima .gui .framework .AgentView ;
99import aima .search .framework .SearchFactory ;
1010import aima .search .map .Map ;
11+ import aima .search .map .Point2D ;
1112
1213
1314/**
@@ -60,7 +61,7 @@ class MapAgentView extends AgentView {
6061
6162 /** Clears the panel and draws the map and the tour history. */
6263 public void paint (java .awt .Graphics g ) {
63- AbstractMapAgentModel maModel = (AbstractMapAgentModel ) model ;
64+ MapAgentModel maModel = (MapAgentModel ) model ;
6465 java .awt .Graphics2D g2 = (java .awt .Graphics2D ) g ;
6566 g2 .setColor (Color .white );
6667 g2 .fillRect (0 , 0 , getWidth (), getHeight ());
@@ -78,19 +79,19 @@ public void paint(java.awt.Graphics g) {
7879 * view without scrolling.
7980 */
8081 private void adjustTransformation () {
81- AbstractMapAgentModel maModel = (AbstractMapAgentModel ) model ;
82+ MapAgentModel maModel = (MapAgentModel ) model ;
8283 List <String > locs = maModel .getLocations ();
8384 // adjust coordinates relative to the left upper corner of the graph area
8485 double minX = Double .POSITIVE_INFINITY ;
8586 double minY = Double .POSITIVE_INFINITY ;
8687 double maxX = Double .NEGATIVE_INFINITY ;
8788 double maxY = Double .NEGATIVE_INFINITY ;
8889 for (String loc : locs ) {
89- double [] xy = maModel .getLocCoords (loc );
90- if (xy [ 0 ] < minX ) minX = xy [ 0 ] ;
91- if (xy [ 1 ] < minY ) minY = xy [ 1 ] ;
92- if (xy [ 0 ] > maxX ) maxX = xy [ 0 ] ;
93- if (xy [ 1 ] > maxY ) maxY = xy [ 1 ] ;
90+ Point2D xy = maModel .getLocCoords (loc );
91+ if (xy . getX () < minX ) minX = xy . getX () ;
92+ if (xy . getY () < minY ) minY = xy . getY () ;
93+ if (xy . getX () > maxX ) maxX = xy . getX () ;
94+ if (xy . getY () > maxY ) maxY = xy . getY () ;
9495 }
9596 this .setBorder (20 , 20 , 20 , 100 );
9697 adjustTransformation (minX , minY , maxX , maxY );
@@ -100,31 +101,31 @@ private void adjustTransformation() {
100101 * Represents roads by lines and locations by name-labeled points.
101102 */
102103 private void paintMap (java .awt .Graphics2D g2 ) {
103- AbstractMapAgentModel maModel = (AbstractMapAgentModel ) model ;
104+ MapAgentModel maModel = (MapAgentModel ) model ;
104105 Map envMap = maModel .getEnvMap ();
105106 Map agentMap = maModel .getAgentMap ();
106107 List <Roadblock > roadblocks = new ArrayList <Roadblock >();
107108 for (String l1 : maModel .getLocations ()) {
108- double [] xy1 = maModel .getLocCoords (l1 );
109+ Point2D pt1 = maModel .getLocCoords (l1 );
109110 List <String > linkedLocs = envMap .getLocationsLinkedTo (l1 );
110111 for (String l2 : agentMap .getLocationsLinkedTo (l1 ))
111112 if (!linkedLocs .contains (l2 ))
112113 linkedLocs .add (l2 );
113114 for (String l2 : linkedLocs ) {
114- double [] xy2 = maModel .getLocCoords (l2 );
115+ Point2D pt2 = maModel .getLocCoords (l2 );
115116 g2 .setColor (Color .lightGray );
116- g2 .drawLine (x (xy1 ), y (xy1 ), x (xy2 ), y (xy2 ));
117+ g2 .drawLine (x (pt1 ), y (pt1 ), x (pt2 ), y (pt2 ));
117118 boolean blockedInEnv =
118119 !envMap .getLocationsLinkedTo (l2 ).contains (l1 );
119120 boolean blockedInAgent =
120121 !agentMap .getLocationsLinkedTo (l2 ).contains (l1 );
121- roadblocks .add (new Roadblock (xy1 , xy2 , blockedInEnv , blockedInAgent ));
122+ roadblocks .add (new Roadblock (pt1 , pt2 , blockedInEnv , blockedInAgent ));
122123 if (blockedInEnv && blockedInAgent ) {
123124 boolean blockedInEnvOtherDir =
124125 !envMap .getLocationsLinkedTo (l1 ).contains (l2 );
125126 boolean blockedInAgentOtherDir =
126127 !agentMap .getLocationsLinkedTo (l1 ).contains (l2 );
127- roadblocks .add (new Roadblock (xy2 , xy1 , blockedInEnvOtherDir , blockedInAgentOtherDir ));
128+ roadblocks .add (new Roadblock (pt2 , pt1 , blockedInEnvOtherDir , blockedInAgentOtherDir ));
128129 }
129130 }
130131 }
@@ -134,15 +135,15 @@ private void paintMap(java.awt.Graphics2D g2) {
134135
135136 /** The track of the agent is visualized with red lines. */
136137 private void paintTour (java .awt .Graphics2D g2 ) {
137- AbstractMapAgentModel maModel = (AbstractMapAgentModel ) model ;
138- double [] lastXY = null ;
138+ MapAgentModel maModel = (MapAgentModel ) model ;
139+ Point2D lastPt = null ;
139140 g2 .setColor (Color .red );
140141 for (String loc : maModel .getTourHistory ()) {
141- double [] xy = maModel .getLocCoords (loc );
142- if (xy != null && lastXY != null ) {
143- g2 .drawLine (x (xy ), y (xy ), x (lastXY ), y (lastXY ));
142+ Point2D pt = maModel .getLocCoords (loc );
143+ if (pt != null && lastPt != null ) {
144+ g2 .drawLine (x (pt ), y (pt ), x (lastPt ), y (lastPt ));
144145 }
145- lastXY = xy ;
146+ lastPt = pt ;
146147 }
147148 }
148149
@@ -166,11 +167,11 @@ else if (!block.inEnvMap)
166167 }
167168
168169 private void paintLoc (java .awt .Graphics2D g2 , String loc ) {
169- AbstractMapAgentModel maModel = (AbstractMapAgentModel ) model ;
170- double [] xy = maModel .getLocCoords (loc );
171- if (xy != null ) {
172- int x = x (xy );
173- int y = y (xy );
170+ MapAgentModel maModel = (MapAgentModel ) model ;
171+ Point2D pt = maModel .getLocCoords (loc );
172+ if (pt != null ) {
173+ int x = x (pt );
174+ int y = y (pt );
174175 String info = "" ;
175176 List <String > history = maModel .getTourHistory ();
176177 ArrayList <Integer > list = new ArrayList <Integer >();
@@ -214,11 +215,11 @@ else if (history.contains(loc))
214215 * the road itself so that they always appear in front.
215216 */
216217 private static class Roadblock {
217- double [] pos1 ;
218- double [] pos2 ;
218+ Point2D pos1 ;
219+ Point2D pos2 ;
219220 boolean inEnvMap ;
220221 boolean inAgentMap ;
221- private Roadblock (double [] pos1 , double [] pos2 , boolean inEnvMap , boolean inAgentMap ) {
222+ private Roadblock (Point2D pos1 , Point2D pos2 , boolean inEnvMap , boolean inAgentMap ) {
222223 this .pos1 = pos1 ;
223224 this .pos2 = pos2 ;
224225 this .inEnvMap = inEnvMap ;
0 commit comments