Orxonox  0.0.5 Codename: Arcturus
Classes | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
orxonox::HUDNavigation Class Reference

#include </home/jenkins/workspace/orxonox_doxygen_trunk/src/modules/overlays/hud/HUDNavigation.h>

Inheritance diagram for orxonox::HUDNavigation:
orxonox::OrxonoxOverlay orxonox::Tickable orxonox::RadarListener orxonox::BaseObject orxonox::WindowEventListener orxonox::OrxonoxInterface orxonox::OrxonoxInterface orxonox::OrxonoxClass orxonox::Listable orxonox::Configurable orxonox::Destroyable orxonox::Configurable orxonox::Destroyable orxonox::Configurable orxonox::Destroyable orxonox::Identifiable orxonox::Listable orxonox::Listable orxonox::Listable orxonox::Identifiable orxonox::Identifiable orxonox::Identifiable

Classes

struct  ObjectInfo
 

Public Member Functions

 HUDNavigation (Context *context)
 
virtual ~HUDNavigation ()
 
virtual void addObject (RadarViewable *object) override
 
virtual void angleChanged () override
 Called whenever the rotation angle has changed. More...
 
virtual void changedOwner () override
 
unsigned int getMarkerLimit () const
 
virtual float getRadarSensitivity () const override
 
virtual void objectChanged (RadarViewable *viewable) override
 
virtual void positionChanged () override
 Determines the position of the overlay. More...
 
virtual void radarTick (float dt) override
 
virtual void removeObject (RadarViewable *viewable) override
 
void setConfigValues ()
 
virtual void sizeChanged () override
 Overridden method of OrxonoxOverlay. More...
 
virtual void tick (float dt) override
 Gets called every frame. More...
 
virtual void XMLPort (Element &xmlelement, XMLPort::Mode mode) override
 Loads the OrxonoxOverlay. More...
 
- Public Member Functions inherited from orxonox::OrxonoxOverlay
 OrxonoxOverlay (Context *context)
 
virtual ~OrxonoxOverlay ()
 Make sure everything gets removed/destroyed. More...
 
virtual void changedName () override
 This function gets called if the name of the object changes. More...
 
virtual void changedOverlayGroup ()
 
virtual void changedVisibility () override
 Called by BaseObject when visibility has changed. More...
 
Vector2 getActualSize () const
 Gets the actual size of the overlay on the screen (corrected) More...
 
bool getAspectCorrection () const
 Returns whether the window aspect is corrected. More...
 
const std::string & getBackgroundMaterial () const
 Returns the the material name of the background. More...
 
const std::string & getBackgroundTexture () const
 Returns the the texture name of the background. More...
 
OverlayGroupgetOverlayGroup () const
 
BaseObjectgetOwner () const
 
const Vector2 & getPickPoint () const
 Gets the pick point of this overlay. More...
 
const Vector2 & getPosition () const
 Returns the current position on the screen. More...
 
const Degree & getRotation () const
 Gets the rotation angle applied to this overlay in degrees. More...
 
const Vector2 & getSize () const
 Gets the current size that was set (uncorrected) More...
 
const Vector2 & getSizeCorrection () const
 Gets the current size correction (default: 1.0, 1.0) More...
 
void hide ()
 Hides the overlay with an detour to BaseObject::visibility_. More...
 
void rotate (const Degree &angle)
 Rotates the overlay by angle degrees. More...
 
void scale (const Vector2 &scale)
 Scales the overlay by scale. More...
 
void scroll (const Vector2 &offset)
 Scrolls the overlay. More...
 
void setAspectCorrection (bool val)
 Sets whether the aspect of the overlay is corrected. More...
 
void setBackgroundAlpha (float alpha)
 
void setBackgroundColour (ColourValue colour)
 
void setBackgroundMaterial (const std::string &material)
 Only sets the background material name if not "". More...
 
void setBackgroundTexture (const std::string &texture)
 Sets the background texture name and creates a new material if necessary. More...
 
