/* 
   Project: coevolutionary GP moto driving
   Dana Vrajitoru
   agent_update.h
   
   An agent class determining when an update event should occur and
   sending a message to all the others.
  
**/

#ifndef AGENT_UPDATE_H
#define AGENT_UPDATE_H

#include "agent.h"

class Agent_update : public Agent {
 protected:
  // Constants used to update the speed.
  float thr_lateral, thr_front, 
    thr_speed_high, thr_speed_low, thr_safe_speed;
  
  // Set the number of configuration values. To be defined by the
  // derivate classes.
  virtual void set_nr_config();

 public:
  // constructor
  Agent_update();
  // output the values
  virtual void output_data();
  // Agent-specific set data to be defined in the derivate class.
  virtual void set_data(float values[]);
  // This will be specific to each agent.
  virtual void update_action();
};

#endif
