Orxonox: src/orxonox/overlays/OrxonoxOverlay.h File Reference

# OrxonoxOverlay.h File Reference

Declaration of the OrxonoxOverlay class. More...

`#include "OrxonoxPrereqs.h"`
`#include <string>`
`#include "util/Math.h"`
`#include "util/OgreForwardRefs.h"`
`#include "core/BaseObject.h"`
`#include "interfaces/WindowEventListener.h"`

## Namespaces

namespace | orxonox

## Classes

class | orxonox::OrxonoxOverlay

Base class to display content directly onto the screen. This is merely a wrapper of the Ogre::Overlay to implement more features and integrate it in our class hierarchy for xml loading and config values. The mentioned features are:

- Automatic positioning depending on the scale and the rotation angle. You can specify a "pick point" relative to the overlay itself. This point will always be exactly at the position (position_) of the overlay. That allows for margin/corner aligment. It even works when a rotation angle is applied.
- Virtual methods for changedVisibilty() (BaseObject), angleChanged(), sizeCorrectionChanged(), sizeChanged() and positionChanged(), that can be overridden by any derivative. This enables for custom configurability of the size, position and rotation attributes. For intance, the HUDNavigation should behave differently to sizeChanged() than a standard overlay.
- Console commands for scale, rotate and scroll (accessed by name)
- Standard Ogre::PanelOverlayElement for a background image (class doesn't have to be derived only for displaying a picture).
- Reacts to changes of the window aspect
- Last but not least: On demand you can tell the overlay to automatically resale to correct for aspect distortion. E.g. if you play 1024x768 you wouldn't want a round object to be oval. Remark: This can (due to the Ogre::Overlay transformation order) only work for angle that are multiples of 90 degrees. But it's only a small drawback.

More...

## Functions

| orxonox::SUPER_FUNCTION (8, OrxonoxOverlay, changedOverlayGroup, false)
| orxonox::SUPER_FUNCTION (7, OrxonoxOverlay, changedOwner, false)

## Detailed Description

Declaration of the OrxonoxOverlay class.