Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
May 28, 2008, 7:12:28 PM (16 years ago)
Author:
FelixSchulthess
Message:

using a std::set for the radar objects, which still has a the small problem, that the first radar object is selected twice when cycling through radar objects

File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/network/src/orxonox/hud/HUD.cc

    r1454 r1456  
    3131
    3232#include <string>
     33#include <set>
    3334#include <OgreOverlay.h>
    3435#include <OgreOverlayContainer.h>
     
    5758        om = &Ogre::OverlayManager::getSingleton();
    5859        sm = GraphicsEngine::getSingleton().getSceneManager();
    59         firstRadarObject = NULL;
    60         lastRadarObject = NULL;
    6160        showFPS = true;
    6261        showRenderTime = true;
     
    178177
    179178    void HUD::addRadarObject(SceneNode* node, int colour){
    180         // check if this is the first RadarObject to create
    181         if(firstRadarObject == NULL){
    182             firstRadarObject = new RadarObject(container, node, colour);
    183             lastRadarObject = firstRadarObject;
    184         }
    185         else{ // if not, append to list
    186             lastRadarObject->next = new RadarObject(container, node, colour);
    187             lastRadarObject = lastRadarObject->next;
    188         }
    189     }
    190 
    191     RadarObject* HUD::getFirstRadarObject(){
    192         return firstRadarObject;
     179        RadarObject* obj = new RadarObject(container, node, colour);
     180        roSet.insert(obj);
     181//        // check if this is the first RadarObject to create
     182//        if(firstRadarObject == NULL){
     183//            firstRadarObject = new RadarObject(container, node, colour);
     184//            lastRadarObject = firstRadarObject;
     185//        }
     186//        else{ // if not, append to list
     187//            lastRadarObject->next = new RadarObject(container, node, colour);
     188//            lastRadarObject = lastRadarObject->next;
     189//        }
     190    }
     191
     192    void HUD::removeRadarObject(SceneNode* node){
     193        for(std::set<RadarObject*>::iterator it=roSet.begin(); it!=roSet.end(); it++){
     194            if((*it)->getNode() == node) {
     195                delete (*it);
     196                roSet.erase(it);
     197            }
     198        }
    193199    }
    194200
Note: See TracChangeset for help on using the changeset viewer.