#ifndef __ABSOLUTE_ENCODER_H_INCLUDED
#define __ABSOLUTE_ENCODER_H_INCLUDED

#include <ros/ros.h>

namespace models
{ 
class BaseAbsoluteEncoder
{
public:

  /**
   * @brief  Constructs 
   * @param name The name to give this instance of the model base
  */
  virtual void initialize(ros::NodeHandle & nh, const std::string &name) = 0;

  /**
   * @brief Get the angle of rotation of an axis() rad
  */
  virtual double Position() = 0;

  /**
   * @brief Get the velocity rotation of an axis() rad
   */
  virtual double Velocity() = 0;

  /**
   * @brief Decontructor
  */
  virtual ~BaseAbsoluteEncoder() {}
  
protected:
  /**
   * @brief Contructor
  */
  BaseAbsoluteEncoder() {}

}; // BaseAbsoluteEncoder

} // namespace models

#endif //__ABSOLUTE_ENCODER_H_INCLUDED