MonoCameraSensor.hh
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef MONOCAMERASENSOR_HH
00028 #define MONOCAMERASENSOR_HH
00029
00030 #include <OgrePrerequisites.h>
00031 #include <OgreTexture.h>
00032
00033 #include "CameraSensor.hh"
00034
00035
00036 namespace Ogre
00037 {
00038 class TexturePtr;
00039 class RenderTarget;
00040 class Camera;
00041 class Viewport;
00042 class SceneNode;
00043 }
00044
00045 namespace gazebo
00046 {
00052
00053
00054
00060 class MonoCameraSensor : public CameraSensor
00061 {
00063 public: MonoCameraSensor(Body *body);
00064
00066 public: virtual ~MonoCameraSensor();
00067
00070 protected: virtual void LoadChild( XMLConfigNode *node );
00071
00073 protected: virtual void InitChild();
00074
00076 protected: virtual void UpdateChild(UpdateParams ¶ms);
00077
00079 protected: virtual void FiniChild();
00080
00082 public: virtual std::string GetMaterialName() const;
00083
00085 public: virtual const unsigned char *GetImageData(unsigned int i=0);
00086
00087
00088 private: void SaveFrame();
00089
00090 private: Ogre::TexturePtr renderTexture;
00091 private: Ogre::RenderTarget *renderTarget;
00092
00093 private: std::string ogreTextureName;
00094 private: std::string ogreMaterialName;
00095 };
00096
00099 }
00100 #endif
00101