Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
SolidPrimitive.h
00001 #ifndef _ROS_shape_msgs_SolidPrimitive_h 00002 #define _ROS_shape_msgs_SolidPrimitive_h 00003 00004 #include <stdint.h> 00005 #include <string.h> 00006 #include <stdlib.h> 00007 #include "ros/msg.h" 00008 00009 namespace shape_msgs 00010 { 00011 00012 class SolidPrimitive : public ros::Msg 00013 { 00014 public: 00015 typedef uint8_t _type_type; 00016 _type_type type; 00017 uint32_t dimensions_length; 00018 typedef double _dimensions_type; 00019 _dimensions_type st_dimensions; 00020 _dimensions_type * dimensions; 00021 enum { BOX = 1 }; 00022 enum { SPHERE = 2 }; 00023 enum { CYLINDER = 3 }; 00024 enum { CONE = 4 }; 00025 enum { BOX_X = 0 }; 00026 enum { BOX_Y = 1 }; 00027 enum { BOX_Z = 2 }; 00028 enum { SPHERE_RADIUS = 0 }; 00029 enum { CYLINDER_HEIGHT = 0 }; 00030 enum { CYLINDER_RADIUS = 1 }; 00031 enum { CONE_HEIGHT = 0 }; 00032 enum { CONE_RADIUS = 1 }; 00033 00034 SolidPrimitive(): 00035 type(0), 00036 dimensions_length(0), dimensions(NULL) 00037 { 00038 } 00039 00040 virtual int serialize(unsigned char *outbuffer) const 00041 { 00042 int offset = 0; 00043 *(outbuffer + offset + 0) = (this->type >> (8 * 0)) & 0xFF; 00044 offset += sizeof(this->type); 00045 *(outbuffer + offset + 0) = (this->dimensions_length >> (8 * 0)) & 0xFF; 00046 *(outbuffer + offset + 1) = (this->dimensions_length >> (8 * 1)) & 0xFF; 00047 *(outbuffer + offset + 2) = (this->dimensions_length >> (8 * 2)) & 0xFF; 00048 *(outbuffer + offset + 3) = (this->dimensions_length >> (8 * 3)) & 0xFF; 00049 offset += sizeof(this->dimensions_length); 00050 for( uint32_t i = 0; i < dimensions_length; i++){ 00051 union { 00052 double real; 00053 uint64_t base; 00054 } u_dimensionsi; 00055 u_dimensionsi.real = this->dimensions[i]; 00056 *(outbuffer + offset + 0) = (u_dimensionsi.base >> (8 * 0)) & 0xFF; 00057 *(outbuffer + offset + 1) = (u_dimensionsi.base >> (8 * 1)) & 0xFF; 00058 *(outbuffer + offset + 2) = (u_dimensionsi.base >> (8 * 2)) & 0xFF; 00059 *(outbuffer + offset + 3) = (u_dimensionsi.base >> (8 * 3)) & 0xFF; 00060 *(outbuffer + offset + 4) = (u_dimensionsi.base >> (8 * 4)) & 0xFF; 00061 *(outbuffer + offset + 5) = (u_dimensionsi.base >> (8 * 5)) & 0xFF; 00062 *(outbuffer + offset + 6) = (u_dimensionsi.base >> (8 * 6)) & 0xFF; 00063 *(outbuffer + offset + 7) = (u_dimensionsi.base >> (8 * 7)) & 0xFF; 00064 offset += sizeof(this->dimensions[i]); 00065 } 00066 return offset; 00067 } 00068 00069 virtual int deserialize(unsigned char *inbuffer) 00070 { 00071 int offset = 0; 00072 this->type = ((uint8_t) (*(inbuffer + offset))); 00073 offset += sizeof(this->type); 00074 uint32_t dimensions_lengthT = ((uint32_t) (*(inbuffer + offset))); 00075 dimensions_lengthT |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); 00076 dimensions_lengthT |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); 00077 dimensions_lengthT |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); 00078 offset += sizeof(this->dimensions_length); 00079 if(dimensions_lengthT > dimensions_length) 00080 this->dimensions = (double*)realloc(this->dimensions, dimensions_lengthT * sizeof(double)); 00081 dimensions_length = dimensions_lengthT; 00082 for( uint32_t i = 0; i < dimensions_length; i++){ 00083 union { 00084 double real; 00085 uint64_t base; 00086 } u_st_dimensions; 00087 u_st_dimensions.base = 0; 00088 u_st_dimensions.base |= ((uint64_t) (*(inbuffer + offset + 0))) << (8 * 0); 00089 u_st_dimensions.base |= ((uint64_t) (*(inbuffer + offset + 1))) << (8 * 1); 00090 u_st_dimensions.base |= ((uint64_t) (*(inbuffer + offset + 2))) << (8 * 2); 00091 u_st_dimensions.base |= ((uint64_t) (*(inbuffer + offset + 3))) << (8 * 3); 00092 u_st_dimensions.base |= ((uint64_t) (*(inbuffer + offset + 4))) << (8 * 4); 00093 u_st_dimensions.base |= ((uint64_t) (*(inbuffer + offset + 5))) << (8 * 5); 00094 u_st_dimensions.base |= ((uint64_t) (*(inbuffer + offset + 6))) << (8 * 6); 00095 u_st_dimensions.base |= ((uint64_t) (*(inbuffer + offset + 7))) << (8 * 7); 00096 this->st_dimensions = u_st_dimensions.real; 00097 offset += sizeof(this->st_dimensions); 00098 memcpy( &(this->dimensions[i]), &(this->st_dimensions), sizeof(double)); 00099 } 00100 return offset; 00101 } 00102 00103 const char * getType(){ return "shape_msgs/SolidPrimitive"; }; 00104 const char * getMD5(){ return "d8f8cbc74c5ff283fca29569ccefb45d"; }; 00105 00106 }; 00107 00108 } 00109 #endif
Generated on Wed Jul 13 2022 23:30:18 by
