[Orxonox-commit 1575] r6293 - in code/branches/presentation2/src: modules/overlays/hud orxonox/interfaces

rgrieder at orxonox.net rgrieder at orxonox.net
Wed Dec 9 16:32:42 CET 2009


Author: rgrieder
Date: 2009-12-09 16:32:41 +0100 (Wed, 09 Dec 2009)
New Revision: 6293

Modified:
   code/branches/presentation2/src/modules/overlays/hud/HUDNavigation.cc
   code/branches/presentation2/src/modules/overlays/hud/HUDNavigation.h
   code/branches/presentation2/src/orxonox/interfaces/RadarViewable.cc
Log:
Fixed HUDNavigation: Aim position is not available anymore (projectile speed unknown) but the rest works again.

Modified: code/branches/presentation2/src/modules/overlays/hud/HUDNavigation.cc
===================================================================
--- code/branches/presentation2/src/modules/overlays/hud/HUDNavigation.cc	2009-12-09 14:56:03 UTC (rev 6292)
+++ code/branches/presentation2/src/modules/overlays/hud/HUDNavigation.cc	2009-12-09 15:32:41 UTC (rev 6293)
@@ -29,6 +29,7 @@
 #include "HUDNavigation.h"
 
 #include <string>
+#include <OgreCamera.h>
 #include <OgreOverlayManager.h>
 #include <OgreTextAreaOverlayElement.h>
 #include <OgrePanelOverlayElement.h>
@@ -38,8 +39,10 @@
 #include "util/Convert.h"
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
+#include "CameraManager.h"
 #include "Scene.h"
 #include "Radar.h"
+#include "graphics/Camera.h"
 #include "controllers/HumanController.h"
 #include "worldentities/pawns/Pawn.h"
 
@@ -61,6 +64,7 @@
             .createOverlayElement("Panel", "HUDNavigation_navMarker_" + getUniqueNumberString()));
         navMarker_->setMaterialName("Orxonox/NavArrows");
 
+/*
         // create aim marker
         aimMarker_ = static_cast<Ogre::PanelOverlayElement*>(Ogre::OverlayManager::getSingleton()
             .createOverlayElement("Panel", "HUDNavigation_aimMarker_" + getUniqueNumberString()));
@@ -71,9 +75,10 @@
         setTextSize(0.05f);
         setNavMarkerSize(0.05f);
         setAimMarkerSize(0.04f);
+*/
 
         background_->addChild(navMarker_);
-        background_->addChild(aimMarker_);
+//        background_->addChild(aimMarker_);
         background_->addChild(navText_);
 
         // hide at first
@@ -86,7 +91,7 @@
         {
             Ogre::OverlayManager::getSingleton().destroyOverlayElement(this->navMarker_);
             Ogre::OverlayManager::getSingleton().destroyOverlayElement(this->navText_);
-            Ogre::OverlayManager::getSingleton().destroyOverlayElement(this->aimMarker_);
+//            Ogre::OverlayManager::getSingleton().destroyOverlayElement(this->aimMarker_);
         }
     }
 
@@ -97,7 +102,7 @@
         XMLPortParam(HUDNavigation, "font",     setFont,     getFont,     xmlElement, mode);
         XMLPortParam(HUDNavigation, "textSize", setTextSize, getTextSize, xmlElement, mode);
         XMLPortParam(HUDNavigation, "navMarkerSize", setNavMarkerSize, getNavMarkerSize, xmlElement, mode);
-        XMLPortParam(HUDNavigation, "aimMarkerSize", setAimMarkerSize, getAimMarkerSize, xmlElement, mode);
+//        XMLPortParam(HUDNavigation, "aimMarkerSize", setAimMarkerSize, getAimMarkerSize, xmlElement, mode);
     }
 
     void HUDNavigation::setFont(const std::string& font)
@@ -150,12 +155,12 @@
         navText_->setCaption(multi_cast<std::string>(dist));
         float textLength = multi_cast<std::string>(dist).size() * navText_->getCharHeight() * 0.3;
 
