Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
May 24, 2008, 1:39:05 PM (16 years ago)
Author:
rgrieder
Message:
  • merged Felix's changes from trunk to network branch
  • added "svn:eol-style native" property to keybindings.ini
File:
1 edited

Legend:

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

    r1385 r1406  
    2626*/
    2727
    28 
     28#include <string.h>
    2929#include "OrxonoxStableHeaders.h"
    3030#include <OgreOverlay.h>
    3131#include <OgreOverlayContainer.h>
    3232#include <OgreOverlayManager.h>
    33 #include <OgreSceneNode.h>
    34 #include <OgreEntity.h>
    3533#include <OgreStringConverter.h>
     34
    3635#include "core/Debug.h"
     36#include "core/ConsoleCommand.h"
    3737#include "objects/SpaceShip.h"
    38 #include "HUD.h"
    3938#include "BarOverlayElement.h"
    4039#include "RadarOverlayElement.h"
    4140#include "OverlayElementFactories.h"
     41#include "HUD.h"
    4242
    4343namespace orxonox
    4444{
     45    ConsoleCommandShortcut(HUD, cycleNavigationFocus, AccessLevel::User);
     46
    4547    using namespace Ogre;
    4648
    47     HUD::HUD(int zoom){
     49    HUD::HUD(){
    4850        om = &Ogre::OverlayManager::getSingleton();
     51        firstRadarObject = NULL;
     52        lastRadarObject = NULL;
    4953
    5054                // create Factories
     
    5660        orxonoxHUD = om->create("Orxonox/HUD");
    5761        container = static_cast<Ogre::OverlayContainer*>(om->createOverlayElement("Panel", "Orxonox/HUD/container"));
    58         // test
    59         test = static_cast<TextAreaOverlayElement*>(om->createOverlayElement("TextArea", "test123"));
    60         test->show();
    61         test->setMetricsMode(Ogre::GMM_RELATIVE);
    62         test->setDimensions(0.8, 0.8);
    63         test->setPosition(0.02, 0.02);
    64         test->setFontName("Console");
    65         test->setCaption("init");
     62
     63        // creating text to display fps
     64        fpsText = static_cast<TextAreaOverlayElement*>(om->createOverlayElement("TextArea", "fpsText"));
     65        fpsText->show();
     66        fpsText->setMetricsMode(Ogre::GMM_PIXELS);
     67        fpsText->setDimensions(0.001, 0.001);
     68        fpsText->setPosition(10, 10);
     69        fpsText->setFontName("Console");
     70        fpsText->setCharHeight(20);
     71        fpsText->setCaption("init");
    6672
    6773        // create energy bar
     
    7581        radar->show();
    7682
     83        // create Navigation
     84        nav = new Navigation(container);
     85
    7786                // set up screen-wide container
    7887        container->show();
     
    8594        container->setHeight(1.0);
    8695        container->setMetricsMode(Ogre::GMM_RELATIVE);
    87         container->addChild(test);
     96        container->addChild(fpsText);
     97
    8898        energyBar->init(0.01, 0.94, 0.4, container);
    8999        energyBar->setValue(1);
     100
    90101        speedoBar->init(0.01, 0.90, 0.4, container);
     102
    91103        radar->init(0.5, 0.9, 0.2, container);
    92         radar->addObject(Vector3(1500.0, 0.0, 100.0));
    93         radar->addObject(Vector3(0.0, 4000.0, 0.0));
    94         radar->addObject(Vector3(0.0, 0.0, 6800.0));
    95         RadarOverlayElement::cycleFocus();
     104        addRadarObject(Vector3(2000.0, 0.0, 0.0));
     105        addRadarObject(Vector3(0.0, 2000.0, 0.0));
     106        addRadarObject(Vector3(0.0, 0.0, 2000.0));
     107    }
     108
     109    HUD::~HUD(){
     110        //todo: clean up objects
    96111    }
    97112
    98113    void HUD::tick(float dt)
    99114    {
    100         int d = radar->getDist2Focus()/10;
    101         if(d) test->setCaption("Distance: " + Ogre::StringConverter::toString(d));
    102         else test->setCaption("");
    103 
    104115        energyBar->resize();
    105116
     
    113124        radar->resize();
    114125        radar->update();
     126
     127        nav->update();
    115128    }
    116129
    117     HUD::~HUD(void){
     130    void HUD::addRadarObject(Vector3 pos){
     131        // check if this is the first RadarObject to create
     132        if(firstRadarObject == NULL){
     133            firstRadarObject = new RadarObject(container, pos);
     134            lastRadarObject = firstRadarObject;
     135        }
     136        else{ // if not, append to list
     137            lastRadarObject->next = new RadarObject(container, pos);
     138            lastRadarObject = lastRadarObject->next;
     139        }
     140    }
     141
     142    RadarObject* HUD::getFirstRadarObject(){
     143        return firstRadarObject;
     144    }
     145
     146    /*static*/HUD& HUD::getSingleton(){
     147        static HUD theInstance;
     148        return theInstance;
     149    }
     150
     151    /*static*/void HUD::setFPS(float fps){
     152        HUD::getSingleton().fpsText->setCaption("FPS: " + Ogre::StringConverter::toString(fps));
     153    }
     154
     155    /*static*/void HUD::setEnergy(float value){
     156        HUD::getSingleton().energyBar->setValue(value);
     157    }
     158
     159    /*static*/void HUD::cycleNavigationFocus(){
     160        HUD::getSingleton().nav->cycleFocus();
    118161    }
    119162}
Note: See TracChangeset for help on using the changeset viewer.