Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 1346


Ignore:
Timestamp:
May 21, 2008, 8:20:58 PM (17 years ago)
Author:
FelixSchulthess
Message:

splitted two classes in two files

Location:
code/branches/hud3/src/orxonox
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • code/branches/hud3/src/orxonox/CMakeLists.txt

    r1332 r1346  
    88  hud/BarOverlayElement.cc
    99  hud/RadarOverlayElement.cc
     10  hud/RadarObject.cc
    1011  particle/ParticleInterface.cc
    1112  tolua/tolua_bind.cc
  • code/branches/hud3/src/orxonox/hud/RadarOverlayElement.cc

    r1343 r1346  
    2626*/
    2727
    28 /*      local coordinate system of space ship at the beginning:
    29 
    30                         y
    31                         +   z
    32                         |  +
    33                         | /
    34                         |/
    35    x +------O
    36 */
    37 
    38 #include <OgreOverlayManager.h>
    39 #include <OgreOverlayElement.h>
    40 #include <OgrePanelOverlayElement.h>
    41 #include <OgreStringConverter.h>
    4228#include "RadarOverlayElement.h"
    43 #include "GraphicsEngine.h"
    4429
    4530namespace orxonox
     
    9883        // iterate through all RadarObjects
    9984                while(ro != NULL){
     85                    // calc position on radar...
    10086            ro->radius_ = calcRadius(ro);
    10187            ro->phi_ = calcPhi(ro);
    10288            ro->right_ = calcRight(ro);
     89
     90            // set size to fit distance...
     91            float d = (ro->pos_-shipPos_).length();
     92            if(d<4000) ro->panel_->setDimensions(4,4);
     93            else if(d<8000) ro->panel_->setDimensions(3,3);
     94            else if(d<12000) ro->panel_->setDimensions(2,2);
     95            else ro->panel_->setDimensions(1,1);
     96
    10397            if (ro->right_){
    10498                ro->panel_->setPosition(sin(ro->phi_)*ro->radius_/
     
    115109    void RadarOverlayElement::addObject(Vector3 pos){
    116110        if(firstRadarObject_ == NULL){
    117             firstRadarObject_ = new RadarObject(container_);
    118             firstRadarObject_->pos_ = pos;
     111            firstRadarObject_ = new RadarObject(container_, pos);
    119112            lastRadarObject_ = firstRadarObject_;
    120113        }
    121114        else{
    122             lastRadarObject_->next = new RadarObject(container_);
    123             lastRadarObject_->next->pos_ = pos;
     115            lastRadarObject_->next = new RadarObject(container_, pos);
    124116            lastRadarObject_ = lastRadarObject_->next;
    125117        }
     
    155147        else return false;
    156148        }
    157 
    158 //////// RadarObject ////////
    159 
    160         int RadarObject::count = 0;             // initialize static variable
    161 
    162         RadarObject::RadarObject(Ogre::OverlayContainer* container){
    163                 container_ = container;
    164                 pos_ = Vector3(0.0, 0.0, 0.0);
    165                 init();
    166         }
    167 
    168         RadarObject::RadarObject(Ogre::OverlayContainer* container, Vector3 pos){
    169                 container_ = container;
    170                 pos_ = pos;
    171                 init();
    172         }
    173 
    174         RadarObject::~RadarObject(){}
    175 
    176         void RadarObject::init(){
    177             next = NULL;
    178                 om = &Ogre::OverlayManager::getSingleton();
    179                 panel_ = static_cast<PanelOverlayElement*>(om->createOverlayElement("Panel",
    180                         "Object"+Ogre::StringConverter::toString(count++)));
    181                 panel_->setMaterialName("Orxonox/RedDot");
    182                 panel_->setDimensions(5,5);
    183         panel_->setMetricsMode(Ogre::GMM_PIXELS);
    184         panel_->show();
    185         container_->addChild(panel_);
    186         }
    187149}
    188150
  • code/branches/hud3/src/orxonox/hud/RadarOverlayElement.h

    r1343 r1346  
    3030
    3131#include <string.h>
     32#include <OgreOverlayManager.h>
     33#include <OgreStringConverter.h>
    3234#include <OgreOverlayElement.h>
    3335#include <OgrePanelOverlayElement.h>
     36#include <OgrePrerequisites.h>
     37
    3438#include <util/Math.h>
    3539#include <string.h>
    3640#include "core/Tickable.h"
    37 #include <OgrePrerequisites.h>
    3841#include "objects/SpaceShip.h"
    3942#include "../OrxonoxPrereqs.h"
     43#include "RadarObject.h"
     44#include "GraphicsEngine.h"
    4045
    4146namespace orxonox
    4247{
    43     class _OrxonoxExport RadarObject
    44     {
    45         private:
    46                 Ogre::OverlayManager* om;                               // our one and only overlay manager
    47                 void init();
    48 
    49         public:
    50                 RadarObject(Ogre::OverlayContainer* container);
    51                 RadarObject(Ogre::OverlayContainer* container, Vector3 pos);
    52                 ~RadarObject();
    53 
    54             bool right_;
    55                 Vector3 pos_;                                                   // position in space
    56                         Ogre::Real radius_, phi_;                               // position on radar
    57                         Ogre::OverlayContainer* container_;
    58                         Ogre::PanelOverlayElement* panel_;              // the panel used to show the dot
    59                         RadarObject* next;                      // next pointer of linked list
    60 
    61                 static int count;
    62         };
    63 
    6448    class _OrxonoxExport RadarOverlayElement : public Ogre::PanelOverlayElement
    6549    {
Note: See TracChangeset for help on using the changeset viewer.