00001 00002 00003 #pragma once 00004 00005 #include <vrep_ros_plugin/GenericObjectHandler.h> 00006 #include <shape_msgs/Mesh.h> 00007 00008 00009 class DrawMeshHandler : public GenericObjectHandler 00010 { 00011 public: 00012 DrawMeshHandler(); 00013 ~DrawMeshHandler(); 00014 00018 void synchronize(); 00019 00023 bool endOfSimulation(); 00024 00028 void handleSimulation(); 00029 00033 unsigned int getObjectType() const; 00034 00035 static const unsigned int DATA_MAIN; 00036 static const unsigned int DATA_WIDTH; 00037 static const unsigned int DATA_DIFFUSE; 00038 static const unsigned int DATA_SPECULAR; 00039 static const unsigned int DATA_EMISSION; 00040 static const unsigned int DATA_TRANSPARENCY; 00041 00042 protected: 00043 00047 void registerCustomVariables() const; 00048 00052 void _initialize(); 00053 00057 ros::Subscriber _sub; 00058 00062 shape_msgs::MeshConstPtr _lastMsg; 00063 00067 void msgCallback(shape_msgs::MeshConstPtr msg); 00068 00072 simFloat _lastTime; 00073 00077 simFloat _frequency; 00078 00082 simInt _drawingObject; 00083 00084 00085 simInt _width; 00086 simFloat _diffuse[3]; 00087 simFloat _specular[3]; 00088 simFloat _emission[3]; 00089 simInt _transparency; 00090 };