Working towards recieving twists
Fork of ros_lib_kinetic by
Embed:
(wiki syntax)
Show/hide line numbers
Quaternion.h
00001 #ifndef _ROS_geometry_msgs_Quaternion_h 00002 #define _ROS_geometry_msgs_Quaternion_h 00003 00004 #include <stdint.h> 00005 #include <string.h> 00006 #include <stdlib.h> 00007 #include "ros/msg.h" 00008 00009 namespace geometry_msgs 00010 { 00011 00012 class Quaternion : public ros::Msg 00013 { 00014 public: 00015 typedef double _x_type; 00016 _x_type x; 00017 typedef double _y_type; 00018 _y_type y; 00019 typedef double _z_type; 00020 _z_type z; 00021 typedef double _w_type; 00022 _w_type w; 00023 00024 Quaternion(): 00025 x(0), 00026 y(0), 00027 z(0), 00028 w(0) 00029 { 00030 } 00031 00032 virtual int serialize(unsigned char *outbuffer) const 00033 { 00034 int offset = 0; 00035 union { 00036 double real; 00037 uint64_t base; 00038 } u_x; 00039 u_x.real = this->x; 00040 *(outbuffer + offset + 0) = (u_x.base >> (8 * 0)) & 0xFF; 00041 *(outbuffer + offset + 1) = (u_x.base >> (8 * 1)) & 0xFF; 00042 *(outbuffer + offset + 2) = (u_x.base >> (8 * 2)) & 0xFF; 00043 *(outbuffer + offset + 3) = (u_x.base >> (8 * 3)) & 0xFF; 00044 *(outbuffer + offset + 4) = (u_x.base >> (8 * 4)) & 0xFF; 00045 *(outbuffer + offset + 5) = (u_x.base >> (8 * 5)) & 0xFF; 00046 *(outbuffer + offset + 6) = (u_x.base >> (8 * 6)) & 0xFF; 00047 *(outbuffer + offset + 7) = (u_x.base >> (8 * 7)) & 0xFF; 00048 offset += sizeof(this->x); 00049 union { 00050 double real; 00051 uint64_t base; 00052 } u_y; 00053 u_y.real = this->y; 00054 *(outbuffer + offset + 0) = (u_y.base >> (8 * 0)) & 0xFF; 00055 *(outbuffer + offset + 1) = (u_y.base >> (8 * 1)) & 0xFF; 00056 *(outbuffer + offset + 2) = (u_y.base >> (8 * 2)) & 0xFF; 00057 *(outbuffer + offset + 3) = (u_y.base >> (8 * 3)) & 0xFF; 00058 *(outbuffer + offset + 4) = (u_y.base >> (8 * 4)) & 0xFF; 00059 *(outbuffer + offset + 5) = (u_y.base >> (8 * 5)) & 0xFF; 00060 *(outbuffer + offset + 6) = (u_y.base >> (8 * 6)) & 0xFF; 00061 *(outbuffer + offset + 7) = (u_y.base >> (8 * 7)) & 0xFF; 00062 offset += sizeof(this->y); 00063 union { 00064 double real; 00065 uint64_t base; 00066 } u_z; 00067 u_z.real = this->z; 00068 *(outbuffer + offset + 0) = (u_z.base >> (8 * 0)) & 0xFF; 00069 *(outbuffer + offset + 1) = (u_z.base >> (8 * 1)) & 0xFF; 00070 *(outbuffer + offset + 2) = (u_z.base >> (8 * 2)) & 0xFF; 00071 *(outbuffer + offset + 3) = (u_z.base >> (8 * 3)) & 0xFF; 00072 *(outbuffer + offset + 4) = (u_z.base >> (8 * 4)) & 0xFF; 00073 *(outbuffer + offset + 5) = (u_z.base >> (8 * 5)) & 0xFF; 00074 *(outbuffer + offset + 6) = (u_z.base >> (8 * 6)) & 0xFF; 00075 *(outbuffer + offset + 7) = (u_z.base >> (8 * 7)) & 0xFF; 00076 offset += sizeof(this->z); 00077 union { 00078 double real; 00079 uint64_t base; 00080 } u_w; 00081 u_w.real = this->w; 00082 *(outbuffer + offset + 0) = (u_w.base >> (8 * 0)) & 0xFF; 00083 *(outbuffer + offset + 1) = (u_w.base >> (8 * 1)) & 0xFF; 00084 *(outbuffer + offset + 2) = (u_w.base >> (8 * 2)) & 0xFF; 00085 *(outbuffer + offset + 3) = (u_w.base >> (8 * 3)) & 0xFF; 00086 *(outbuffer + offset + 4) = (u_w.base >> (8 * 4)) & 0xFF; 00087 *(outbuffer + offset + 5) = (u_w.base >> (8 * 5)) & 0xFF; 00088 *(outbuffer + offset + 6) = (u_w.base >> (8 * 6)) & 0xFF; 00089 *(outbuffer + offset + 7) = (u_w.base >> (8 * 7)) & 0xFF; 00090 offset += sizeof(this->w); 00091 return offset; 00092 } 00093 00094 virtual int deserialize(unsigned char *inbuffer) 00095 { 00096 int offset = 0; 00097 union { 00098 double real; 00099 uint64_t base; 00100 } u_x; 00101 u_x.base = 0; 00102 u_x.base |= ((uint64_t) (*(inbuffer + offset + 0))) << (8 * 0); 00103 u_x.base |= ((uint64_t) (*(inbuffer + offset + 1))) << (8 * 1); 00104 u_x.base |= ((uint64_t) (*(inbuffer + offset + 2))) << (8 * 2); 00105 u_x.base |= ((uint64_t) (*(inbuffer + offset + 3))) << (8 * 3); 00106 u_x.base |= ((uint64_t) (*(inbuffer + offset + 4))) << (8 * 4); 00107 u_x.base |= ((uint64_t) (*(inbuffer + offset + 5))) << (8 * 5); 00108 u_x.base |= ((uint64_t) (*(inbuffer + offset + 6))) << (8 * 6); 00109 u_x.base |= ((uint64_t) (*(inbuffer + offset + 7))) << (8 * 7); 00110 this->x = u_x.real; 00111 offset += sizeof(this->x); 00112 union { 00113 double real; 00114 uint64_t base; 00115 } u_y; 00116 u_y.base = 0; 00117 u_y.base |= ((uint64_t) (*(inbuffer + offset + 0))) << (8 * 0); 00118 u_y.base |= ((uint64_t) (*(inbuffer + offset + 1))) << (8 * 1); 00119 u_y.base |= ((uint64_t) (*(inbuffer + offset + 2))) << (8 * 2); 00120 u_y.base |= ((uint64_t) (*(inbuffer + offset + 3))) << (8 * 3); 00121 u_y.base |= ((uint64_t) (*(inbuffer + offset + 4))) << (8 * 4); 00122 u_y.base |= ((uint64_t) (*(inbuffer + offset + 5))) << (8 * 5); 00123 u_y.base |= ((uint64_t) (*(inbuffer + offset + 6))) << (8 * 6); 00124 u_y.base |= ((uint64_t) (*(inbuffer + offset + 7))) << (8 * 7); 00125 this->y = u_y.real; 00126 offset += sizeof(this->y); 00127 union { 00128 double real; 00129 uint64_t base; 00130 } u_z; 00131 u_z.base = 0; 00132 u_z.base |= ((uint64_t) (*(inbuffer + offset + 0))) << (8 * 0); 00133 u_z.base |= ((uint64_t) (*(inbuffer + offset + 1))) << (8 * 1); 00134 u_z.base |= ((uint64_t) (*(inbuffer + offset + 2))) << (8 * 2); 00135 u_z.base |= ((uint64_t) (*(inbuffer + offset + 3))) << (8 * 3); 00136 u_z.base |= ((uint64_t) (*(inbuffer + offset + 4))) << (8 * 4); 00137 u_z.base |= ((uint64_t) (*(inbuffer + offset + 5))) << (8 * 5); 00138 u_z.base |= ((uint64_t) (*(inbuffer + offset + 6))) << (8 * 6); 00139 u_z.base |= ((uint64_t) (*(inbuffer + offset + 7))) << (8 * 7); 00140 this->z = u_z.real; 00141 offset += sizeof(this->z); 00142 union { 00143 double real; 00144 uint64_t base; 00145 } u_w; 00146 u_w.base = 0; 00147 u_w.base |= ((uint64_t) (*(inbuffer + offset + 0))) << (8 * 0); 00148 u_w.base |= ((uint64_t) (*(inbuffer + offset + 1))) << (8 * 1); 00149 u_w.base |= ((uint64_t) (*(inbuffer + offset + 2))) << (8 * 2); 00150 u_w.base |= ((uint64_t) (*(inbuffer + offset + 3))) << (8 * 3); 00151 u_w.base |= ((uint64_t) (*(inbuffer + offset + 4))) << (8 * 4); 00152 u_w.base |= ((uint64_t) (*(inbuffer + offset + 5))) << (8 * 5); 00153 u_w.base |= ((uint64_t) (*(inbuffer + offset + 6))) << (8 * 6); 00154 u_w.base |= ((uint64_t) (*(inbuffer + offset + 7))) << (8 * 7); 00155 this->w = u_w.real; 00156 offset += sizeof(this->w); 00157 return offset; 00158 } 00159 00160 const char * getType(){ return "geometry_msgs/Quaternion"; }; 00161 const char * getMD5(){ return "a779879fadf0160734f906b8c19c7004"; }; 00162 00163 }; 00164 00165 } 00166 #endif
Generated on Tue Jul 12 2022 21:32:17 by 1.7.2