public interface ITreeAlgAgent extends IAgent { /** * gets the message to annotate the TreeConstraintState * recieved by neighbors in TreeConstraintAgent algorithm * @param vars logic state of this agent. * @param arrLfState position of whole swarm * (requires programmer discipline to only access current robot's * position) * @param nIdx index of current robot. * @return something deriving form IMsg must be what this agent's * getPrefComp is expecting. */ public IMsg getMsgAnnotation(ILogicVarBundle vars, double [] arrLfState, int nIdx); /** * gets a comparator for sorting ITreeAlgAgent nodes by preference * @return */ public java.util.Comparator getPrefComp(TreeConstraintState agentSorting); /** * Mike, add some comments here * @return */ public java.lang.reflect.Type getAnnoteType(); /** * 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". */ public ITreeAlgAgent makeCopy(); }