/** \file 
 * This file is used for the doxygen documentation. 
 */

/**
\dir ode_robots


The ode_robots directory provides all the stuff necessary for
 simulations with the physics engine ODE (http://ode.org).

\par Simulation Environment

The class lpzrobots::OdeConfig holds the configurable parameters of the simulation environment
like lpzrobots::OdeConfig::gravity, lpzrobots::OdeConfig::simStepSize, lpzrobots::OdeConfig::realTimeFactor and so on.\n
In the class lpzrobots::Simulation you find the functions to overload like 
  lpzrobots::Simulation::start and lpzrobots::Simulation::end which have to be overloaded by all simulations.
Addionally you can overload functions like lpzrobots::Simulation::config for configuration pusposes,
  lpzrobots::Simulation::command to react on keystrokes, and some more.

\par Simulation objects and more

The things inside the simulation environment (and some additional stuff) is inside 
the following subdirectories
- \ref ode_robots/simulations "simulations" :
	ready to use simulations
- \ref ode_robots/agents "agents":
 	structure to build a "complete" agent (consisting of a controller, 
	a robot and the wiring in between), different wirings
- \ref ode_robots/robots "robots":
	our robots,creatures, vehicles or whatever you would like to call 
	them are in this directory
- \ref ode_robots/osg "osg primitives":
	many classes for the osg and ode integration. 
	It provides Primitives and Joints of which robots and obstacles can be assembled, 
          and further helpful things to deal with OSG
- \ref ode_robots/motors "motors":
	a few additional motors (PID servos)
- \ref ode_robots/sensors "senors":
	up to now an infrared-sensor and a sensorbank is available
- \ref ode_robots/obstacles "obstacles":
	passive obstacles like different kinds of playgrounds, a sphere and usage of terrains
- \ref ode_robots/utils "utils":
	all the little things that make life easier
- \ref ode_robots/ode_patches "ode_patches":
	our patches for ODE 0.5 and drawstuff which are not used anymore
- \ref ode_robots/textures "textures":
	our textures used in the simulations and a program for calculating heigtmaps



\par How to Start Your Own Simulation

To start a new project copy one of the "template" directories in the simulations folder.
Please note that you have to delete the CVS dirctory inside your copy 
before you add it to the cvs repository.
Or just use the createNewSimulation.sh script in the simulations directory:\n
<tt> $> ./createNewSimulation.sh template_dir newsimname </tt>\n
where \p template_dir is the template directory you wish to copy and \p newsimname is the
name of the new simulation you wish to create.

Now you can adjust the simulation as needed.
A simple make (and maybe a make depend before the make) in the simulation directory should be enough. 
In case your simulation code consists of other files than main.cpp, 
 please add them to FILES in the Makefile in the simulation directory.
 
If you insert a new file to the simulation framework, 
such as a new obstacle, robot or similar you DON'T need to do anything. 
Every *.cpp file in the directories specified in Makefile.conf is
compiled and included in the library libode_robots.a. 
In case you add a new directory with source files, 
which should be included in the lib, then add it to Makefile.conf.

*/


