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.
Dependents: rosserial_mbed_hello_world_publisher rtos_base_control rosserial_mbed_F64MA ROS-RTOS ... more
Mesh.h
00001 #ifndef _ROS_shape_msgs_Mesh_h 00002 #define _ROS_shape_msgs_Mesh_h 00003 00004 #include <stdint.h> 00005 #include <string.h> 00006 #include <stdlib.h> 00007 #include "ros/msg.h" 00008 #include "shape_msgs/MeshTriangle.h" 00009 #include "geometry_msgs/Point.h" 00010 00011 namespace shape_msgs 00012 { 00013 00014 class Mesh : public ros::Msg 00015 { 00016 public: 00017 uint8_t triangles_length; 00018 shape_msgs::MeshTriangle st_triangles; 00019 shape_msgs::MeshTriangle * triangles; 00020 uint8_t vertices_length; 00021 geometry_msgs::Point st_vertices; 00022 geometry_msgs::Point * vertices; 00023 00024 Mesh(): 00025 triangles_length(0), triangles(NULL), 00026 vertices_length(0), vertices(NULL) 00027 { 00028 } 00029 00030 virtual int serialize(unsigned char *outbuffer) const 00031 { 00032 int offset = 0; 00033 *(outbuffer + offset++) = triangles_length; 00034 *(outbuffer + offset++) = 0; 00035 *(outbuffer + offset++) = 0; 00036 *(outbuffer + offset++) = 0; 00037 for( uint8_t i = 0; i < triangles_length; i++){ 00038 offset += this->triangles[i].serialize(outbuffer + offset); 00039 } 00040 *(outbuffer + offset++) = vertices_length; 00041 *(outbuffer + offset++) = 0; 00042 *(outbuffer + offset++) = 0; 00043 *(outbuffer + offset++) = 0; 00044 for( uint8_t i = 0; i < vertices_length; i++){ 00045 offset += this->vertices[i].serialize(outbuffer + offset); 00046 } 00047 return offset; 00048 } 00049 00050 virtual int deserialize(unsigned char *inbuffer) 00051 { 00052 int offset = 0; 00053 uint8_t triangles_lengthT = *(inbuffer + offset++); 00054 if(triangles_lengthT > triangles_length) 00055 this->triangles = (shape_msgs::MeshTriangle*)realloc(this->triangles, triangles_lengthT * sizeof(shape_msgs::MeshTriangle)); 00056 offset += 3; 00057 triangles_length = triangles_lengthT; 00058 for( uint8_t i = 0; i < triangles_length; i++){ 00059 offset += this->st_triangles.deserialize(inbuffer + offset); 00060 memcpy( &(this->triangles[i]), &(this->st_triangles), sizeof(shape_msgs::MeshTriangle)); 00061 } 00062 uint8_t vertices_lengthT = *(inbuffer + offset++); 00063 if(vertices_lengthT > vertices_length) 00064 this->vertices = (geometry_msgs::Point*)realloc(this->vertices, vertices_lengthT * sizeof(geometry_msgs::Point)); 00065 offset += 3; 00066 vertices_length = vertices_lengthT; 00067 for( uint8_t i = 0; i < vertices_length; i++){ 00068 offset += this->st_vertices.deserialize(inbuffer + offset); 00069 memcpy( &(this->vertices[i]), &(this->st_vertices), sizeof(geometry_msgs::Point)); 00070 } 00071 return offset; 00072 } 00073 00074 const char * getType(){ return "shape_msgs/Mesh"; }; 00075 const char * getMD5(){ return "1ffdae9486cd3316a121c578b47a85cc"; }; 00076 00077 }; 00078 00079 } 00080 #endif
Generated on Tue Jul 12 2022 18:39:40 by
1.7.2