[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