00001 00002 00003 #pragma once 00004 00005 #include <vrep_ros_plugin/GenericObjectHandler.h> 00006 #include <geometry_msgs/PolygonStamped.h> 00007 00008 class DrawLineHandler : public GenericObjectHandler 00009 { 00010 public: 00011 DrawLineHandler(); 00012 ~DrawLineHandler(); 00013 00017 void synchronize(); 00018 00022 bool endOfSimulation(); 00023 00027 void handleSimulation(); 00028 00032 unsigned int getObjectType() const; 00033 00034 static const unsigned int DRAWING_DATA_MAIN; 00035 static const unsigned int DRAWING_DATA_WIDTH; 00036 static const unsigned int DRAWING_DATA_DIFFUSE; 00037 static const unsigned int DRAWING_DATA_SPECULAR; 00038 static const unsigned int DRAWING_DATA_EMISSION; 00039 static const unsigned int DRAWING_DATA_MARKERS; 00040 static const unsigned int DRAWING_DATA_MARKERS_DIFFUSE; 00041 static const unsigned int DRAWING_DATA_MARKERS_SPECULAR; 00042 static const unsigned int DRAWING_DATA_MARKERS_EMISSION; 00043 00044 protected: 00045 00049 void registerCustomVariables() const; 00050 00054 void _initialize(); 00055 00059 ros::Subscriber _sub; 00060 00064 geometry_msgs::PolygonStampedConstPtr _line; 00065 00069 void lineCallback(geometry_msgs::PolygonStampedConstPtr msg); 00070 00074 simFloat _lastTime; 00075 00079 simFloat _frequency; 00080 00084 simInt _drawingObject; 00085 00086 00087 simInt _width; 00088 simFloat _diffuse[3]; 00089 simFloat _specular[3]; 00090 simFloat _emission[3]; 00091 };