View Javadoc

1   package cz.cuni.amis.pogamut.emohawk.agent.module.sensomotoric;
2   
3   import SteeringProperties.LeaderFollowingProperties;
4   import SteeringProperties.ObstacleAvoidanceProperties;
5   import SteeringProperties.PathFollowingProperties;
6   import SteeringProperties.PeopleAvoidanceProperties;
7   import SteeringProperties.StickToPathProperties;
8   import SteeringProperties.TargetApproachingProperties;
9   import SteeringProperties.WalkAlongProperties;
10  import SteeringProperties.WallFollowingProperties;
11  import SteeringStuff.SteeringManager;
12  import SteeringStuff.SteeringType;
13  import cz.cuni.amis.pogamut.base.agent.module.SensomotoricModule;
14  import cz.cuni.amis.pogamut.ut2004.agent.module.sensomotoric.Raycasting;
15  import cz.cuni.amis.pogamut.ut2004.bot.command.AdvancedLocomotion;
16  import cz.cuni.amis.pogamut.ut2004.bot.impl.UT2004Bot;
17  import java.util.logging.Logger;
18  
19  /**
20   * Module wrapping steerings control - SteeringManager object. Depends on UT2004SteeringLibrary
21   *(<groupId>cz.cuni.amis.pogamut.ut2004.steerings</groupId>,
22    <artifactId>UT2004SteeringLibrary</artifactId>).
23   * @author knight
24   */
25  public class Steering extends SensomotoricModule<UT2004Bot> {
26  
27      /** our steering manager */
28      SteeringManager steeringManager;
29  
30      public LeaderFollowingProperties getLeaderFollowingProperties() {
31          return steeringManager.getLeaderFollowingProperties();
32      }
33  
34      public ObstacleAvoidanceProperties getObstacleAvoidanceProperties() {
35          return steeringManager.getObstacleAvoidanceProperties();
36      }
37  
38      public PathFollowingProperties getPathFollowingProperties() {
39          return steeringManager.getPathFollowingProperties();
40      }
41  
42      public PeopleAvoidanceProperties getPeopleAvoidanceProperties() {
43          return steeringManager.getPeopleAvoidanceProperties();
44      }
45  
46      public TargetApproachingProperties getTargetApproachingProperties() {
47          return steeringManager.getTargetApproachingProperties();
48      }
49  
50      public WalkAlongProperties getWalkAlongProperties() {
51          return steeringManager.getWalkAlongProperties();
52      }
53  
54      public WallFollowingProperties getWallFollowingProperties() {
55          return steeringManager.getWallFollowingProperties();
56      }
57  
58      public SteeringManager getSteeringManager() {
59          return steeringManager;
60      }
61  
62      public void addLeaderFollowingSteering(LeaderFollowingProperties properties) {
63          steeringManager.addLeaderFollowingSteering(properties);
64      }
65  
66      public void removeLeaderFollowingSteering() {
67          steeringManager.removeLeaderFollowingSteering();
68      }
69  
70      public void setLeaderFollowingSteering(LeaderFollowingProperties properties) {
71          steeringManager.setLeaderFollowingSteering(properties);
72      }
73  
74      public boolean isLeaderFollowingActive() {
75          return steeringManager.hasSteering(SteeringType.LEADER_FOLLOWING);
76      }
77  
78      public void addObstacleAvoidanceSteering(ObstacleAvoidanceProperties properties) {
79          steeringManager.addObstacleAvoidanceSteering( properties);
80      }
81  
82      public void removeObstacleAvoidanceSteering() {
83          steeringManager.removeObstacleAvoidanceSteering();
84      }
85  
86      public void setObstacleAvoidanceSteering(ObstacleAvoidanceProperties properties) {
87          steeringManager.setObstacleAvoidanceSteering(properties);
88      }
89  
90      public boolean isObstacleAvoidanceActive() {
91          return steeringManager.hasSteering(SteeringType.OBSTACLE_AVOIDANCE);
92      }
93  
94      public void addPathFollowingSteering(PathFollowingProperties properties) {
95          steeringManager.addPathFollowingSteering(properties);
96      }
97  
98      public void removePathFollowingSteering() {
99          steeringManager.removePathFollowingSteering();
100     }
101 
102     public void setPathFollowingSteering(PathFollowingProperties properties) {
103         steeringManager.setPathFollowingSteering(properties);
104     }
105 
106     public boolean isPathFollowingActive() {
107         return steeringManager.hasSteering(SteeringType.PATH_FOLLOWING);
108     }
109 
110     public void addPeopleAvoidanceSteering(PeopleAvoidanceProperties properties) {
111         steeringManager.addPeopleAvoidanceSteering( properties);
112     }
113 
114     public void removePeopleAvoidanceSteering() {
115         steeringManager.removePeopleAvoidanceSteering();
116     }
117 
118     public void setPeopleAvoidanceSteering(PeopleAvoidanceProperties properties) {
119         steeringManager.setPeopleAvoidanceSteering(properties);
120     }
121 
122     public boolean isPeopleAvoidanceActive() {
123         return steeringManager.hasSteering(SteeringType.PEOPLE_AVOIDANCE);
124     }
125     
126     public void addTargetApproachingSteering(TargetApproachingProperties properties) {
127         steeringManager.addTargetApproachingSteering(properties);
128     }
129 
130     public void removeTargetApproachingSteering() {
131         steeringManager.removeTargetApproachingSteering();
132     }
133 
134     public void setTargetApproachingSteering(TargetApproachingProperties properties) {
135         steeringManager.setTargetApproachingSteering(properties);
136     }
137 
138     public boolean isTargetApproachingActive() {
139         return steeringManager.hasSteering(SteeringType.TARGET_APPROACHING);
140     }
141 
142     public void addWalkAlongSteering(WalkAlongProperties properties) {
143         steeringManager.addWalkAlongSteering(properties);
144     }
145 
146     public void removeWalkAlongSteering() {
147         steeringManager.removeWalkAlongSteering();
148     }
149     
150     public void setWalkAlongSteering(WalkAlongProperties properties) {
151         steeringManager.setWalkAlongSteering(properties);
152     }
153 
154     public boolean isWalkAlongActive() {
155         return steeringManager.hasSteering(SteeringType.WALK_ALONG);
156     }
157     
158     public void addWallFollowingSteering(WallFollowingProperties properties) {
159         steeringManager.addWallFollowingSteering(properties);
160     }
161 
162     public void removeWallFollowingSteering() {
163         steeringManager.removeWallFollowingSteering();
164     }
165     
166     public void setWallFollowingSteering(WallFollowingProperties properties) {
167         steeringManager.setWallFollowingSteering(properties);
168     }
169 
170     public boolean isWallFollowingActive() {
171         return steeringManager.hasSteering(SteeringType.WALL_FOLLOWING);
172     }
173     
174     public void addStickToPathSteering(StickToPathProperties stickToPathProperties) {
175 		steeringManager.addStickToPathSteering(stickToPathProperties);		
176 	}
177     
178     public void removeStickToPathSteering() {
179         steeringManager.removeStickToPathSteering();
180     }
181     
182     public void setStickToPathSteering(StickToPathProperties properties) {
183         steeringManager.setStickToPathSteering(properties);
184     }
185 
186     public boolean isStickToPathSteering() {
187         return steeringManager.hasSteering(SteeringType.STICK_TO_PATH);
188     }
189 
190     
191     /**
192      * Starts navigation using set steerings.
193      */
194     public void startNavigation() {
195         steeringManager.start();
196     }
197 
198     /**
199      * Stops navigation (leaving the steerings settings as they are for further resuming).
200      */
201     public void stopNavigation() {
202         steeringManager.stop();
203     }
204 
205     /**
206      * Returns whether we are we currently using steerings for navigation.
207      * @return
208      */
209     public boolean isNavigating() {
210         return steeringManager.isNavigating();
211     }
212     
213     /**
214      * Removes all set steerings.
215      */
216     public void clearAllSteerings() {
217         steeringManager.clearSteerings();
218     }
219 
220     public Steering(UT2004Bot agent, Logger log) {
221         super(agent, log);
222         steeringManager = new SteeringManager(agent, new Raycasting(agent),new AdvancedLocomotion(agent, log));
223     }
224 
225     public Steering(UT2004Bot agent) {
226         super(agent);
227         steeringManager = new SteeringManager(agent,new Raycasting(agent), new AdvancedLocomotion(agent, log));
228     }
229 
230 }