00001 /* 00002 * Copyright (c) 2013 University of Jaume-I. 00003 * All rights reserved. This program and the accompanying materials 00004 * are made available under the terms of the GNU Public License v3.0 00005 * which accompanies this distribution, and is available at 00006 * http://www.gnu.org/licenses/gpl.html 00007 * 00008 * Contributors: 00009 * Mario Prats 00010 * Javier Perez 00011 */ 00012 00013 #ifndef VIEWBUILDER_H 00014 #define VIEWBUILDER_H 00015 00016 #include <osgWidget/Util> 00017 #include <osgOcean/OceanScene> 00018 00019 #include "osgOceanScene.h" 00020 #include "HUDCamera.h" 00021 #include "ROSInterface.h" 00022 #include "SimulatedIAUV.h" 00023 #include "ConfigXMLParser.h" 00024 #include "SceneBuilder.h" 00025 00026 class ViewBuilder 00027 { 00028 public: 00029 osg::ref_ptr<osgViewer::Viewer> viewer; 00030 boost::shared_ptr<osg::ArgumentParser> arguments; 00031 int fullScreenNum; 00032 00033 public: 00034 osg::ref_ptr<osgWidget::WindowManager> wm; 00035 ViewBuilder(ConfigFile &config, SceneBuilder *scene_builder); 00036 ViewBuilder(ConfigFile &config, SceneBuilder *scene_builder, int *argc, char **argv); 00037 ViewBuilder(ConfigFile &config, SceneBuilder *scene_builder, boost::shared_ptr<osg::ArgumentParser> args); 00038 00039 osgViewer::View* getView() 00040 { 00041 return viewer.get(); 00042 } 00043 osgViewer::Viewer* getViewer() 00044 { 00045 return viewer.get(); 00046 } 00047 void init(); 00048 00049 ~ViewBuilder() 00050 { 00051 } 00052 00053 protected: 00054 bool init(ConfigFile &config, SceneBuilder *scene_builder); 00055 }; 00056 00057 #endif 00058