globaldata.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *   Copyright (C) 2005 by Robot Group Leipzig                             *
00003  *    martius@informatik.uni-leipzig.de                                    *
00004  *    fhesse@informatik.uni-leipzig.de                                     *
00005  *    der@informatik.uni-leipzig.de                                        *
00006  *                                                                         *
00007  *   This program is free software; you can redistribute it and/or modify  *
00008  *   it under the terms of the GNU General Public License as published by  *
00009  *   the Free Software Foundation; either version 2 of the License, or     *
00010  *   (at your option) any later version.                                   *
00011  *                                                                         *
00012  *   This program is distributed in the hope that it will be useful,       *
00013  *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
00014  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
00015  *   GNU General Public License for more details.                          *
00016  *                                                                         *
00017  *   You should have received a copy of the GNU General Public License     *
00018  *   along with this program; if not, write to the                         *
00019  *   Free Software Foundation, Inc.,                                       *
00020  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
00021  *                                                                         *
00022  *   $Log: globaldata.h,v $
00023  *   Revision 1.8  2009/08/07 13:31:54  martius
00024  *   sim_steps moved here
00025  *
00026  *   Revision 1.7  2009/08/07 09:11:18  martius
00027  *   plotoptions and globalconfigurables are now in globaldata
00028  *
00029  *   Revision 1.6  2007/11/07 13:27:55  martius
00030  *   sound added
00031  *
00032  *   Revision 1.5  2007/03/16 10:56:33  martius
00033  *   *** empty log message ***
00034  *
00035  *   Revision 1.4  2006/07/14 12:23:56  martius
00036  *   selforg becomes HEAD
00037  *
00038  *   Revision 1.3.4.5  2006/06/25 17:01:26  martius
00039  *   removed using namespace std
00040  *
00041  *   Revision 1.3.4.4  2006/03/29 15:10:00  martius
00042  *   Dummy Primitive for Environment
00043  *
00044  *   Revision 1.3.4.3  2005/12/06 10:13:26  martius
00045  *   openscenegraph integration started
00046  *
00047  *   Revision 1.3.4.2  2005/11/15 12:30:24  martius
00048  *   new selforg structure and OdeAgent, OdeRobot ...
00049  *
00050  *   Revision 1.3.4.1  2005/11/14 17:37:25  martius
00051  *   moved to selforg
00052  *
00053  *   Revision 1.3  2005/11/09 13:31:51  martius
00054  *   GPL'ised
00055  *
00056  ***************************************************************************/
00057 #ifndef __GLOBALDATA_H
00058 #define __GLOBALDATA_H
00059 
00060 
00061 #include <vector>
00062 #include "odehandle.h"
00063 #include "odeconfig.h"
00064 #include "sound.h"
00065 #include <selforg/plotoption.h>
00066 
00067 class Configurable;
00068 
00069 namespace lpzrobots {
00070 
00071 class OdeAgent;
00072 class AbstractObstacle;
00073 class Primitive;
00074 
00075 typedef std::vector<AbstractObstacle*> ObstacleList;      
00076 typedef std::vector<Configurable*> ConfigList;
00077 typedef std::vector<OdeAgent*>     OdeAgentList; 
00078 typedef std::list<Sound>           SoundList; 
00079 typedef std::list<PlotOption>      PlotOptionList;
00080 
00081 /**
00082   Data structure holding all essential global information.
00083 */
00084 struct GlobalData
00085 {
00086   GlobalData() { 
00087     time        = 0;
00088     sim_step    = 0;
00089     environment = 0;
00090   }
00091 
00092   OdeConfig odeConfig;
00093   ConfigList configs;
00094   ObstacleList obstacles;
00095   OdeAgentList agents;
00096   Primitive* environment; /// < this is used to be able to attach objects to the static environment
00097 
00098   SoundList sounds;  ///< sound space
00099 
00100   PlotOptionList plotoptions;     ///< plotoptions used for new agents
00101   std::list<Configurable*> globalconfigurables; ///< global configurables plotted by all agents
00102 
00103   double time;
00104   long int sim_step; ///< time steps since start
00105 };
00106 
00107 }
00108 
00109 #endif

Generated on Fri Oct 30 16:29:01 2009 for Robot Simulator of the Robotics Group for Self-Organization of Control by  doxygen 1.4.7