[Orxonox-commit 1555] r6273 - in code/branches/presentation2/src: modules/overlays/hud orxonox
scheusso at orxonox.net
scheusso at orxonox.net
Tue Dec 8 11:48:52 CET 2009
Author: scheusso
Date: 2009-12-08 11:48:52 +0100 (Tue, 08 Dec 2009)
New Revision: 6273
Modified:
code/branches/presentation2/src/modules/overlays/hud/HUDNavigation.cc
code/branches/presentation2/src/orxonox/Radar.cc
Log:
radar working again (also focus incl. cycleNavigationFocus)
Modified: code/branches/presentation2/src/modules/overlays/hud/HUDNavigation.cc
===================================================================
--- code/branches/presentation2/src/modules/overlays/hud/HUDNavigation.cc 2009-12-08 09:51:08 UTC (rev 6272)
+++ code/branches/presentation2/src/modules/overlays/hud/HUDNavigation.cc 2009-12-08 10:48:52 UTC (rev 6273)
@@ -40,6 +40,8 @@
#include "core/XMLPort.h"
#include "Scene.h"
#include "Radar.h"
+#include "controllers/HumanController.h"
+#include "worldentities/pawns/Pawn.h"
namespace orxonox
{
@@ -252,11 +254,10 @@
float HUDNavigation::getDist2Focus() const
{
-/*
- if (Radar::getInstance().getFocus())
- return (Radar::getInstance().getFocus()->getRVWorldPosition() - SpaceShip::getLocalShip()->getPosition()).length();
+ Radar* radar = this->getOwner()->getScene()->getRadar();
+ if (radar->getFocus() && HumanController::getLocalControllerEntityAsPawn())
+ return (radar->getFocus()->getRVWorldPosition() - HumanController::getLocalControllerEntityAsPawn()->getWorldPosition()).length();
else
-*/
return 0;
}
Modified: code/branches/presentation2/src/orxonox/Radar.cc
===================================================================
--- code/branches/presentation2/src/orxonox/Radar.cc 2009-12-08 09:51:08 UTC (rev 6272)
+++ code/branches/presentation2/src/orxonox/Radar.cc 2009-12-08 10:48:52 UTC (rev 6273)
@@ -39,12 +39,15 @@
#include "core/ConsoleCommand.h"
#include "core/ObjectList.h"
#include "interfaces/RadarListener.h"
+#include "controllers/HumanController.h"
+#include "worldentities/pawns/Pawn.h"
namespace orxonox
{
Radar::Radar()
: focus_(0)
+ , itFocus_(0)
, objectTypeCounter_(0)
{
// TODO: make this mapping configurable. Maybe there's a possibility with self configured
@@ -117,21 +120,21 @@
void Radar::cycleFocus()
{
- if (ObjectList<RadarViewable>::begin() == 0)
+ if (ObjectList<RadarViewable>::begin() == ObjectList<RadarViewable>::end())
{
// list is empty
this->itFocus_ = 0;
this->focus_ = 0;
}
-/*
- else if (this->owner_)
+
+ else if (HumanController::getLocalControllerEntityAsPawn())
{
- Vector3 localPosition = this->owner_->getPosition();
+ Vector3 localPosition = HumanController::getLocalControllerEntityAsPawn()->getWorldPosition();
Vector3 targetPosition = localPosition;
- if (*(this->itFocus_))
+ if (this->itFocus_ && *(this->itFocus_))
targetPosition = this->itFocus_->getRVWorldPosition();
- // find the closed object further away than targetPosition
+ // find the closest object further away than targetPosition
float currentDistance = localPosition.squaredDistance(targetPosition);
float nextDistance = FLT_MAX;
float minimumDistance = FLT_MAX;
@@ -139,7 +142,7 @@
for (ObjectList<RadarViewable>::iterator it = ObjectList<RadarViewable>::begin(); it; ++it)
{
- if (*it == static_cast<RadarViewable*>(this)->owner_)
+ if (*it == static_cast<RadarViewable*>(HumanController::getLocalControllerEntityAsPawn()))
continue;
float targetDistance = localPosition.squaredDistance((*it)->getRVWorldPosition());
@@ -166,7 +169,6 @@
this->focus_ = *(this->itFocus_);
}
}
-*/
}
void Radar::releaseFocus()
More information about the Orxonox-commit
mailing list