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
00028
00029
00030 #ifndef RVIZ_RENDER_PANEL_H
00031 #define RVIZ_RENDER_PANEL_H
00032
00033 #include "ogre_tools/wx_ogre_render_window.h"
00034
00035 #include <boost/thread/mutex.hpp>
00036 #include <boost/signals/trackable.hpp>
00037
00038 #include <vector>
00039 #include <map>
00040
00041 namespace Ogre
00042 {
00043 class Root;
00044 class SceneManager;
00045 class Camera;
00046 class RaySceneQuery;
00047 class ParticleSystem;
00048 }
00049
00050 namespace ros
00051 {
00052 class Node;
00053 }
00054
00055 class wxTimerEvent;
00056 class wxKeyEvent;
00057 class wxSizeEvent;
00058 class wxTimer;
00059 class wxPropertyGrid;
00060 class wxPropertyGridEvent;
00061 class wxConfigBase;
00062
00063 namespace rviz
00064 {
00065
00066 class Display;
00067 class VisualizationManager;
00068 class ViewController;
00069
00074 class RenderPanel : public ogre_tools::wxOgreRenderWindow, public boost::signals::trackable
00075 {
00076 public:
00083 RenderPanel( wxWindow* parent, bool create_render_window = true );
00084 virtual ~RenderPanel();
00085
00086 void initialize(Ogre::SceneManager* scene_manager, VisualizationManager* manager);
00087
00088 VisualizationManager* getManager() { return manager_; }
00089
00090 Ogre::Camera* getCamera() { return camera_; }
00091 ViewController* getViewController() { return view_controller_; }
00092 void setViewController(ViewController* controller);
00093
00094 virtual void createRenderWindow();
00095
00096 protected:
00097
00099 void onRenderWindowMouseEvents( wxMouseEvent& event );
00101 void onChar( wxKeyEvent& event );
00102
00103
00104 int mouse_x_;
00105 int mouse_y_;
00106
00107 VisualizationManager* manager_;
00108 Ogre::SceneManager* scene_manager_;
00109 Ogre::Camera* camera_;
00110
00111 ViewController* view_controller_;
00112
00113 private:
00114 void setCamera(Ogre::Camera*) {}
00115 };
00116
00117 }
00118
00119 #endif
00120