[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