View Javadoc

1   package SteeringStuff;
2   
3   import SocialSteeringsBeta.RefLocation;
4   import SteeringProperties.SteeringProperties;
5   import cz.cuni.amis.pogamut.base3d.worldview.object.Location;
6   import javax.vecmath.Vector3d;
7   
8   
9   /**
10   * An interface for all steerings.
11   * @author Marki
12   */
13  public interface ISteering {
14  
15      /**
16       * The steering manager calls steering to compute the force of the steering in that tick (logic).
17       * @param scaledActualVelocity This is the force of the last velocity, scaled by its weight. The steering can use this vector to create the decelerating force.
18       * @param wantsToGoFaster The steering should set this ref parameter, whether is possible to enlarge the velocity (wantsToGoFaster=true), or not.
19       * @param wantsToStop If steering want's to stop the agent, he can set this ref parameter to true.
20       * @param focus If the wantsToStop is true, steering can set the focus Location, which means the orientation of the stopped agent. (Agent will rotate to this location.)
21       * @return The computed steering force.
22       */
23      public Vector3d run(Vector3d scaledActualVelocity, RefBoolean wantsToGoFaster, RefBoolean wantsToStop, RefLocation focus);
24  
25      /**
26       * The steering manager will set to the steering his steering properties. That could be set also many times.
27       * @param newProperties the new steering properties
28       */
29      public void setProperties(SteeringProperties newProperties);
30  }