Class ControlFuncMoveDir

java.lang.Object
  extended by ControlFuncMoveDir
All Implemented Interfaces:
IControlFunc

public class ControlFuncMoveDir
extends java.lang.Object
implements IControlFunc

Control function implementing "move in a direction"

Since:
1.0

Constructor Summary
ControlFuncMoveDir()
           
ControlFuncMoveDir(ControlFuncMoveDir src)
           
ControlFuncMoveDir(double[] arrPtTowards)
           
ControlFuncMoveDir(double lfX, double lfY)
           
 
Method Summary
 boolean directionConstantQ(double lfCurrTime, double[] arrLfStateSrc, ISensor sensors, IEnvironment env, ILogicVarBundle logicVars, int nIdxOffsetState)
           
 void getDerivs(double lfCurrTime, double[] arrLfStateSrc, ISensor sensors, IEnvironment env, ILogicVarBundle logicVars, double[] arrLfDerivDst, int nIdxOff)
           Updates arrLfDerivDst with the instantaneous derivatives of the continuous-time component of the agent's state given its current state and sensor readings
 int getNumStateVars()
          returns dimensionality of the state vector corresponding to one agent
 double[] getVel()
           
 double[] getVelCopy()
           
 IControlFunc makeCopy()
          clones this object (similar to "clone" supported by IClonable interface).
 void setVel(double[] arrVel)
          sets a new point to move towards, possibly re-assigning control function dimension (some care must be taken by programmer here)
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ControlFuncMoveDir

public ControlFuncMoveDir()

ControlFuncMoveDir

public ControlFuncMoveDir(ControlFuncMoveDir src)

ControlFuncMoveDir

public ControlFuncMoveDir(double lfX,
                          double lfY)

ControlFuncMoveDir

public ControlFuncMoveDir(double[] arrPtTowards)
Method Detail

directionConstantQ

public boolean directionConstantQ(double lfCurrTime,
                                  double[] arrLfStateSrc,
                                  ISensor sensors,
                                  IEnvironment env,
                                  ILogicVarBundle logicVars,
                                  int nIdxOffsetState)
Specified by:
directionConstantQ in interface IControlFunc

setVel

public void setVel(double[] arrVel)
sets a new point to move towards, possibly re-assigning control function dimension (some care must be taken by programmer here)


getVel

public double[] getVel()

getVelCopy

public double[] getVelCopy()

makeCopy

public IControlFunc makeCopy()
clones this object (similar to "clone" supported by IClonable interface).

Specified by:
makeCopy in interface IControlFunc

getDerivs

public void getDerivs(double lfCurrTime,
                      double[] arrLfStateSrc,
                      ISensor sensors,
                      IEnvironment env,
                      ILogicVarBundle logicVars,
                      double[] arrLfDerivDst,
                      int nIdxOff)

Updates arrLfDerivDst with the instantaneous derivatives of the continuous-time component of the agent's state given its current state and sensor readings

Specified by:
getDerivs in interface IControlFunc
Parameters:
lfCurrTime - current time (for time-varying systems)
arrLfStateSrc - vector of global state of the system
sensors - sensors
env - environment
logicVars - discrete components of agent internal state
arrLfDerivDst - Destination for storing derivative values.
nIdxOff - Offset index into the global state vector corresponding to the beginning of the parameters for this agent.
Since:
1.0

getNumStateVars

public int getNumStateVars()
returns dimensionality of the state vector corresponding to one agent

Specified by:
getNumStateVars in interface IControlFunc
Returns:
dimensionality of the state vector corresponding to one agent