void setOverlayGroup (OverlayGroup *group)
 
void setOwner (BaseObject *owner)
 
void setPickPoint (const Vector2 &position)
 Sets the point in the overlay where to pick it when translating. More...
 
void setPosition (Vector2 pos)
 Sets the position of this overlay on the screen. More...
 
void setRotation (const Degree &angle)
 Sets the rotation angle applied to this overlay in degrees. More...
 
void setSize (const Vector2 &size)
 Sets the size of this overlay. More...
 
void setZOrder (unsigned short order)
 
void show ()
 Shows the overlay with an detour to BaseObject::visibility_. More...
 
- Public Member Functions inherited from orxonox::BaseObject
 BaseObject (Context *context)
 Constructor: Registers the object in the BaseObject-list. More...
 
virtual ~BaseObject ()
 Destructor. More...
 
void addEventListener (BaseObject *listener)
 Adds an object which listens to the events of this object. More...
 
void addEventSource (BaseObject *source, const std::string &state)
 Adds a new event source for a specific state. More...
 
void addTemplate (const std::string &name)
 Adds a Template to the object. More...
 
void addTemplate (Template *temp)
 Adds a Template to the object. More...
 
virtual void changedActivity ()
 This function gets called if the activity of the object changes. More...
 
virtual void changedMainStateName ()
 This function gets called if the main state name of the object changes. More...
 
void fireEvent (const std::string &name="")
 Fires an event (without a state). More...
 
void fireEvent (bool activate, const std::string &name="")
 Fires an event which activates or deactivates a state. More...
 
void fireEvent (bool activate, BaseObject *originator, const std::string &name="")
 Fires an event which activates or deactivates a state with agiven originator (the object which triggered the event). More...
 
void fireEvent (Event &event)
 Fires an event, using the Event struct. More...
 
BaseObjectgetCreator () const
 
BaseObjectgetEventListener (unsigned int index) const
 Returns an event listener with a given index. More...
 
BaseObjectgetEventSource (unsigned int index, const std::string &state) const
 Returns an eventsource with a given index. More...
 
const XMLFilegetFile () const
 Returns a pointer to the XMLFile that loaded this object. More...
 
const std::string & getFilename () const
 Returns the levelfile that loaded this object. More...
 
GametypegetGametype () const
 
LevelgetLevel () const
 
const std::string & getLoaderIndentation () const
 Returns the indentation of the debug output in the Loader. More...
 
const std::string & getMainStateName () const
 Returns the name of the main state. More...
 
const std::string & getName () const
 Returns the name of the object. More...
 
NamespacegetNamespace () const
 
const std::string & getOldName () const
 Returns the old name of the object. More...
 
ScenegetScene () const
 
virtual uint32_t getSceneID () const
 
const std::set< Template * > & getTemplates () const
 Returns the set of all aplied templates. More...
 
const mboolisActive () const
 Returns the state of the objects activity. More...
 
bool isInitialized () const
 Returns if the object was initialized (passed the object registration). More...
 
const mboolisVisible () const
 Returns the state of the objects visibility. More...
 
virtual void processEvent (Event &event)
 Processing an event by calling the right main state. More...
 
