View Javadoc

1   package cz.cuni.amis.pogamut.emohawk.agent.module.sensomotoric;
2   
3   import cz.cuni.amis.pogamut.base3d.worldview.object.Location;
4   
5   /**
6    * Holds anotated places in the map EmohawkVille.
7    * TODO - needs check.
8    * @author knight
9    */
10  public enum Place {
11      BARBARA_HOME(new Location(12809,-12262,-3424), 200),
12      NATALY_HOME(new Location(14600,3315,-3424), 200),
13      NATALY_WAIT_PLACE(new Location(13500,-950,-3424), 200),
14      SCEN_LONE_MEETING_POINT(new Location(15500,-9493,-3420), 200),
15      EMOHAWK_ROAM_LOCATION(new Location(5500,-7200,-3424), 200),
16      THOMAS_HOME(new Location(14600,3315,-3424), 200),
17      RESTAURANT(new Location(-4658,704,-3419), 200),
18      CINEMA(new Location(-327,-7364,-3420), 200),
19      PARK(new Location(2864,-2923,-3416), 200),
20      SPHERE(new Location(5518,-1923,-3416), 200);
21  
22      /** exact place middle location */
23      Location placeLocation;
24      /** place raidus in unreal units 1 ut unit is approx. 1 cm*/
25      double placeRadius;
26  
27      public Location getPlaceLocation() {
28          return placeLocation;
29      }
30  
31      public double getPlaceRadius() {
32          return placeRadius;
33      }
34  
35      public boolean placeReached(Location location) {
36          if (location == null) return false;
37  
38          if (location.getDistance(placeLocation) <= placeRadius)
39              return true;
40  
41          return false;
42      }
43  
44      public boolean placeReached(Location location, double epsilon) {
45          if (location == null) return false;
46  
47          if (location.getDistance(placeLocation) <= (placeRadius + epsilon))
48              return true;
49  
50          return false;
51      }
52  
53      /** default constructor */
54      Place(Location location, double radius) {
55          placeLocation = location;
56          placeRadius = radius;
57      }
58  }