[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