void removeEventSource (BaseObject *source)
 Removes an eventsource (but doesn't unregister itself at the source). More...
 
void setActive (bool bActive)
 Sets the state of the objects activity. More...
 
void setCreator (BaseObject *creator)
 
void setFile (const XMLFile *file)
 Sets a pointer to the xml file that loaded this object. More...
 
void setGametype (const StrongOrWeakPtr< Gametype > &gametype)
 
void setLevel (const StrongOrWeakPtr< Level > &level)
 
void setLoaderIndentation (const std::string &indentation)
 Sets the indentation of the debug output in the Loader. More...
 
void setMainState (bool state)
 Sets the main state of the object to a given boolean value. More...
 
void setMainStateName (const std::string &name)
 Sets the name of the main state (used for event reactions). More...
 
void setName (const std::string &name)
 Sets the name of the object. More...
 
void setNamespace (const StrongOrWeakPtr< Namespace > &ns)
 
void setScene (const StrongOrWeakPtr< Scene > &scene, uint32_t sceneID)
 
void setVisible (bool bVisible)
 Sets the state of the objects visibility. More...
 
virtual void XMLEventPort (Element &xmlelement, XMLPort::Mode mode)
 Defines the possible event states of this object and parses eventsources from an XML file. More...
 
- Public Member Functions inherited from orxonox::OrxonoxClass
 OrxonoxClass ()
 
OrxonoxClassoperator= (const OrxonoxClass &)=default
 
- Public Member Functions inherited from orxonox::Configurable
 Configurable ()
 
void setConfigValues ()
 Function to collect the SetConfigValue-macro calls. More...
 
- Public Member Functions inherited from orxonox::Listable
 Listable ()
 Constructor: Allocates space in the element list. More...
 
 Listable (Context *context)
 Constructor: Allocates space in the element list and assigns the context. More...
 
virtual ~Listable ()
 Destructor: Removes the object from the object-lists. More...
 
ContextgetContext () const
 
void setContext (Context *context)
 Changes the context. More...
 
void unregisterObject ()
 Removes this object from the object-lists. More...
 
- Public Member Functions inherited from orxonox::Identifiable
 Identifiable ()
 Constructor: Sets the default values. More...
 
virtual ~Identifiable ()
 
ORX_FORCEINLINE voidgetDerivedPointer (unsigned int classID)
 Returns a valid pointer of any derived type that is registered in the class hierarchy. More...
 
template<class T >
ORX_FORCEINLINE T * getDerivedPointer (unsigned int classID)
 Version of getDerivedPointer with template. More...
 
template<class T >
ORX_FORCEINLINE const T * getDerivedPointer (unsigned int classID) const
 Const version of getDerivedPointer with template. More...
 
IdentifiergetIdentifier () const
 Returns the Identifier of the object. More...
 
bool isA (const Identifier *identifier)
 Returns true if the object's class is of the given type or a derivative. More...
 
template<class B >
bool isA (const SubclassIdentifier< B > *identifier)
 Returns true if the object's class is of the given type or a derivative. More...
 
bool isA (const Identifiable *object)
 Returns true if the object's class is of the given type or a derivative. More...
 
bool isChildOf (const Identifier *identifier)
 Returns true if the object's class is a child of the given type. More...
 
template<class B >
bool isChildOf (const SubclassIdentifier< B > *identifier)
 Returns true if the object's class is a child of the given type. More...
 
bool isChildOf (const Identifiable *object)
 Returns true if the object's class is a child of the given type. More...
 
bool isDirectChildOf (const Identifier *identifier)
 Returns true if the object's class is a direct child of the given type. More...
 
template<class B >
bool isDirectChildOf (const SubclassIdentifier< B > *identifier)
 Returns true if the object's class is a direct child of the given type. More...
 
bool isDirectChildOf (const Identifiable *object)
 Returns true if the object's class is a direct child of the given type. More...
 
bool isDirectParentOf (const Identifier *identifier)
 Returns true if the object's class is a direct parent of the given type. More...
 
template<class B >
bool isDirectParentOf (const SubclassIdentifier< B > *identifier)
 Returns true if the object's class is a direct parent of the given type. More...
 
bool isDirectParentOf (const Identifiable *object)
 Returns true if the object's class is a direct child of the given type. More...
 
bool isExactlyA (const Identifier *identifier)
 Returns true if the object's class is exactly of the given type. More...
 
template<class B >
bool isExactlyA (const SubclassIdentifier< B > *identifier)
 Returns true if the object's class is exactly of the given type. More...
 
bool isExactlyA (const Identifiable *object)
 Returns true if the object's class is exactly of the given type. More...
 
bool isParentOf (const Identifier *identifier)
 Returns true if the object's class is a parent of the given type. More...
 
template<class B >
bool isParentOf (const SubclassIdentifier< B > *identifier)
 Returns true if the object's class is a parent of the given type. More...
 
bool isParentOf (const Identifiable *object)
 Returns true if the object's class is a parent of the given type. More...
 
- Public Member Functions inherited from orxonox::Destroyable
 Destroyable ()
 Constructor: Sets the default values. More...
 
virtual ~Destroyable ()
 Destructor: Notifies all DestructionListener (for example weak pointers) that this object is being deleted. More...
 
void destroy ()
 Deletes the object if no strong pointers point to this object. More...
 
void destroyLater ()
 Works like destroy() but doesn't destroy the object until the current tick has ended. More...
 
unsigned int getReferenceCount () const
 Returns the number of strong pointers that point to this object. More...
 
- Public Member Functions inherited from orxonox::OrxonoxInterface
 OrxonoxInterface ()
 
- Public Member Functions inherited from orxonox::RadarListener
 RadarListener ()
 
virtual ~RadarListener ()
 

Static Public Member Functions

static void selectClosestTarget ()
 
static void selectNextTarget ()
 
- Static Public Member Functions inherited from orxonox::OrxonoxOverlay
static void rotateOverlay (const std::string &name, const Degree &angle)
 ConsoleCommand: Accesses the overlay by its name and rotates it. More...
 
static void scaleOverlay (const std::string &name, float scale)
 ConsoleCommand: Accesses the overlay by its name and scales it. More...
 
static void scrollOverlay (const std::string &name, const Vector2 &scroll)
 ConsoleCommand: Accesses the overlay by its name and scrolls it. More...
 
static void showOverlay (const std::string &name)
 Shows Overlay by it's name. More...
 
static void toggleVisibility (const std::string &name)
 Toggles the visibility of an Overlay by it's name. More...
 
- Static Public Member Functions inherited from orxonox::BaseObject
static void loadAllEventStates (Element &xmlelement, XMLPort::Mode mode, BaseObject *object, Identifier *identifier)
 Manually loads all event states, even if the class doesn't officially support them. More...
 

Private Member Functions

float getAimMarkerSize () const
 
float getArrowSizeX (int dist) const
 
float getArrowSizeY (int dist) const
 
float getDetectionLimit () const
 
const std::string & getFont () const
 
float getHealthLevelMarkerSize () const
 
float getHealthMarkerSize () const
 
float getNavMarkerSize () const
 
float getTextSize () const
 
void setAimMarkerSize (float size)
 
void setDetectionLimit (float limit)
 
void setFont (const std::string &font)
 
void setHealthLevelMarkerSize (float size)
 
void setHealthMarkerSize (float size)
 
void setNavMarkerSize (float size)
 
void setTextSize (float size)
 
bool showObject (RadarViewable *rv)
 
Vector3 toAimPosition (RadarViewable *target) const
 

Private Attributes

std::map< RadarViewable *, ObjectInfoactiveObjectList_
 
float aimMarkerSize_
 
bool closestTarget_
 
float currentMunitionSpeed_
 
float detectionLimit_
 Objects that are more far away than detectionLimit_ are not displayed on the HUD. 10000.0f is the default value. More...
 
std::string fontName_
 
float healthLevelMarkerSize_
 
float healthMarkerSize_
 
unsigned int markerLimit_
 
float navMarkerSize_
 
bool nextTarget_
 
RadarViewableselectedTarget_
 
bool showDistance_
 
std::list< std::pair< RadarViewable *, unsigned int > > sortedObjectList_
 
float textSize_
 

Static Private Attributes

static HUDNavigationlocalHUD_s = nullptr
 This is used as a filter. Only the local HUD should be influenced by the static Console Command functions. More...
 

Additional Inherited Members

- Public Types inherited from orxonox::OrxonoxOverlay
enum  RotationState { RotationState::Horizontal, RotationState::Vertical, RotationState::Inbetween }
 Describes the rotational state of a an overlay. More...
 
- Protected Member Functions inherited from orxonox::OrxonoxOverlay
virtual void sizeCorrectionChanged ()
 Called whenever the aspect ratio or the angle has changed. More...
 
- Protected Member Functions inherited from orxonox::BaseObject
void addEventState (const std::string &name, EventState *container)
 Adds a new event-state to the object. More...
 
EventStategetEventState (const std::string &name) const
 Returns the event-state with the given name. More...
 
- Protected Member Functions inherited from orxonox::Destroyable
virtual void preDestroy ()
 This virtual function is called if destroy() is called and no StrongPtr points to this object. More...
 
- Protected Member Functions inherited from orxonox::WindowEventListener
 WindowEventListener ()
 
virtual ~WindowEventListener ()=default
 
unsigned int getWindowHeight () const
 Returns the current render window height. More...
 
unsigned int getWindowWidth () const
 Returns the current render window width. More...
 
- Protected Member Functions inherited from orxonox::Tickable
 Tickable ()
 Constructor: Registers the object in the Tickable-list. More...
 
- Protected Attributes inherited from orxonox::OrxonoxOverlay
Degree angle_
 Rotation angle of the overlay. More...
 
Ogre::PanelOverlayElement * background_
 Background image (blank per default). More...
 
bool bCorrectAspect_
 Whether or not to correct the size. More...
 
Ogre::Overlay * overlay_
 The overlay the entire class is about. More...
 
Vector2 pickPoint_
 Point on the overlay to pick when translating. More...
 
Vector2 position_
 Position of the pickPoint on the screen. More...
 
RotationState rotState_
 horizontal, vertical or inbetween More...
 
Vector2 size_
 Internal size of the overlay. More...
 
Vector2 sizeCorrection_
 Value to correct the size because of the window aspect. More...
 
float windowAspectRatio_
 Screen.width / screen.height. More...
 
- Protected Attributes inherited from orxonox::BaseObject
mbool bActive_
 True = the object is active. More...
 
mbool bVisible_
 True = the object is visible. More...
 
FunctorPtr mainStateFunctor_
 
std::string mainStateName_
 
std::string name_
 The name of the object. More...
 
std::set< std::string > networkTemplateNames_
 
std::string oldName_
 The old name of the object. More...
 

Constructor & Destructor Documentation

orxonox::HUDNavigation::HUDNavigation ( Context context)
orxonox::HUDNavigation::~HUDNavigation ( )
virtual

Member Function Documentation

void orxonox::HUDNavigation::addObject ( RadarViewable object)
overridevirtual
virtual void orxonox::HUDNavigation::angleChanged ( )
inlineoverridevirtual

Called whenever the rotation angle has changed.

Reimplemented from orxonox::OrxonoxOverlay.

void orxonox::HUDNavigation::changedOwner ( )
overridevirtual

Reimplemented from orxonox::OrxonoxOverlay.

float orxonox::HUDNavigation::getAimMarkerSize ( ) const
inlineprivate
float orxonox::HUDNavigation::getArrowSizeX ( int  dist) const
private
float orxonox::HUDNavigation::getArrowSizeY ( int  dist) const
private
float orxonox::HUDNavigation::getDetectionLimit ( ) const
inlineprivate
const std::string & orxonox::HUDNavigation::getFont ( ) const
private
float orxonox::HUDNavigation::getHealthLevelMarkerSize ( ) const
inlineprivate
float orxonox::HUDNavigation::getHealthMarkerSize ( ) const
inlineprivate
unsigned int orxonox::HUDNavigation::getMarkerLimit ( ) const
inline
float orxonox::HUDNavigation::getNavMarkerSize ( ) const
inlineprivate
virtual float orxonox::HUDNavigation::getRadarSensitivity ( ) const
inlineoverridevirtual
float orxonox::HUDNavigation::getTextSize ( ) const
private
void orxonox::HUDNavigation::objectChanged ( RadarViewable viewable)
overridevirtual
virtual void orxonox::HUDNavigation::positionChanged ( )
inlineoverridevirtual

Determines the position of the overlay.

This works also well when a rotation angle is applied. The overlay always gets aligned correctly as well as possible.

Reimplemented from orxonox::OrxonoxOverlay.

virtual void orxonox::HUDNavigation::radarTick ( float  dt)
inlineoverridevirtual
void orxonox::HUDNavigation::removeObject ( RadarViewable viewable)
overridevirtual
void orxonox::HUDNavigation::selectClosestTarget ( )
static
void orxonox::HUDNavigation::selectNextTarget ( )
static
void orxonox::HUDNavigation::setAimMarkerSize ( float  size)
inlineprivate
void orxonox::HUDNavigation::setConfigValues ( void  )
void orxonox::HUDNavigation::setDetectionLimit ( float  limit)
inlineprivate
void orxonox::HUDNavigation::setFont ( const std::string &  font)
private
void orxonox::HUDNavigation::setHealthLevelMarkerSize ( float  size)
inlineprivate
void orxonox::HUDNavigation::setHealthMarkerSize ( float  size)
inlineprivate
void orxonox::HUDNavigation::setNavMarkerSize ( float  size)
inlineprivate
void orxonox::HUDNavigation::setTextSize ( float  size)
private
bool orxonox::HUDNavigation::showObject ( RadarViewable rv)
private
void orxonox::HUDNavigation::sizeChanged ( )
overridevirtual

Overridden method of OrxonoxOverlay.

Usually the entire overlay scales with scale(). Here we obviously have to adjust this.

Reimplemented from orxonox::OrxonoxOverlay.

void orxonox::HUDNavigation::tick ( float  dt)
overridevirtual

Gets called every frame.

Parameters
dtThe time since the last frame in seconds

Reimplemented from orxonox::Tickable.

Vector3 orxonox::HUDNavigation::toAimPosition ( RadarViewable target) const
private
void orxonox::HUDNavigation::XMLPort ( Element &  xmlelement,
XMLPort::Mode  mode 
)
overridevirtual

Loads the OrxonoxOverlay.

This has to be called before usage, otherwise strange behaviour is guaranteed! (there should be no segfaults however). XML loading and saving.

Parameters
xmlelementThe XML-element
modeThe mode defines the operation that is being executed: loading or saving the object (from or to XML respectively)

Reimplemented from orxonox::OrxonoxOverlay.

Member Data Documentation

std::map<RadarViewable*, ObjectInfo> orxonox::HUDNavigation::activeObjectList_
private
float orxonox::HUDNavigation::aimMarkerSize_
private
bool orxonox::HUDNavigation::closestTarget_
private
float orxonox::HUDNavigation::currentMunitionSpeed_
private
float orxonox::HUDNavigation::detectionLimit_
private

Objects that are more far away than detectionLimit_ are not displayed on the HUD. 10000.0f is the default value.

std::string orxonox::HUDNavigation::fontName_
private
float orxonox::HUDNavigation::healthLevelMarkerSize_
private
float orxonox::HUDNavigation::healthMarkerSize_
private
HUDNavigation * orxonox::HUDNavigation::localHUD_s = nullptr
staticprivate

This is used as a filter. Only the local HUD should be influenced by the static Console Command functions.

unsigned int orxonox::HUDNavigation::markerLimit_
private
float orxonox::HUDNavigation::navMarkerSize_
private
bool orxonox::HUDNavigation::nextTarget_
private
RadarViewable* orxonox::HUDNavigation::selectedTarget_
private
bool orxonox::HUDNavigation::showDistance_
private
std::list<std::pair<RadarViewable*, unsigned int> > orxonox::HUDNavigation::sortedObjectList_
private
float orxonox::HUDNavigation::textSize_
private

The documentation for this class was generated from the following files: