Robot Simulator of the Robotics Group for Self-Organization of Control: Simulation Class Reference

- Main Page
- Namespaces
- Classes
- Files
- Directories
- Related Pages
- Examples

- Search for |

- Alphabetical List
- Class List
- Class Hierarchy
- Class Members

# Simulation Class Reference

`#include <simulation.h>`

Inherits Base, and Configurable.

Inherited by TaskedSimulation, and ThisSim.

Inheritance diagram for Simulation:

[legend]
Collaboration diagram for Simulation:

[legend]
List of all members.

## Public Types
| none
| initialised
| running
| closed
enum | SimulationState { none, initialised, running, closed }
## Public Member Functions
| Simulation ()
virtual | ~Simulation ()
bool | run (int argc, char **argv)
| starts the Simulation.
virtual void | start (const OdeHandle &, const OsgHandle &, GlobalData &globalData)=0
| start() is called at the first start of the cycles and should create all the object (obstacles, agents...).
virtual bool | restart (const OdeHandle &, const OsgHandle &, GlobalData &globalData)
| restart() is called at the second and all following starts of the cylces
virtual void | end (GlobalData &globalData)
| end() is called at the end and should tidy up
virtual bool | config (GlobalData &globalData)
| config() is called when the user presses Ctrl-C
virtual bool | command (const OdeHandle &, const OsgHandle &, GlobalData &globalData, int key, bool down)
| is called if a key was pressed.
virtual void | bindingDescription (osg::ApplicationUsage &au) const
| this can be used to describe the key bindings used by command()
virtual bool | collCallback (const OdeHandle &, void *data, dGeomID o1, dGeomID o2)
| collCallback() can be used to overload the standart collision handling.
virtual void | addCallback (GlobalData &globalData, bool draw, bool pause, bool control)
| optional additional callback function which is called every simulation step.
virtual void | odeStep ()
virtual void | osgStep ()
## Protected Member Functions
virtual bool | handle (const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &)
virtual void | getUsage (osg::ApplicationUsage &au) const
virtual void | accept (osgGA::GUIEventHandlerVisitor &v)
virtual bool | init (int argc, char **argv)
void | setCameraHomePos (const osg::Vec3 &eye, const osg::Vec3 &view)
| define the home position and view orientation of the camera.
bool | control_c_pressed ()
virtual void | processCmdLine (int argc, char **argv)
void | resetSyncTimer ()
long | timeOfDayinMS ()
## Static Protected Member Functions
static void | nearCallback_TopLevel (void *data, dGeomID o1, dGeomID o2)
static void | nearCallback (void *data, dGeomID o1, dGeomID o2)
## Protected Attributes
std::list< PlotOption > & | plotoptions
std::list< Configurable * > & | globalconfigurables
| this list contains by default only the odeconfig. This list should be added to new agents
GlobalData | globalData
osg::ref_ptr< VideoStream > | videostream
int | nextLeakAnnounce
int | leakAnnCounter
long | realtimeoffset
long | simtimeoffset
double | truerealtimefactor
bool | justresettimes
paramint | windowWidth
paramint | windowHeight
bool | pause
bool | simulation_time_reached
long int | simulation_time
bool | noGraphics
int | guiloggerinterval
int | filelogginginterval
int | neuronvizinterval
char | odeRobotsCfg [256]
int | currentCycle
| the current cycle; the simulation restarts if restart() returns true
CameraHandle | cameraHandle
parambool | useOdeThread
parambool | useOsgThread
parambool | useQMPThreads
parambool | inTaskedMode
std::string | windowName

## Detailed Description

Examples:

  template_sphererobot/main.cpp.

## Member Enumeration Documentation

enum SimulationState

Enumerator:

  none |
  initialised |
  running |
  closed |

## Constructor & Destructor Documentation

Simulation | ( |  | ) |

~Simulation | ( |  | ) | `[virtual]`

## Member Function Documentation

void accept | ( | osgGA::GUIEventHandlerVisitor & | v | ) | `[protected, virtual]`

virtual void addCallback | ( | GlobalData & | globalData,
|  | bool | draw,
|  | bool | pause,
|  | bool | control |
| ) |  |  | `[inline, virtual]`

optional additional callback function which is called every simulation step.

Called between physical simulation step and drawing.

Parameters:

  | draw | indicates that objects are drawn in this timestep
  | pause | always false (only called of simulation is running)
  | control | indicates that robots have been controlled this timestep

virtual void bindingDescription | ( | osg::ApplicationUsage & | au | ) | const`[inline, virtual]`

this can be used to describe the key bindings used by command()

Reimplemented in ThisSim.

