00001 /* 00002 * VirtualCamera.hpp 00003 * 00004 * Created on: Oct 16, 2012 00005 * Author: brabeja6 00006 */ 00007 00008 #ifndef VIRTUALCAMERA_HPP_ 00009 #define VIRTUALCAMERA_HPP_ 00010 00011 00012 #include <boost/shared_ptr.hpp> 00013 #include <sensor_msgs/Image.h> 00014 #include "Camera.hpp" 00015 #include "RealCamera.hpp" 00016 #include "virtual_camera/VirtualCameraParameters.h" 00017 00018 00019 namespace virtual_camera { 00020 00021 00028 class VirtualCamera: public Camera { 00029 public: 00030 00031 virtual ~VirtualCamera() {} 00032 00033 00040 virtual sensor_msgs::ImageConstPtr generateImage() = 0; 00041 00042 00048 virtual bool addRealCamera(const RealCameraPtr & realCamera) = 0; 00049 00050 00056 virtual bool removeRealCamera(const RealCameraPtr &realCamera) = 0; 00057 00058 00064 virtual void updateVirtualCameraParameters(const VirtualCameraParametersPtr & params) = 0; 00065 00066 00075 virtual double getFrameRate() = 0; 00076 }; 00077 00078 00079 typedef boost::shared_ptr<VirtualCamera> VirtualCameraPtr; 00080 00081 } 00082 00083 #endif /* VIRTUALCAMERA_HPP_ */