com.azalient.api.sim.agents
Interface IDeltaMotion


public interface IDeltaMotion

This objects contains the change in motion (acceleration, change in angle, and sideways "jink") applied by an agent in the next simulation time interval. The same object is used to "absorb" motion from a number of separate decision processes, in such a way that the largest deceleration or avoidance angle is the one that is used.


Method Summary
 boolean absorb(Double acceleration)
          Absorb the suggested change in acceleration, substituting the given acceleration if it is more negative
 boolean absorb(IAngle deltaHeading)
          Absorb the suggested change in angle, substituting the given angle if it is is the same direction, but greater.
 boolean absorb(IDeltaMotion followingMotion)
          Absorb the suggested change in motion, substituting the given acceleration if it is more negative, or the angle if it is greater
 boolean absorb(IXyz jink)
          Absorb the suggested small movement vector, adding the vector to any existing jink vector
 Double acceleration()
          Returns the acceleration value, with units
 double accelerationV()
          Returns the acceleration value, as m/s/s
 IAngle deltaHeading()
          Returns the change in heading angle, as an angle object
 double deltaHeadingAbs()
          Returns the change in heading angle, in absolute degrees.
 IXyz jink()
          Returns a vector, indicating that the agent will be shunted a small direction, normally to avoid overlap with another agent.
 void jink(IXyz vector)
          Set the jink vector for this agent.
 void reset(Double acceleration)
          Set the stored acceleration to the given value, ignoring any current value
 void reset(IAngle deltaHeading)
          Set the stored change of angle to the given value, ignoring any current value
 

Method Detail

acceleration

Double acceleration()
Returns the acceleration value, with units


accelerationV

double accelerationV()
Returns the acceleration value, as m/s/s


deltaHeading

IAngle deltaHeading()
Returns the change in heading angle, as an angle object


deltaHeadingAbs

double deltaHeadingAbs()
Returns the change in heading angle, in absolute degrees. Returning a value of 45 could mean 45 degrees to the left or to the right.


jink

IXyz jink()
Returns a vector, indicating that the agent will be shunted a small direction, normally to avoid overlap with another agent. In most cases, z==0


jink

void jink(IXyz vector)
Set the jink vector for this agent.

See Also:
jink()

absorb

boolean absorb(IDeltaMotion followingMotion)
Absorb the suggested change in motion, substituting the given acceleration if it is more negative, or the angle if it is greater


absorb

boolean absorb(Double acceleration)
Absorb the suggested change in acceleration, substituting the given acceleration if it is more negative


absorb

boolean absorb(IAngle deltaHeading)
Absorb the suggested change in angle, substituting the given angle if it is is the same direction, but greater. If the angle is in the opposite direction, then change the accepted angle to the sum of the the existing and the suggested.


absorb

boolean absorb(IXyz jink)
Absorb the suggested small movement vector, adding the vector to any existing jink vector


reset

void reset(Double acceleration)
Set the stored acceleration to the given value, ignoring any current value


reset

void reset(IAngle deltaHeading)
Set the stored change of angle to the given value, ignoring any current value