virtual bool collCallback | ( | const OdeHandle & | ,
|  | void * | data,
|  | dGeomID | o1,
|  | dGeomID | o2 |
| ) |  |  | `[inline, virtual]`

collCallback() can be used to overload the standart collision handling.

However it is called after the robots collision handling.

Returns:
  true if collision is treated, false otherwise

virtual bool command | ( | const OdeHandle & | ,
|  | const OsgHandle & | ,
|  | GlobalData & | globalData,
|  | int | key,
|  | bool | down |
| ) |  |  | `[inline, virtual]`

is called if a key was pressed.

For keycodes see: osgGA::GUIEventAdapter

Returns:
  true if the key was handled

Reimplemented in ThisSim.

bool config | ( | GlobalData & | globalData | ) | `[virtual]`

config() is called when the user presses Ctrl-C

Returns:
  false to exit program, true otherwiese

bool control_c_pressed | ( |  | ) | `[protected]`

void end | ( | GlobalData & | globalData | ) | `[virtual]`

end() is called at the end and should tidy up

void getUsage | ( | osg::ApplicationUsage & | au | ) | const`[protected, virtual]`

bool handle | ( | const osgGA::GUIEventAdapter & | ea,
|  | osgGA::GUIActionAdapter & |  |
| ) |  |  | `[protected, virtual]`

bool init | ( | int | argc,
|  | char ** | argv |
| ) |  |  | `[protected, virtual]`

void nearCallback | ( | void * | data,
|  | dGeomID | o1,
|  | dGeomID | o2 |
| ) |  |  | `[static, protected]`

void nearCallback_TopLevel | ( | void * | data,
|  | dGeomID | o1,
|  | dGeomID | o2 |
| ) |  |  | `[static, protected]`

void odeStep | ( |  | ) | `[virtual]`

void osgStep | ( |  | ) | `[virtual]`

void processCmdLine | ( | int | argc,
|  | char ** | argv |
| ) |  |  | `[protected, virtual]`

void resetSyncTimer | ( |  | ) | `[protected]`

bool restart | ( | const OdeHandle & | ,
|  | const OsgHandle & | ,
|  | GlobalData & | globalData |
| ) |  |  | `[virtual]`

restart() is called at the second and all following starts of the cylces

Parameters:

  | the | odeHandle
  | the | osgHandle
  | globalData |

Returns:
  if the simulation should be restarted; this is false by default

bool run | ( | int | argc,
|  | char ** | argv |
| ) |  |  |

starts the Simulation.

Do not overload it. This function returns of the simulation is terminated.

Returns:
  : true if closed regulary, false on error

Examples:
  template_sphererobot/main.cpp.

void setCameraHomePos | ( | const osg::Vec3 & | eye,
|  | const osg::Vec3 & | view |
| ) |  |  | `[protected]`

define the home position and view orientation of the camera.

view.x is the heading angle in degree. view.y is the tilt angle in degree (nick), view.z is ignored

virtual void start | ( | const OdeHandle & | ,
|  | const OsgHandle & | ,
|  | GlobalData & | globalData |
| ) |  |  | `[pure virtual]`

start() is called at the first start of the cycles and should create all the object (obstacles, agents...).

Implemented in ThisSim.

long timeOfDayinMS | ( |  | ) | `[protected]`

## Member Data Documentation

CameraHandle cameraHandle`[protected]`

int currentCycle`[protected]`

the current cycle; the simulation restarts if restart() returns true

int filelogginginterval`[protected]`

std::list<Configurable*>& globalconfigurables`[protected]`

this list contains by default only the odeconfig. This list should be added to new agents

GlobalData globalData`[protected]`

int guiloggerinterval`[protected]`

parambool inTaskedMode`[protected]`

bool justresettimes`[protected]`

int leakAnnCounter`[protected]`

int neuronvizinterval`[protected]`

int nextLeakAnnounce`[protected]`

bool noGraphics`[protected]`

char odeRobotsCfg[256]`[protected]`

bool pause`[protected]`

std::list<PlotOption>& plotoptions`[protected]`

long realtimeoffset`[protected]`

long simtimeoffset`[protected]`

long int simulation_time`[protected]`

bool simulation_time_reached`[protected]`

double truerealtimefactor`[protected]`

parambool useOdeThread`[protected]`

parambool useOsgThread`[protected]`

parambool useQMPThreads`[protected]`

osg::ref_ptr<VideoStream> videostream`[protected]`

paramint windowHeight`[protected]`

std::string windowName`[protected]`

paramint windowWidth`[protected]`

The documentation for this class was generated from the following files:

- simulation.h
- simulation.cpp