// Generated by gencpp from file geometry_msgs/Pose2D.msg // DO NOT EDIT! #ifndef GEOMETRY_MSGS_MESSAGE_POSE2D_H #define GEOMETRY_MSGS_MESSAGE_POSE2D_H #include #include #include #include #include #include #include namespace geometry_msgs { template struct Pose2D_ { typedef Pose2D_ Type; Pose2D_() : x(0.0) , y(0.0) , theta(0.0) { } Pose2D_(const ContainerAllocator& _alloc) : x(0.0) , y(0.0) , theta(0.0) { (void)_alloc; } typedef double _x_type; _x_type x; typedef double _y_type; _y_type y; typedef double _theta_type; _theta_type theta; typedef boost::shared_ptr< ::geometry_msgs::Pose2D_ > Ptr; typedef boost::shared_ptr< ::geometry_msgs::Pose2D_ const> ConstPtr; }; // struct Pose2D_ typedef ::geometry_msgs::Pose2D_ > Pose2D; typedef boost::shared_ptr< ::geometry_msgs::Pose2D > Pose2DPtr; typedef boost::shared_ptr< ::geometry_msgs::Pose2D const> Pose2DConstPtr; // constants requiring out of line definition template std::ostream& operator<<(std::ostream& s, const ::geometry_msgs::Pose2D_ & v) { ros::message_operations::Printer< ::geometry_msgs::Pose2D_ >::stream(s, "", v); return s; } template bool operator==(const ::geometry_msgs::Pose2D_ & lhs, const ::geometry_msgs::Pose2D_ & rhs) { return lhs.x == rhs.x && lhs.y == rhs.y && lhs.theta == rhs.theta; } template bool operator!=(const ::geometry_msgs::Pose2D_ & lhs, const ::geometry_msgs::Pose2D_ & rhs) { return !(lhs == rhs); } } // namespace geometry_msgs namespace ros { namespace message_traits { template struct IsMessage< ::geometry_msgs::Pose2D_ > : TrueType { }; template struct IsMessage< ::geometry_msgs::Pose2D_ const> : TrueType { }; template struct IsFixedSize< ::geometry_msgs::Pose2D_ > : TrueType { }; template struct IsFixedSize< ::geometry_msgs::Pose2D_ const> : TrueType { }; template struct HasHeader< ::geometry_msgs::Pose2D_ > : FalseType { }; template struct HasHeader< ::geometry_msgs::Pose2D_ const> : FalseType { }; template struct MD5Sum< ::geometry_msgs::Pose2D_ > { static const char* value() { return "938fa65709584ad8e77d238529be13b8"; } static const char* value(const ::geometry_msgs::Pose2D_&) { return value(); } static const uint64_t static_value1 = 0x938fa65709584ad8ULL; static const uint64_t static_value2 = 0xe77d238529be13b8ULL; }; template struct DataType< ::geometry_msgs::Pose2D_ > { static const char* value() { return "geometry_msgs/Pose2D"; } static const char* value(const ::geometry_msgs::Pose2D_&) { return value(); } }; template struct Definition< ::geometry_msgs::Pose2D_ > { static const char* value() { return "# Deprecated\n" "# Please use the full 3D pose.\n" "\n" "# In general our recommendation is to use a full 3D representation of everything and for 2D specific applications make the appropriate projections into the plane for their calculations but optimally will preserve the 3D information during processing.\n" "\n" "# If we have parallel copies of 2D datatypes every UI and other pipeline will end up needing to have dual interfaces to plot everything. And you will end up with not being able to use 3D tools for 2D use cases even if they're completely valid, as you'd have to reimplement it with different inputs and outputs. It's not particularly hard to plot the 2D pose or compute the yaw error for the Pose message and there are already tools and libraries that can do this for you.\n" "\n" "\n" "# This expresses a position and orientation on a 2D manifold.\n" "\n" "float64 x\n" "float64 y\n" "float64 theta\n" ; } static const char* value(const ::geometry_msgs::Pose2D_&) { return value(); } }; } // namespace message_traits } // namespace ros namespace ros { namespace serialization { template struct Serializer< ::geometry_msgs::Pose2D_ > { template inline static void allInOne(Stream& stream, T m) { stream.next(m.x); stream.next(m.y); stream.next(m.theta); } ROS_DECLARE_ALLINONE_SERIALIZER }; // struct Pose2D_ } // namespace serialization } // namespace ros namespace ros { namespace message_operations { template struct Printer< ::geometry_msgs::Pose2D_ > { template static void stream(Stream& s, const std::string& indent, const ::geometry_msgs::Pose2D_& v) { s << indent << "x: "; Printer::stream(s, indent + " ", v.x); s << indent << "y: "; Printer::stream(s, indent + " ", v.y); s << indent << "theta: "; Printer::stream(s, indent + " ", v.theta); } }; } // namespace message_operations } // namespace ros #endif // GEOMETRY_MSGS_MESSAGE_POSE2D_H