Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 10137 in orxonox.OLD for branches/ai/src/ai/ai_swarm.cc


Ignore:
Timestamp:
Dec 21, 2006, 3:49:51 PM (17 years ago)
Author:
tfahrni
Message:

discoverd std::map and std::set

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/ai/src/ai/ai_swarm.cc

    r10135 r10137  
    1 
    2 
    31/*
    42   orxonox - the future of 3D-vertical-scrollers
     
    1614*/
    1715#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_AI
    18 
    1916#include "ai_swarm.h"
    20 
     17#include "debug.h"
    2118
    2219void AISwarm::process(float dt)
    2320{
    24         Vector swarmCenter;
    25 
    26         for(unsigned int i=0;i<swarmMembers.size();i++){
    27                 //swarmCenter=swarmCenter+swarmMembers.at(i)->getPosition();
    28         }
    29         swarmCenter=swarmCenter/swarmMembers.size();
    30 
    31         for(unsigned int i=0;i<swarmMembers.size();i++)
    32                 swarmMembers.at(i)->process(dt);
     21        std::set<AIModule*>::iterator it;
     22        for (it= swarmMembers.begin(); it!= swarmMembers.end(); it++ )
     23                (*it)->process(dt);
    3324}
    3425
    35 
    36 void AISwarm::addToSwarm(AIModule* newMember)
     26void AISwarm::addAI(AIModule* aiModule)
    3727{
    38         swarmMembers.push_back(newMember);
     28        swarmMembers.insert(aiModule);
    3929}
    4030
    41 
    42 void AISwarm::removeFromSwarm(AIModule* member)
     31void AISwarm::removeAI(AIModule* aiModule)
    4332{
    44         std::vector<AIModule*>::iterator it = this->swarmMembers.begin();
    45         for(; it < this->swarmMembers.end(); it++) {
    46 
    47 //      for(unsigned int i=0;i<swarmMembers.size();i++){
    48                 if(*it==member){
    49                         swarmMembers.erase(it);
    50                         return;
    51                 }
    52         }
     33        std::set<AIModule*>::iterator it=swarmMembers.find(aiModule);
     34        if(it==swarmMembers.end())return;
     35        delete (*it);
    5336}
    5437
    55 
    56 
     38int AISwarm::getSwarmSize()
     39{
     40        return swarmMembers.size();
     41}
Note: See TracChangeset for help on using the changeset viewer.