[Orxonox-commit 2182] r6898 - code/branches/hudelements/src/modules/overlays/hud

sfluecki at orxonox.net sfluecki at orxonox.net
Thu May 13 12:02:15 CEST 2010


Author: sfluecki
Date: 2010-05-13 12:02:14 +0200 (Thu, 13 May 2010)
New Revision: 6898

Modified:
   code/branches/hudelements/src/modules/overlays/hud/HUDNavigation.cc
   code/branches/hudelements/src/modules/overlays/hud/HUDNavigation.h
Log:
changes in 'src/modules/overlays/hud/HUDNavigation'.
HUDNavigation::changedOwner() now working for the case you get shot. all targetMarkers are now shown after you respawn. textOverlays still missing - why i dont know?.

Modified: code/branches/hudelements/src/modules/overlays/hud/HUDNavigation.cc
===================================================================
--- code/branches/hudelements/src/modules/overlays/hud/HUDNavigation.cc	2010-05-11 12:56:32 UTC (rev 6897)
+++ code/branches/hudelements/src/modules/overlays/hud/HUDNavigation.cc	2010-05-13 10:02:14 UTC (rev 6898)
@@ -60,13 +60,7 @@
     setTextSize(0.05f);
     setNavMarkerSize(0.05f);
 
-    respawnObjectSet_ = this->getOwner()->getScene()->getRadar()->getRadarObjects();  
 
-    for (respawnObjectSetIt_ = respawnObjectSet_.begin(); respawnObjectSetIt_ != respawnObjectSet_.end();
-            ++respawnObjectSetIt_)
-    {
-        if (!(*respawnObjectSetIt_)->isHumanShip_)  addObject(*respawnObjectSetIt_);
-    }
     
 //         // create nav text
 //         navText_ = static_cast<Ogre::TextAreaOverlayElement*>(Ogre::OverlayManager::getSingleton()
