00001 00002 00003 #ifndef CAMERA_HANDLER_H 00004 #define CAMERA_HANDLER_H 00005 00006 #include "vrep_ros_plugin/GenericObjectHandler.h" 00007 #include <image_transport/image_transport.h> 00008 #include <sensor_msgs/SetCameraInfo.h> 00009 00010 00011 class CameraHandler : public GenericObjectHandler 00012 { 00013 public: 00014 CameraHandler(); 00015 ~CameraHandler(); 00016 00020 void synchronize(); 00021 00025 void handleSimulation(); 00026 00030 unsigned int getObjectType() const; 00031 00032 00033 bool endOfSimulation(); 00034 00035 00036 protected: 00037 00041 void _initialize(); 00042 00046 image_transport::ImageTransport _it; 00047 00051 image_transport::CameraPublisher _pubIT; 00052 00056 image_transport::Publisher _pubDepth; 00057 00061 sensor_msgs::CameraInfo _camera_info; 00062 00066 void computeCameraInfo(); 00067 00071 simFloat _lastPublishedImageTime; 00072 00076 double _acquisitionFrequency; 00080 bool _cameraIsRGB; 00081 00085 bool _cameraHasDepth; 00086 00090 bool _cameraIsFloat; 00091 00095 ros::ServiceServer _service; 00096 00103 bool setCameraInfo(sensor_msgs::SetCameraInfo::Request &req, sensor_msgs::SetCameraInfo::Response &res); 00104 }; 00105 00106 00107 #endif // ndef CAMERA_HANDLER_H