Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Dec 25, 2009, 10:23:58 PM (14 years ago)
Author:
rgrieder
Message:

Merged presentation2 branch back to trunk.
Major new features:

  • Actual GUI with settings, etc.
  • Improved space ship steering (human interaction)
  • Rocket fire and more particle effects
  • Advanced sound framework
Location:
code/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • code/trunk

  • code/trunk/src/modules/overlays/hud/HUDNavigation.cc

    r5929 r6417  
    3030
    3131#include <string>
     32#include <OgreCamera.h>
    3233#include <OgreOverlayManager.h>
    3334#include <OgreTextAreaOverlayElement.h>
     
    3536
    3637#include "util/Math.h"
    37 #include "util/StringUtils.h"
    3838#include "util/Convert.h"
    3939#include "core/CoreIncludes.h"
    4040#include "core/XMLPort.h"
     41#include "CameraManager.h"
    4142#include "Scene.h"
    4243#include "Radar.h"
     44#include "graphics/Camera.h"
     45#include "controllers/HumanController.h"
     46#include "worldentities/pawns/Pawn.h"
    4347
    4448namespace orxonox
     
    6064        navMarker_->setMaterialName("Orxonox/NavArrows");
    6165
     66/*
    6267        // create aim marker
    6368        aimMarker_ = static_cast<Ogre::PanelOverlayElement*>(Ogre::OverlayManager::getSingleton()
     
    7075        setNavMarkerSize(0.05f);
    7176        setAimMarkerSize(0.04f);
     77*/
    7278
    7379        background_->addChild(navMarker_);
    74         background_->addChild(aimMarker_);
     80//        background_->addChild(aimMarker_);
    7581        background_->addChild(navText_);
    7682
     
    8591            Ogre::OverlayManager::getSingleton().destroyOverlayElement(this->navMarker_);
    8692            Ogre::OverlayManager::getSingleton().destroyOverlayElement(this->navText_);
    87             Ogre::OverlayManager::getSingleton().destroyOverlayElement(this->aimMarker_);
     93//            Ogre::OverlayManager::getSingleton().destroyOverlayElement(this->aimMarker_);
    8894        }
    8995    }
     
    96102        XMLPortParam(HUDNavigation, "textSize", setTextSize, getTextSize, xmlElement, mode);
    97103        XMLPortParam(HUDNavigation, "navMarkerSize", setNavMarkerSize, getNavMarkerSize, xmlElement, mode);
    98         XMLPortParam(HUDNavigation, "aimMarkerSize", setAimMarkerSize, getAimMarkerSize, xmlElement, mode);
     104//        XMLPortParam(HUDNavigation, "aimMarkerSize", setAimMarkerSize, getAimMarkerSize, xmlElement, mode);
    99105    }
    100106
    101107    void HUDNavigation::setFont(const std::string& font)
    102108    {
    103         if (this->navText_ && font != "")
     109        if (this->navText_ && !font.empty())
    104110            this->navText_->setFontName(font);
    105111    }
     
    149155        float textLength = multi_cast<std::string>(dist).size() * navText_->getCharHeight() * 0.3;
    150156
    151 /*
    152         Ogre::Camera* navCam = SpaceShip::getLocalShip()->getCamera()->cam_;
    153         Matrix4 transformationMatrix = navCam->getProjectionMatrix() * navCam->getViewMatrix();
    154 */
     157        orxonox::Camera* cam = CameraManager::getInstance().getActiveCamera();
     158        if (!cam)
     159            return;
     160        const Matrix4& transform = cam->getOgreCamera()->getProjectionMatrix() * cam->getOgreCamera()->getViewMatrix();
    155161        // transform to screen coordinates
    156         Vector3 pos = /*transformationMatrix * */radar->getFocus()->getRVWorldPosition();
     162        Vector3 pos = transform * radar->getFocus()->getRVWorldPosition();
    157163
    158164        bool outOfView;
     
    172178        {
    173179            // object is not in view
    174             aimMarker_->hide();
     180//            aimMarker_->hide();
    175181
    176182            if (!wasOutOfView_)
     
    227233            // object is in view
    228234/*
    229             Vector3 aimpos = transformationMatrix * getPredictedPosition(SpaceShip::getLocalShip()->getPosition(),
     235            Vector3 aimpos = transform * getPredictedPosition(SpaceShip::getLocalShip()->getPosition(),
    230236                    Projectile::getSpeed(), Radar::getInstance().getFocus()->getRVWorldPosition(), Radar::getInstance().getFocus()->getRVOrientedVelocity());
    231237*/
     
    241247            navMarker_->setTop((-pos.y + 1.0 - navMarker_->getHeight()) * 0.5);
    242248
     249/*
    243250            aimMarker_->show();
    244 /*
    245251            aimMarker_->setLeft((aimpos.x + 1.0 - aimMarker_->getWidth()) * 0.5);
    246252            aimMarker_->setTop((-aimpos.y + 1.0 - aimMarker_->getHeight()) * 0.5);
     
    253259    float HUDNavigation::getDist2Focus() const
    254260    {
    255 /*
    256         if (Radar::getInstance().getFocus())
    257             return (Radar::getInstance().getFocus()->getRVWorldPosition() - SpaceShip::getLocalShip()->getPosition()).length();
    258         else
    259 */
     261        Radar* radar = this->getOwner()->getScene()->getRadar();
     262        if (radar->getFocus() && HumanController::getLocalControllerEntityAsPawn())
     263            return (radar->getFocus()->getRVWorldPosition() - HumanController::getLocalControllerEntityAsPawn()->getWorldPosition()).length();
     264        else
    260265            return 0;
    261266    }
     
    267272    void HUDNavigation::sizeChanged()
    268273    {
    269         // use size to compensate for apspect ratio if enabled.
     274        // use size to compensate for aspect ratio if enabled.
    270275        float xScale = this->getActualSize().x;
    271276        float yScale = this->getActualSize().y;
    272277        if (this->navMarker_)
    273278            navMarker_->setDimensions(navMarkerSize_ * xScale, navMarkerSize_ * yScale);
     279/*
    274280        if (this->aimMarker_)
    275281            aimMarker_->setDimensions(aimMarkerSize_ * xScale, aimMarkerSize_ * yScale);
     282*/
    276283        if (this->navText_)
    277284            navText_->setCharHeight(navText_->getCharHeight() * yScale);
Note: See TracChangeset for help on using the changeset viewer.