[Orxonox-commit 2157] r6873 - code/branches/hudelements/src/modules/overlays/hud

sfluecki at orxonox.net sfluecki at orxonox.net
Mon May 10 14:21:36 CEST 2010


Author: sfluecki
Date: 2010-05-10 14:21:36 +0200 (Mon, 10 May 2010)
New Revision: 6873

Modified:
   code/branches/hudelements/src/modules/overlays/hud/HUDNavigation.cc
   code/branches/hudelements/src/modules/overlays/hud/HUDNavigation.h
Log:
f?\195?\188r reto

Modified: code/branches/hudelements/src/modules/overlays/hud/HUDNavigation.cc
===================================================================
--- code/branches/hudelements/src/modules/overlays/hud/HUDNavigation.cc	2010-05-10 12:20:21 UTC (rev 6872)
+++ code/branches/hudelements/src/modules/overlays/hud/HUDNavigation.cc	2010-05-10 12:21:36 UTC (rev 6873)
@@ -90,11 +90,18 @@
 
     HUDNavigation::~HUDNavigation()
     {
+      
         if (this->isInitialized())
         {
-            Ogre::OverlayManager::getSingleton().destroyOverlayElement(this->navMarker_);
-            Ogre::OverlayManager::getSingleton().destroyOverlayElement(this->navText_);
+	  if(!activeObjectList_.empty()) 
+	   {
+	    for(tempRadarViewable = activeObjectList_.begin(); tempRadarViewable!=activeObjectList_.end(); ++tempRadarViewable)
+	    {
+	      Ogre::OverlayManager::getSingleton().destroyOverlayElement(tempRadarViewable->second.first);
+	      Ogre::OverlayManager::getSingleton().destroyOverlayElement(tempRadarViewable->second.second);
 //            Ogre::OverlayManager::getSingleton().destroyOverlayElement(this->aimMarker_);
+	    }
+	  }
         }
     }
 
@@ -171,12 +178,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;
@@ -184,6 +194,8 @@
         // transform to screen coordinates
         Vector3 pos = transform * tempRadarViewable->first->getRVWorldPosition();
 
+	 COUT(0) << "check 190" << std::endl;
+	 
         bool outOfView;
         if (pos.z > 1.0)
         {
@@ -207,6 +219,8 @@
                 tempRadarViewable->second.first->setMaterialName("Orxonox/NavArrows");
                 wasOutOfView_ = true;
             }
+	    
+	     COUT(0) << "check 174" << std::endl;
 
             if (pos.x < pos.y)
             {
@@ -231,6 +245,7 @@
             }
             else
             {
+	       COUT(0) << "check 241" << std::endl;
                 if (pos.y < -pos.x)
                 {
                     // down
@@ -253,8 +268,8 @@
         }
         else
         {
+	   COUT(0) << "check 264" << std::endl;
 	  
-	  
             // object is in view
 /*
             Vector3 aimpos = transform * getPredictedPosition(SpaceShip::getLocalShip()->getPosition(),
@@ -299,14 +314,22 @@
     */
     void HUDNavigation::sizeChanged(){
             // use size to compensate for aspect ratio if enabled.
-        float xScale = this->getActualSize().x;
-        float yScale = this->getActualSize().y;
-        if (this->navMarker_)
-            navMarker_->setDimensions(navMarkerSize_ * xScale, navMarkerSize_ * yScale);
-//         if (this->aimMarker_)
-//             aimMarker_->setDimensions(aimMarkerSize_ * xScale, aimMarkerSize_ * yScale);
-        if (this->navText_)
-            navText_->setCharHeight(navText_->getCharHeight() * yScale);
+	float xScale = this->getActualSize().x;
+	float yScale = this->getActualSize().y;
+	
+	 if(!activeObjectList_.empty()) 
+	{
+	  for(tempRadarViewable = activeObjectList_.begin(); tempRadarViewable!=activeObjectList_.end(); ++tempRadarViewable)
+	  {
+
+	     if (tempRadarViewable->second.first)
+	      tempRadarViewable->second.first->setDimensions(navMarkerSize_ * xScale, navMarkerSize_ * yScale);
+//            if (this->aimMarker_)
+//            aimMarker_->setDimensions(aimMarkerSize_ * xScale, aimMarkerSize_ * yScale);
+	     if (tempRadarViewable->second.second)
+	      tempRadarViewable->second.second->setCharHeight(tempRadarViewable->second.second->getCharHeight() * yScale);
+	  }
+	}
     }
     
     
@@ -338,6 +361,7 @@
 	activeObjectList_[object].second->show();
 // 	background_->addChild(activeObjectList_[object].first);
 // 	background_->addChild(activeObjectList_[object].second);
+	COUT(0) << "check 357" << std::endl;
     }
     
   void HUDNavigation::removeObject(RadarViewable* viewable){

Modified: code/branches/hudelements/src/modules/overlays/hud/HUDNavigation.h
===================================================================
--- code/branches/hudelements/src/modules/overlays/hud/HUDNavigation.h	2010-05-10 12:20:21 UTC (rev 6872)
+++ code/branches/hudelements/src/modules/overlays/hud/HUDNavigation.h	2010-05-10 12:21:36 UTC (rev 6873)
@@ -71,8 +71,9 @@
 	
 
         // XMLPort accessors
-        void setNavMarkerSize(float size) { this->navMarkerSize_ = size; this->sizeChanged(); } 
-        float getNavMarkerSize() const    { return this->navMarkerSize_; }
+        void setNavMarkerSize(float size) { navMarkerSize_ = size; 
+					    this->sizeChanged(); } 
+        float getNavMarkerSize() const    { return navMarkerSize_; }
 
 /*
         void setAimMarkerSize(float size) { this->aimMarkerSize_ = size; this->sizeChanged(); }
@@ -107,8 +108,8 @@
 	activeObjectListType::iterator tempRadarViewable;
 	
 	std::string fontName_;
-	int textSize_;
-	
+	float textSize_;
+
     };
     
 }




More information about the Orxonox-commit mailing list