-/*
-        Ogre::Camera* navCam = SpaceShip::getLocalShip()->getCamera()->cam_;
-        Matrix4 transformationMatrix = navCam->getProjectionMatrix() * navCam->getViewMatrix();
-*/
+        orxonox::Camera* cam = CameraManager::getInstance().getActiveCamera();
+        if (!cam)
+            return;
+        const Matrix4& transform = cam->getOgreCamera()->getProjectionMatrix() * cam->getOgreCamera()->getViewMatrix();
         // transform to screen coordinates
-        Vector3 pos = /*transformationMatrix * */radar->getFocus()->getRVWorldPosition();
+        Vector3 pos = transform * radar->getFocus()->getRVWorldPosition();
 
         bool outOfView;
         if (pos.z > 1.0)
@@ -173,7 +178,7 @@
         if (outOfView)
         {
             // object is not in view
-            aimMarker_->hide();
+//            aimMarker_->hide();
 
             if (!wasOutOfView_)
             {
@@ -228,7 +233,7 @@
         {
             // object is in view
 /*
-            Vector3 aimpos = transformationMatrix * getPredictedPosition(SpaceShip::getLocalShip()->getPosition(),
+            Vector3 aimpos = transform * getPredictedPosition(SpaceShip::getLocalShip()->getPosition(),
                     Projectile::getSpeed(), Radar::getInstance().getFocus()->getRVWorldPosition(), Radar::getInstance().getFocus()->getRVOrientedVelocity());
 */
             if (wasOutOfView_)
@@ -242,8 +247,8 @@
             navMarker_->setLeft((pos.x + 1.0 - navMarker_->getWidth()) * 0.5);
             navMarker_->setTop((-pos.y + 1.0 - navMarker_->getHeight()) * 0.5);
 
+/*
             aimMarker_->show();
-/*
             aimMarker_->setLeft((aimpos.x + 1.0 - aimMarker_->getWidth()) * 0.5);
             aimMarker_->setTop((-aimpos.y + 1.0 - aimMarker_->getHeight()) * 0.5);
 */
@@ -272,8 +277,10 @@
         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);
     }

Modified: code/branches/presentation2/src/modules/overlays/hud/HUDNavigation.h
===================================================================
--- code/branches/presentation2/src/modules/overlays/hud/HUDNavigation.h	2009-12-09 14:56:03 UTC (rev 6292)
+++ code/branches/presentation2/src/modules/overlays/hud/HUDNavigation.h	2009-12-09 15:32:41 UTC (rev 6293)
@@ -55,8 +55,10 @@
         void setNavMarkerSize(float size) { this->navMarkerSize_ = size; this->sizeChanged(); }
         float getNavMarkerSize() const    { return this->navMarkerSize_; }
 
+/*
         void setAimMarkerSize(float size) { this->aimMarkerSize_ = size; this->sizeChanged(); }
         float getAimMarkerSize() const    { return this->aimMarkerSize_; }
+*/
 
         void setTextSize(float size);
         float getTextSize() const;
@@ -70,8 +72,10 @@
 
         Ogre::PanelOverlayElement* navMarker_;      //!< the panel used to show the arrow and the target marker
         float navMarkerSize_;                       //!< One paramter size of the navigation marker
+/*
         Ogre::PanelOverlayElement* aimMarker_;      //!< Panel used to show the aim Marker
         float aimMarkerSize_;                       //!< One paramter size of the aim marker
+*/
         Ogre::TextAreaOverlayElement* navText_;     //!< Text overlay to display the target distance
         bool wasOutOfView_;                         //!< Performance booster variable: setMaterial is not cheap
     };

Modified: code/branches/presentation2/src/orxonox/interfaces/RadarViewable.cc
===================================================================
--- code/branches/presentation2/src/orxonox/interfaces/RadarViewable.cc	2009-12-09 14:56:03 UTC (rev 6292)
+++ code/branches/presentation2/src/orxonox/interfaces/RadarViewable.cc	2009-12-09 15:32:41 UTC (rev 6293)
@@ -162,7 +162,7 @@
     {
         if (!object)
         {
-            COUT(1) << "Assertation: Every RadarViewable has to be assigned a WorldEntity pointer!" << std::endl;
+            COUT(1) << "Assertion: Every RadarViewable has to be assigned a WorldEntity pointer!" << std::endl;
             assert(0);
         }
     }




More information about the Orxonox-commit mailing list