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 }