// Generated by gencpp from file mkt_msgs/Trajectory2D.msg
// DO NOT EDIT!

#ifndef MKT_MSGS_MESSAGE_TRAJECTORY2D_H
#define MKT_MSGS_MESSAGE_TRAJECTORY2D_H

#include <robot/robot.h>
#include <string>
#include <vector>
#include <memory>
#include <robot_nav_2d_msgs/Twist2D.h>
#include <robot_geometry_msgs/Pose2D.h>

namespace mkt_msgs
{
  template <class ContainerAllocator>
  struct Trajectory2D_
  {
    typedef Trajectory2D_<ContainerAllocator> Type;

    Trajectory2D_()
        : velocity(), poses(), time_offsets()
    {
    }
    Trajectory2D_(const ContainerAllocator &_alloc)
        : velocity(_alloc), poses(_alloc), time_offsets(_alloc)
    {
      (void)_alloc;
    }

    typedef ::robot_nav_2d_msgs::Twist2D_<ContainerAllocator> _velocity_type;
    _velocity_type velocity;

    typedef std::vector<robot_geometry_msgs::Pose2D, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<robot_geometry_msgs::Pose2D>> _poses_type;
    _poses_type poses;

    typedef std::vector<robot::Duration, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<robot::Duration>> _time_offsets_type;
    _time_offsets_type time_offsets;

    typedef boost::shared_ptr<::mkt_msgs::Trajectory2D_<ContainerAllocator>> Ptr;
    typedef boost::shared_ptr<::mkt_msgs::Trajectory2D_<ContainerAllocator> const> ConstPtr;

  }; // struct Trajectory2D_

  typedef ::mkt_msgs::Trajectory2D_<std::allocator<void>> Trajectory2D;

  typedef boost::shared_ptr<::mkt_msgs::Trajectory2D> Trajectory2DPtr;
  typedef boost::shared_ptr<::mkt_msgs::Trajectory2D const> Trajectory2DConstPtr;

  template <typename ContainerAllocator1, typename ContainerAllocator2>
  bool operator==(const ::mkt_msgs::Trajectory2D_<ContainerAllocator1> &lhs, const ::mkt_msgs::Trajectory2D_<ContainerAllocator2> &rhs)
  {
    return lhs.velocity == rhs.velocity &&
           lhs.poses == rhs.poses &&
           lhs.time_offsets == rhs.time_offsets;
  }

  template <typename ContainerAllocator1, typename ContainerAllocator2>
  bool operator!=(const ::mkt_msgs::Trajectory2D_<ContainerAllocator1> &lhs, const ::mkt_msgs::Trajectory2D_<ContainerAllocator2> &rhs)
  {
    return !(lhs == rhs);
  }

} // namespace mkt_msgs

#endif // MKT_MSGS_MESSAGE_TRAJECTORY2D_H
