// Generated by gencpp from file robot_geometry_msgs/TransformStamped.msg
// DO NOT EDIT!

#ifndef ROBOT_GEOMETRY_MSGS_MESSAGE_TRANSFORMSTAMPED_H
#define ROBOT_GEOMETRY_MSGS_MESSAGE_TRANSFORMSTAMPED_H

#include <string>
#include <vector>
#include <memory>
#include <boost/shared_ptr.hpp>

#include <robot_std_msgs/Header.h>
#include <robot_geometry_msgs/Transform.h>

namespace robot_geometry_msgs
{
  template <class ContainerAllocator>
  struct TransformStamped_
  {
    typedef TransformStamped_<ContainerAllocator> Type;

    TransformStamped_()
        : header(), child_frame_id(), transform()
    {
    }
    TransformStamped_(const ContainerAllocator &_alloc)
        : header(_alloc), child_frame_id(_alloc), transform(_alloc)
    {
      (void)_alloc;
    }

    typedef ::robot_std_msgs::Header_<ContainerAllocator> _header_type;
    _header_type header;

    typedef std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>> _child_frame_id_type;
    _child_frame_id_type child_frame_id;

    typedef ::robot_geometry_msgs::Transform_<ContainerAllocator> _transform_type;
    _transform_type transform;

    typedef boost::shared_ptr<::robot_geometry_msgs::TransformStamped_<ContainerAllocator>> Ptr;
    typedef boost::shared_ptr<::robot_geometry_msgs::TransformStamped_<ContainerAllocator> const> ConstPtr;

  }; // struct TransformStamped_

  typedef ::robot_geometry_msgs::TransformStamped_<std::allocator<void>> TransformStamped;

  typedef boost::shared_ptr<::robot_geometry_msgs::TransformStamped> TransformStampedPtr;
  typedef boost::shared_ptr<::robot_geometry_msgs::TransformStamped const> TransformStampedConstPtr;

  // constants requiring out of line definition

  template <typename ContainerAllocator1, typename ContainerAllocator2>
  bool operator==(const ::robot_geometry_msgs::TransformStamped_<ContainerAllocator1> &lhs, const ::robot_geometry_msgs::TransformStamped_<ContainerAllocator2> &rhs)
  {
    return lhs.header == rhs.header &&
           lhs.child_frame_id == rhs.child_frame_id &&
           lhs.transform == rhs.transform;
  }

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

} // namespace robot_geometry_msgs

#endif // ROBOT_GEOMETRY_MSGS_MESSAGE_TRANSFORMSTAMPED_H
