Class TreeConstraintAgent

java.lang.Object
  extended by TreeConstraintAgent
All Implemented Interfaces:
IAgent

public class TreeConstraintAgent
extends java.lang.Object
implements IAgent


Nested Class Summary
static class TreeConstraintAgent.SelectMsgMatchingDepth
           
static class TreeConstraintAgent.SelectMsgMatchingId
           
 class TreeConstraintAgent.SelectMsgMatchingRootId
           
static class TreeConstraintAgent.SelectMsgWithParent
           
static class TreeConstraintAgent.SelectMsgWithPropParent
           
static class TreeConstraintAgent.SelectMsgWithTrueVar
           
 
Constructor Summary
TreeConstraintAgent()
           
TreeConstraintAgent(ITreeAlgAgent agentWrapped, double lfRad)
           
TreeConstraintAgent(TreeConstraintAgent src)
           
 
Method Summary
 boolean checkStateValidity(StateBundle state)
          checks that a particular discrete state is valid for this agent
 void getMsgs(ILogicVarBundle discreteState, IDiscreteDynamicsCallback dynCallback, double[] arrLfStateCont, double lfCurrTime, int idxStateOffset, java.util.Iterator<CommLink> channelsToSendOn)
           Given the state of an agent, and the channels it can send messages on, push the next set of messages onto the appropriate channels.
 IAgent makeCopy()
          in case the agent has some internal state, this allows synchronized wrapper calls to cache a snapshot of the agent at some rational point in time.
 void setDepAgent(ITreeDepAlg depAgent)
           
 void setMotionConstraint(ITreeMotionConstraint constraint)
           
 void setTreeAlgAgent(ITreeAlgAgent agentWrapped)
           
 StateBundle updateState(ILogicVarBundle statePrev, double[] arrLfStateCont, double lfCurrTime, int idxStateOffset, IEnvironment env, java.util.Iterator<CommLink> channelsRecieveFrom)
           Given the previous state of an agent, and the channels to recieve messages from, recieve messages (destructively) and return new state (non-destructively).
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TreeConstraintAgent

public TreeConstraintAgent()

TreeConstraintAgent

public TreeConstraintAgent(ITreeAlgAgent agentWrapped,
                           double lfRad)

TreeConstraintAgent

public TreeConstraintAgent(TreeConstraintAgent src)
Method Detail

setDepAgent

public void setDepAgent(ITreeDepAlg depAgent)

setTreeAlgAgent

public void setTreeAlgAgent(ITreeAlgAgent agentWrapped)

setMotionConstraint

public void setMotionConstraint(ITreeMotionConstraint constraint)

checkStateValidity

public boolean checkStateValidity(StateBundle state)
Description copied from interface: IAgent
checks that a particular discrete state is valid for this agent

Specified by:
checkStateValidity in interface IAgent

getMsgs

public void getMsgs(ILogicVarBundle discreteState,
                    IDiscreteDynamicsCallback dynCallback,
                    double[] arrLfStateCont,
                    double lfCurrTime,
                    int idxStateOffset,
                    java.util.Iterator<CommLink> channelsToSendOn)
Description copied from interface: IAgent

Given the state of an agent, and the channels it can send messages on, push the next set of messages onto the appropriate channels. Channels are assumed to be modified by this operation. One weakness of this signature is that it requires programmer discipline not to look at the continuous state of agents other then your neighbors.

Specified by:
getMsgs in interface IAgent
Parameters:
discreteState - discrete component of agent state
arrLfStateCont - global vector of continuous state
idxStateOffset - offset into global state vector corresonding to this agent.
channelsToSendOn - Iterator containing objects of type CommLink corresponding to channels to send messages on (neighbor indices can be ascertained from channels).
See Also:
for type handled by iterator

makeCopy

public IAgent makeCopy()
Description copied from interface: IAgent
in case the agent has some internal state, this allows synchronized wrapper calls to cache a snapshot of the agent at some rational point in time. If the agent has no internal state, this function can just return "this".

Specified by:
makeCopy in interface IAgent

updateState

public StateBundle updateState(ILogicVarBundle statePrev,
                               double[] arrLfStateCont,
                               double lfCurrTime,
                               int idxStateOffset,
                               IEnvironment env,
                               java.util.Iterator<CommLink> channelsRecieveFrom)
Description copied from interface: IAgent

Given the previous state of an agent, and the channels to recieve messages from, recieve messages (destructively) and return new state (non-destructively).

Specified by:
updateState in interface IAgent
Parameters:
statePrev - previous state (do not modify)
arrLfStateCont - vector of all continuous states (do not modify)
idxStateOffset - offset into arrLfStateCont corresponding to start of this agents continuous variables
channelsRecieveFrom - iterator storing CommLink classes corresponding incoming channels
Returns:
new state bundle containing discrete state of agent and new control function
See Also:
for type handled by iterator