// Generated by gencpp from file robot_nav_2d_msgs/Twist2DStamped.msg
// DO NOT EDIT!


#ifndef ROBOT_NAV_2D_MSGS_MESSAGE_TWIST2DSTAMPED_H
#define ROBOT_NAV_2D_MSGS_MESSAGE_TWIST2DSTAMPED_H


#include <string>
#include <vector>
#include <memory>

#include <robot_std_msgs/Header.h>
#include <robot_nav_2d_msgs/Twist2D.h>

namespace robot_nav_2d_msgs
{
template <class ContainerAllocator>
struct Twist2DStamped_
{
  typedef Twist2DStamped_<ContainerAllocator> Type;

  Twist2DStamped_()
    : header()
    , velocity()  {
    }
  Twist2DStamped_(const ContainerAllocator& _alloc)
    : header()
    , velocity(_alloc)  {
  (void)_alloc;
    }



   typedef  ::robot_std_msgs::Header  _header_type;
  _header_type header;

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




  typedef std::shared_ptr< ::robot_nav_2d_msgs::Twist2DStamped_<ContainerAllocator> > Ptr;
  typedef std::shared_ptr< ::robot_nav_2d_msgs::Twist2DStamped_<ContainerAllocator> const> ConstPtr;

}; // struct Twist2DStamped_

typedef ::robot_nav_2d_msgs::Twist2DStamped_<std::allocator<void> > Twist2DStamped;

typedef std::shared_ptr< ::robot_nav_2d_msgs::Twist2DStamped > Twist2DStampedPtr;
typedef std::shared_ptr< ::robot_nav_2d_msgs::Twist2DStamped const> Twist2DStampedConstPtr;

// constants requiring out of line definition



template<typename ContainerAllocator1, typename ContainerAllocator2>
bool operator==(const ::robot_nav_2d_msgs::Twist2DStamped_<ContainerAllocator1> & lhs, const ::robot_nav_2d_msgs::Twist2DStamped_<ContainerAllocator2> & rhs)
{
  return lhs.header == rhs.header &&
    lhs.velocity == rhs.velocity;
}

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


} // namespace robot_nav_2d_msgs

#endif // ROBOT_NAV_2D_MSGS_MESSAGE_TWIST2DSTAMPED_H
