ARGoS
3
A parallel, multi-engine simulator for swarm robotics
|
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 }