VisualizationApp下面的VisualizationFrame类做了初始化的工作
frame_ = new VisualizationFrame();
frame_->setApp( this->app_ );
if( help_path != "" )
{
frame_->setHelpPath( QString::fromStdString( help_path ));
}
frame_->setShowChooseNewMaster( in_mc_wrapper );
if( vm.count("splash-screen") )
{
frame_->setSplashPath( QString::fromStdString( splash_path ));
}
frame_->initialize( QString::fromStdString( display_config ));
if( !fixed_frame.empty() )
{
frame_->getManager()->setFixedFrame( QString::fromStdString( fixed_frame ));
}
frame_->getManager()->getSelectionManager()->setDebugMode( verbose );
frame_->show();
VisualizationFrame的介绍
/** @brief The main rviz window.
*
* VisualizationFrame is a QMainWindow, which means it has a center
* area and a bunch of dock areas around it. The central widget here
* is a RenderPanel, and around it (by default) are a DisplaysPanel,
* ViewsPanel, TimePanel, SelectionPanel, and ToolPropertiesPanel. At
* the top is a toolbar with "Move Camera", "Select", etc. There is
* also a menu bar with file/open, etc.
*/
VisualizationFrame中的核心类VisualizationManager
/**
* \brief The VisualizationManager class is the central manager class
* of rviz, holding all the Displays, Tools, ViewControllers,
* and other managers.
*
* It keeps the current view controller for the main render window.
* It has a timer which calls update() on all the displays. It
* creates and holds pointers to the other manager objects:
* SelectionManager, FrameManager, the PropertyManager s, and
* Ogre::SceneManager.
*
* The "protected" members should probably all be "private", as
* VisualizationManager is not intended to be subclassed.
*/
VisualizationManager这个类会控制定时更新界面,其包含重要的几个类
Ogre::Root* ogre_root_; ///< Ogre Root
Ogre::SceneManager* scene_manager_; ///< Ogre scene manager associated with this panel
QTimer* update_timer_; ///< Update timer. Display::update is called on each display whenever this timer fires
ros::Time last_update_ros_time_; ///< Update stopwatch. Stores how long it's been since the last update
ros::WallTime last_update_wall_time_;
volatile bool shutting_down_;
PropertyTreeModel* display_property_tree_model_;
DisplayGroup* root_display_group_;
ToolManager* tool_manager_;
ViewManager* view_manager_;
Property* global_options_;
TfFrameProperty* fixed_frame_property_; ///< Frame to transform fixed data to
StatusList* global_status_;
IntProperty* fps_property_;
BoolProperty* default_light_enabled_property_;
RenderPanel* render_panel_;
ros::WallTime wall_clock_begin_;
ros::Time ros_time_begin_;
ros::WallDuration wall_clock_elapsed_;
ros::Duration ros_time_elapsed_;
ColorProperty* background_color_property_;
float time_update_timer_;
float frame_update_timer_;
SelectionManager* selection_manager_;
uint32_t render_requested_;
uint64_t frame_count_;
WindowManagerInterface* window_manager_;
FrameManager* frame_manager_;
评论(0)
您还未登录,请登录后发表或查看评论