ARGoS  3
A parallel, multi-engine simulator for swarm robotics
core/simulator/space/space_no_threads.cpp
Go to the documentation of this file.
00001 
00011 #include "space_no_threads.h"
00012 #include <argos3/core/simulator/simulator.h>
00013 
00014 namespace argos {
00015 
00016    /****************************************/
00017    /****************************************/
00018 
00019    void CSpaceNoThreads::UpdateControllableEntities() {
00020       for(size_t i = 0; i < m_vecControllableEntities.size(); ++i) {
00021          m_vecControllableEntities[i]->Sense();
00022          m_vecControllableEntities[i]->ControlStep();
00023       }
00024       for(size_t i = 0; i < m_vecControllableEntities.size(); ++i) {
00025          m_vecControllableEntities[i]->Act();
00026       }
00027    }
00028 
00029    /****************************************/
00030    /****************************************/
00031 
00032    void CSpaceNoThreads::UpdatePhysics() {
00033       /* Update the physics engines */
00034       for(size_t i = 0; i < m_ptPhysicsEngines->size(); ++i) {
00035          (*m_ptPhysicsEngines)[i]->Update();
00036       }
00037       /* Perform entity transfer from engine to engine, if needed */
00038       for(size_t i = 0; i < m_ptPhysicsEngines->size(); ++i) {
00039          if((*m_ptPhysicsEngines)[i]->IsEntityTransferNeeded()) {
00040             (*m_ptPhysicsEngines)[i]->TransferEntities();
00041          }
00042       }
00043    }
00044 
00045    /****************************************/
00046    /****************************************/
00047 
00048    void CSpaceNoThreads::UpdateMedia() {
00049       for(size_t i = 0; i < m_ptMedia->size(); ++i) {
00050          (*m_ptMedia)[i]->Update();
00051       }
00052    }
00053 
00054    /****************************************/
00055    /****************************************/
00056 
00057 }