@@ -181,15 +175,15 @@
     if (!activeObjectList_.empty()) {
         for (tempRadarViewable = activeObjectList_.begin(); tempRadarViewable!=activeObjectList_.end(); ++tempRadarViewable)
         {
-            COUT(0) << "check 174" << std::endl;
 
+
             //get Distance to HumanController and save it in the TextAreaOverlayElement.
             int dist = (int)(tempRadarViewable->first->getRVWorldPosition() - HumanController::getLocalControllerEntityAsPawn()->getWorldPosition()).length();
             tempRadarViewable->second.second->setCaption(multi_cast<std::string>(dist));
             float textLength = multi_cast<std::string>(dist).size() * tempRadarViewable->second.second->getCharHeight() * 0.3f;
 
-            COUT(0) << "check 181" << std::endl;
 
+
             orxonox::Camera* cam = CameraManager::getInstance().getActiveCamera();
             if (!cam)
                 return;
@@ -197,8 +191,8 @@
             // transform to screen coordinates
             Vector3 pos = transform * tempRadarViewable->first->getRVWorldPosition();
 
-            COUT(0) << "check 190" << std::endl;
 
+
             bool outOfView;
             if (pos.z > 1.0)
             {
@@ -223,8 +217,8 @@
                     wasOutOfView_ = true;
                 }
 
-                COUT(0) << "check 174" << std::endl;
 
+
                 if (pos.x < pos.y)
                 {
                     if (pos.y > -pos.x)
@@ -271,8 +265,8 @@
             }
             else
             {
-                COUT(0) << "check 264" << std::endl;
 
+
                 // object is in view
                 /*
                             Vector3 aimpos = transform * getPredictedPosition(SpaceShip::getLocalShip()->getPosition(),
@@ -298,8 +292,8 @@
                 tempRadarViewable->second.second->setTop((-pos.y + 1.0f + tempRadarViewable->second.first->getHeight()) * 0.5f);
             }
 
-            tempRadarViewable->second.first->show();
-            tempRadarViewable->second.second->show();
+	     tempRadarViewable->second.first->show();
+	     tempRadarViewable->second.second->show();
         }
 
     }
@@ -307,15 +301,15 @@
 }
 
 
-float HUDNavigation::getDist2Focus() const {
+// float HUDNavigation::getDist2Focus() const {
+// 
+//     Radar* radar = this->getOwner()->getScene()->getRadar();
+//     if (radar->getFocus() && HumanController::getLocalControllerEntityAsPawn())
+//         return (radar->getFocus()->getRVWorldPosition() - HumanController::getLocalControllerEntityAsPawn()->getWorldPosition()).length();
+//     else
+//         return 0;
+// }
 
-    Radar* radar = this->getOwner()->getScene()->getRadar();
-    if (radar->getFocus() && HumanController::getLocalControllerEntityAsPawn())
-        return (radar->getFocus()->getRVWorldPosition() - HumanController::getLocalControllerEntityAsPawn()->getWorldPosition()).length();
-    else
-        return 0;
-}
-
 /**
 @brief Overridden method of OrxonoxOverlay. Usually the entire overlay
        scales with scale(). Here we obviously have to adjust this.
@@ -360,7 +354,8 @@
 
     Ogre::TextAreaOverlayElement* text = static_cast<Ogre::TextAreaOverlayElement*>(Ogre::OverlayManager::getSingleton()
                                          .createOverlayElement("TextArea", "HUDNavigation_navText_" + getUniqueNumberString()));
-
+		
+   
     float xScale = this->getActualSize().x;
     float yScale = this->getActualSize().y;
 
@@ -374,7 +369,7 @@
 
 // 	background_->addChild(activeObjectList_[object].first);
 // 	background_->addChild(activeObjectList_[object].second);
-    COUT(0) << "check 357" << std::endl;
+
 }
 
 void HUDNavigation::removeObject(RadarViewable* viewable)
@@ -391,14 +386,22 @@
     }
 }
 
-// void HUDRadar::changedOwner() {
-//     SUPER(HUDRadar, changedOwner);
-//
-//     this->owner_ = orxonox_cast<Pawn*>(this->getOwner());
-//     assert(this->radarObjects_.size()==0);
-//     this->gatherObjects();
-// }
+void HUDNavigation::changedOwner() {
+     
 
+ 
+    respawnObjectSet_ = this->getOwner()->getScene()->getRadar()->getRadarObjects();
+    respawnObjectSetType::iterator respawnObjectSetIt_;
+    for (respawnObjectSetIt_ = respawnObjectSet_.begin(); respawnObjectSetIt_ != respawnObjectSet_.end();
+            ++respawnObjectSetIt_)
+    {
+        if (!(*respawnObjectSetIt_)->isHumanShip_)  HUDNavigation::addObject(*respawnObjectSetIt_);
+    }
+
+}
+
+
+
 // 	void updateActiveObjectList(map activeObjectList_){}
 //
 // 	void HUDNavigation::objectChanged(RadarViewable* viewable){}

Modified: code/branches/hudelements/src/modules/overlays/hud/HUDNavigation.h
===================================================================
--- code/branches/hudelements/src/modules/overlays/hud/HUDNavigation.h	2010-05-11 12:56:32 UTC (rev 6897)
+++ code/branches/hudelements/src/modules/overlays/hud/HUDNavigation.h	2010-05-13 10:02:14 UTC (rev 6898)
@@ -57,7 +57,7 @@
     virtual void objectChanged(RadarViewable* viewable) {}
     inline float getRadarSensitivity() const {return 1.0f;}
     inline void radarTick(float dt) {}
-//     virtual void changedOwner();
+    virtual void changedOwner();
 
 
 private:
@@ -94,7 +94,7 @@
 
     void updateMarker();
     void updateFocus();
-    float getDist2Focus() const;
+//     float getDist2Focus() const;
     void getSingleton();
 
 
@@ -112,11 +112,12 @@
     typedef std::map<RadarViewable*, std::pair<Ogre::PanelOverlayElement*, Ogre::TextAreaOverlayElement*> > activeObjectListType;
     activeObjectListType activeObjectList_;
     activeObjectListType::iterator tempRadarViewable;
-    
+        
     typedef std::set<RadarViewable*> respawnObjectSetType;
     respawnObjectSetType respawnObjectSet_;
-    respawnObjectSetType::iterator respawnObjectSetIt_;
+    
 
+
     std::string fontName_;
     float textSize_;
 




More information about the Orxonox-commit mailing list