Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Jun 12, 2008, 10:42:15 PM (16 years ago)
Author:
rgrieder
Message:
  • removed conversion functions in String.h
  • you can use convertToString and convertFromString from Convert.h as shortcuts
  • added "true", "false", "on", "off", "yes" and "no" as boolean values to the Converter
  • Conversion bool —> string newly gives "true" or "false"
  • HUDOverlay can deal with the aspect ratio, e.g. circles stay circles when resizing
  • the rest isn't yet finished: svn save ;)
File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/hud/src/orxonox/hud/Navigation.cc

    r1590 r1595  
    5454      , navMarker_(0)
    5555      , aimMarker_(0)
     56      , navText_(0)
    5657      , focus_(0)
    5758    {
     
    8182        {
    8283            // create container
    83             this->container_ = static_cast<OverlayContainer*>(Ogre::OverlayManager::getSingleton().createOverlayElement("Panel", getName() + "_navContainer"));
    84             this->container_->setMetricsMode(Ogre::GMM_RELATIVE);
    85             this->container_->setLeft(0.0);
    86             this->container_->setTop(0.0);
    87             this->container_->setWidth(1.0);
    88             this->container_->setHeight(1.0);
     84            container_ = static_cast<OverlayContainer*>(Ogre::OverlayManager::getSingleton().createOverlayElement("Panel", getName() + "_navContainer"));
     85            container_->setMetricsMode(Ogre::GMM_RELATIVE);
     86            container_->setLeft(0.0);
     87            container_->setTop(0.0);
     88            container_->setWidth(1.0);
     89            container_->setHeight(1.0);
    8990
    9091            // create nav text
    91             this->navText_ = static_cast<TextAreaOverlayElement*>(Ogre::OverlayManager::getSingleton().createOverlayElement("TextArea", getName() + "_navText"));
    92             this->navText_->setMetricsMode(Ogre::GMM_RELATIVE);
    93             this->navText_->setPosition(0.0f, 0.0f);
    94             this->navText_->setCharHeight(0.05f);
    95             this->navText_->setFontName("Monofur");
     92            navText_ = static_cast<TextAreaOverlayElement*>(Ogre::OverlayManager::getSingleton().createOverlayElement("TextArea", getName() + "_navText"));
     93            navText_->setMetricsMode(Ogre::GMM_RELATIVE);
     94            navText_->setPosition(0.0f, 0.0f);
     95            navText_->setCharHeight(0.05f);
     96            navText_->setFontName("Monofur");
    9697
    9798            // create nav marker
    9899            navMarker_ = static_cast<PanelOverlayElement*>(OverlayManager::getSingleton().createOverlayElement("Panel", getName() + "_navMarker"));
    99100            navMarker_->setMetricsMode(GMM_RELATIVE);
    100             navMarker_->setDimensions(0.05f, 0.05f);
    101101            navMarker_->setMaterialName("Orxonox/NavArrows");
     102            this->navMarkerSize_ = 0.05;
    102103            this->wasOutOfView_ = true; // just a to ensure the material is changed right the first time..
    103104
     
    105106            aimMarker_ = static_cast<PanelOverlayElement*>(OverlayManager::getSingleton().createOverlayElement("Panel", getName() + "_aimMarker"));
    106107            aimMarker_->setMetricsMode(GMM_RELATIVE);
    107             aimMarker_->setDimensions(0.05f, 0.05f);
    108108            aimMarker_->setMaterialName("Orxonox/NavCrosshair");
     109            this->aimMarkerSize_ = 0.04;
    109110           
    110111            container_->addChild(navMarker_);
     
    121122        XMLPortParam(Navigation, "navmarkersize", setNavMarkerSize, getNavMarkerSize, xmlElement, mode);
    122123        XMLPortParam(Navigation, "aimmarkersize", setAimMarkerSize, getAimMarkerSize, xmlElement, mode);
    123     }
    124 
    125     void Navigation::setNavMarkerSize(Vector2 size)
    126     {
    127         if (this->navMarker_ && size.squaredLength() >= 0.0f)
    128             this->navMarker_->setDimensions(size.x, size.y);
    129     }
    130 
    131     Vector2 Navigation::getNavMarkerSize() const
    132     {
    133         if (this->navMarker_)
    134             return Vector2(navMarker_->getWidth(), navMarker_->getHeight());
    135         else
    136             return Vector2::ZERO;
    137     }
    138 
    139     void Navigation::setAimMarkerSize(Vector2 size)
    140     {
    141         if (this->aimMarker_ && size.squaredLength() >= 0.0f)
    142             this->aimMarker_->setDimensions(size.x, size.y);
    143     }
    144 
    145     Vector2 Navigation::getAimMarkerSize() const
    146     {
    147         if (this->aimMarker_)
    148             return Vector2(aimMarker_->getWidth(), aimMarker_->getHeight());
    149         else
    150             return Vector2::ZERO;
     124
     125        if (mode == XMLPort::LoadObject)
     126        {
     127            this->sizeChanged();
     128        }
     129    }
     130
     131    void Navigation::setNavMarkerSize(float size)
     132    {
     133        this->navMarkerSize_ = size;
     134    }
     135
     136    float Navigation::getNavMarkerSize() const
     137    {
     138        return this->navMarkerSize_;
     139    }
     140
     141    void Navigation::setAimMarkerSize(float size)
     142    {
     143        this->aimMarkerSize_ = size;
     144    }
     145
     146    float Navigation::getAimMarkerSize() const
     147    {
     148        return this->aimMarkerSize_;
    151149    }
    152150
     
    208206            pos.x = -pos.x;
    209207            pos.y = -pos.y;
    210             pos.z = -pos.z;
    211208        }
    212209        else
     
    366363    }
    367364
    368     void Navigation::windowResized(int newWidth, int newHeight)
    369     {
    370         HUDOverlay::windowResized(newWidth, newHeight);
    371 
    372         //if (this->navMarker_)
    373         //    navMarker_->setDimensions(0.05, 0.05);
    374 
     365    void Navigation::sizeChanged()
     366    {
     367        float xScale = this->getActualSize().x;
     368        float yScale = this->getActualSize().y;
     369        if (this->navMarker_)
     370            navMarker_->setDimensions(navMarkerSize_ * xScale, navMarkerSize_ * yScale);
     371        if (this->aimMarker_)
     372            aimMarker_->setDimensions(aimMarkerSize_ * xScale, aimMarkerSize_ * yScale);
     373        if (this->navText_)
     374            navText_->setCharHeight(navText_->getCharHeight() * yScale);
    375375    }
    376376}
Note: See TracChangeset for help on using the changeset viewer.