Changeset 1328 for code/branches/hud3/src/orxonox/hud/HUD.cc
- Timestamp:
- May 19, 2008, 9:39:23 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/hud3/src/orxonox/hud/HUD.cc
r1315 r1328 22 22 * Yuning Chai 23 23 * Co-authors: 24 * ...24 * Felix Schulthess 25 25 * 26 26 */ … … 39 39 #include "RadarOverlayElement.h" 40 40 #include "OverlayElementFactories.h" 41 // ugly hack42 #include "Orxonox.h"43 44 41 45 42 namespace orxonox … … 53 50 om->addOverlayElementFactory(barOverlayElementFactory); 54 51 55 SmartBarOverlayElementFactory *smartBarOverlayElementFactory = new SmartBarOverlayElementFactory();56 om->addOverlayElementFactory(smartBarOverlayElementFactory);57 58 52 RadarOverlayElementFactory *radarOverlayElementFactory = new RadarOverlayElementFactory(); 59 53 om->addOverlayElementFactory(radarOverlayElementFactory); … … 63 57 container = static_cast<Ogre::OverlayContainer*>(om->createOverlayElement("Panel", "Orxonox/HUD/container")); 64 58 65 energyCounter = static_cast< SmartBarOverlayElement*>(om->createOverlayElement("SmartBar", "energyCounter"));59 energyCounter = static_cast<BarOverlayElement*>(om->createOverlayElement("Bar", "energyCounter")); 66 60 energyCounter->show(); 67 61 68 speedo = static_cast< SmartBarOverlayElement*>(om->createOverlayElement("SmartBar", "speedo"));62 speedo = static_cast<BarOverlayElement*>(om->createOverlayElement("Bar", "speedo")); 69 63 speedo->show(); 70 64 … … 72 66 radar->show(); 73 67 74 75 /* TextAreaOverlayElement* test = static_cast<TextAreaOverlayElement*>(overlayManager.createOverlayElement("TextArea", "test"));76 77 int dirX, dirY, dirZ; //flying direction78 int ortX, ortY, ortZ; //orthogonal direction79 int dX, dY, dZ; //distance between main ship and the object80 int vecX, vecY, vecZ; //vector product dir X ort81 double alpha; //defines the radius in the radar82 double beta; //defines the angle in the radar83 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 116 68 container->addChild(energyCounter); 117 69 container->addChild(speedo); 118 70 container->addChild(radar); 119 71 container->show(); 120 121 72 orxonoxHUD->add2D(container); 122 73 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 the132 // scene manager..133 ogreNode_->attachObject(Orxonox::getSingleton()->getSceneManager()->createEntity("head", "ogrehead.mesh"));134 // orxonoxOverlay->add3D(ogreNode_);135 */136 137 74 container->setLeft(0.0); 138 75 container->setTop(0.0); … … 141 78 container->setMetricsMode(Ogre::GMM_RELATIVE); 142 79 143 energyCounter->init SmartBarOverlayElement(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); 145 82 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); 148 84 149 radar->initRadarOverlayElement(0.5, 0.9, 0.2, container); 150 151 85 radar->init(0.5, 0.9, 0.2, container); 152 86 } 153 87 … … 156 90 float v = SpaceShip::instance_s->getVelocity().length(); 157 91 float vmax = SpaceShip::instance_s->getMaxSpeed(); 158 speedo-> reset(100*v/vmax);92 speedo->setValue(v/vmax); 159 93 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 }*/166 94 } 167 95 168 HUD::~HUD(void){ }169 96 HUD::~HUD(void){ 97 } 170 98 } 171 99
Note: See TracChangeset
for help on using the changeset viewer.