Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
May 19, 2008, 9:39:23 PM (17 years ago)
Author:
FelixSchulthess
Message:

edited bar, removed smartbar and replaced functionality with a boolean autoColor to indicate whether the bar should change color automatically

File:
1 edited

Legend:

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

    r1315 r1328  
    2222*      Yuning Chai
    2323*   Co-authors:
    24 *      ...
     24*      Felix Schulthess
    2525*
    2626*/
     
    3939#include "RadarOverlayElement.h"
    4040#include "OverlayElementFactories.h"
    41 // ugly hack
    42 #include "Orxonox.h"
    43 
    4441
    4542namespace orxonox
     
    5350    om->addOverlayElementFactory(barOverlayElementFactory);
    5451
    55     SmartBarOverlayElementFactory *smartBarOverlayElementFactory = new SmartBarOverlayElementFactory();
    56     om->addOverlayElementFactory(smartBarOverlayElementFactory);
    57 
    5852    RadarOverlayElementFactory *radarOverlayElementFactory = new RadarOverlayElementFactory();
    5953    om->addOverlayElementFactory(radarOverlayElementFactory);
     
    6357    container = static_cast<Ogre::OverlayContainer*>(om->createOverlayElement("Panel", "Orxonox/HUD/container"));
    6458
    65     energyCounter = static_cast<SmartBarOverlayElement*>(om->createOverlayElement("SmartBar", "energyCounter"));
     59    energyCounter = static_cast<BarOverlayElement*>(om->createOverlayElement("Bar", "energyCounter"));
    6660    energyCounter->show();
    6761
    68     speedo = static_cast<SmartBarOverlayElement*>(om->createOverlayElement("SmartBar", "speedo"));
     62    speedo = static_cast<BarOverlayElement*>(om->createOverlayElement("Bar", "speedo"));
    6963    speedo->show();
    7064
     
    7266    radar->show();
    7367
    74 
    75 /*    TextAreaOverlayElement* test = static_cast<TextAreaOverlayElement*>(overlayManager.createOverlayElement("TextArea", "test"));
    76 
    77     int dirX, dirY, dirZ;      //flying direction
    78     int ortX, ortY, ortZ;      //orthogonal direction
    79     int dX, dY, dZ;            //distance between main ship and the object
    80     int vecX, vecY, vecZ;      //vector product dir X ort
    81     double alpha;              //defines the radius in the radar
    82     double beta;               //defines the angle in the radar
    83     bool right;                //checks whether the object is on the right side (since cos is not bijective)
    84 
    85     dirX = 1;
    86     dirY = 0;
    87     dirZ = 0;
    88 
    89     ortX = 0;
    90     ortY = 0;
    91     ortZ = 1;
    92 
    93     dX = -2;
    94     dY = 2;
    95     dZ = 0;
    96 
    97     alpha = acos((dirX*dX+dirY*dY+dirZ*dZ)/(sqrt(pow(dX,2)+pow(dY,2)+pow(dZ,2))*sqrt(pow(dirX,2)+pow(dirY,2)+pow(dirZ,2))));
    98     beta = acos((ortX*dX+ortY*dY+ortZ*dZ)/(sqrt(pow(dX,2)+pow(dY,2)+pow(dZ,2))*sqrt(pow(ortX,2)+pow(ortY,2)+pow(ortZ,2))));
    99     vecX = dirY*ortZ - dirZ*ortY;
    100     vecY = dirZ*ortX - dirX*ortZ;
    101     vecZ = dirX*ortY - dirY*ortX;
    102 
    103     if((vecX*dX+vecY*dY+vecZ*dZ)>0){right=true;}
    104     else right=false;
    105 
    106     test->setCaption("hell");
    107     test->setPosition(10,10);
    108     test->setDimensions(20,20);
    109     test->show();
    110     test->setMetricsMode(Ogre::GMM_PIXELS);
    111     container->addChild(test);
    112 
    113     COUT(0)<<alpha<<" "<<beta<<" "<<right<<std::endl;
    114 */
    115 
    11668    container->addChild(energyCounter);
    11769    container->addChild(speedo);
    11870    container->addChild(radar);
    11971    container->show();
    120 
    12172    orxonoxHUD->add2D(container);
    12273    orxonoxHUD->show();
    123 
    124 
    125 
    126     // important: don't use SceneManager to create the node! but register the creator scene manager.
    127 /*    ogreNode_ = new Ogre::SceneNode(Orxonox::getSingleton()->getSceneManager(), "hudNoedely");
    128 
    129     ogreNode_->setPosition(80,-60,-200);
    130     ogreNode_->setScale(0.4,0.4,0.4);
    131     // ugly hack, but I haven't figured out yet how we could change this, since we really need the
    132     // scene manager..
    133     ogreNode_->attachObject(Orxonox::getSingleton()->getSceneManager()->createEntity("head", "ogrehead.mesh"));
    134 //    orxonoxOverlay->add3D(ogreNode_);
    135 */
    136 
    13774    container->setLeft(0.0);
    13875    container->setTop(0.0);
     
    14178    container->setMetricsMode(Ogre::GMM_RELATIVE);
    14279
    143     energyCounter->initSmartBarOverlayElement(0.01, 0.01, 0.2, 0.02, BarOverlayElement::LEFT);
    144     energyCounter->reset(100);
     80    energyCounter->init(0.01, 0.01, 0.2, 0.02, container);
     81    energyCounter->setValue(1);
    14582
    146     speedo->initSmartBarOverlayElement(0.01, 0.04, 0.2, 0.02, BarOverlayElement::LEFT);
    147     speedo->reset(80);
     83    speedo->init(0.01, 0.04, 0.2, 0.02, container);
    14884
    149     radar->initRadarOverlayElement(0.5, 0.9, 0.2, container);
    150 
    151 
     85    radar->init(0.5, 0.9, 0.2, container);
    15286  }
    15387
     
    15690      float v = SpaceShip::instance_s->getVelocity().length();
    15791      float vmax = SpaceShip::instance_s->getMaxSpeed();
    158       speedo->reset(100*v/vmax);
     92      speedo->setValue(v/vmax);
    15993      radar->update();
    160     /*if (this->ogreNode_)
    161     {
    162       this->ogreNode_->roll(Ogre::Degree(dt*200),Ogre::Node::TS_LOCAL);
    163       this->ogreNode_->yaw(Ogre::Degree(dt*200),Ogre::Node::TS_LOCAL);
    164       this->ogreNode_->pitch(Ogre::Degree(dt*200),Ogre::Node::TS_LOCAL);
    165     }*/
    16694  }
    16795
    168   HUD::~HUD(void){}
    169 
     96  HUD::~HUD(void){
     97  }
    17098}
    17199
Note: See TracChangeset for help on using the changeset viewer.