Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
May 3, 2010, 5:03:05 PM (15 years ago)
Author:
scurcio
Message:

update hudnavigation /addObject, removeObject

File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/hudelements/src/modules/overlays/hud/HUDNavigation.cc

    r6796 r6849  
    3030
    3131#include <string>
    32 #include <vector>
    33 #include <map>
    3432#include <OgreCamera.h>
    3533#include <OgreOverlayManager.h>
    3634#include <OgreTextAreaOverlayElement.h>
    3735#include <OgrePanelOverlayElement.h>
    38 
    3936#include "util/Math.h"
    4037#include "util/Convert.h"
     
    4744#include "controllers/HumanController.h"
    4845#include "worldentities/pawns/Pawn.h"
     46#include "worldentities/WorldEntity.h"
    4947
    5048namespace orxonox
     
    139137    void HUDNavigation::tick(float dt)
    140138    {
    141 
    142        
    143139        SUPER(HUDNavigation, tick, dt);
    144140
     
    291287    }
    292288   
    293 //     map <WorldEntity*, pair <Ogre::PanelOverlayElement*, Ogre::TextAreaOverlayElement*> > ActiveObjectList;
     289    void HUDNavigation::addObject(RadarViewable* object)
     290    {
     291        if (object == dynamic_cast<RadarViewable*>(this->getOwner()))
     292            return;
     293       
     294        assert(object);
     295         
     296        // Make sure the object hasn't been added yet
     297        assert( this->activeObjectList_.find(object) == this->activeObjectList_.end() );
     298
     299        // Create everything needed to display the object on the radar and add it to the map
     300       
     301         // create nav marker
     302        Ogre::PanelOverlayElement* panel = static_cast<Ogre::PanelOverlayElement*>(Ogre::OverlayManager::getSingleton()
     303            .createOverlayElement("Panel", "HUDNavigation_navMarker_" + getUniqueNumberString()));
     304           
     305        panel->setMaterialName("Orxonox/NavArrows");
     306         
     307        Ogre::TextAreaOverlayElement* text = static_cast<Ogre::TextAreaOverlayElement*>(Ogre::OverlayManager::getSingleton()
     308             .createOverlayElement("TextArea", "HUDNavigation_navText_" + getUniqueNumberString()));
     309       
     310        activeObjectList_[object] = std::make_pair (panel, text) ;     
     311        activeObjectList_[object].first->show();
     312        activeObjectList_[object].second->show();
     313        }
    294314   
    295 //     void updateActiveObjectMap(){
    296 //       --> iteration durch die betsehende map über alle keys (Worldentity*)
    297 //           --> check: 'existiert noch' 'sizeChanged' 'angleChanged' 'positionChanged'
    298 //               --> update des aktuellen Objects (Panel & Text)
    299 //               --> lücke schliessen in der map (aufrücken nach links)
    300 //       --> neue objekte suchen
    301 //               -- map.add neue objekte hinzufügen (pair <panel, text> einfügen.
    302 //     }       
    303    
     315        void HUDNavigation::removeObject(RadarViewable* viewable){
     316          assert(activeObjectList_.find(viewable)!=activeObjectList_.end());
     317          activeObjectList_.erase(viewable);
     318        }
     319//     
     320//         void HUDNavigation::objectChanged(RadarViewable* viewable){}
     321//         float HUDNavigation::getRadarSensitivity(){}
     322//         void HUDNavigation::radarTick(float dt){}
     323//     
    304324
    305325
Note: See TracChangeset for help on using the changeset viewer.