MezzanineEngine 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
Mezzanine::UI::RenderLayer Class Referenceabstract

This is the base class for the types of layers that can be added to a renderable. More...

#include <renderlayer.h>

+ Inheritance diagram for Mezzanine::UI::RenderLayer:
+ Collaboration diagram for Mezzanine::UI::RenderLayer:

Public Types

enum  RenderLayerType { RLT_Image, RLT_MultiLineText, RLT_SingleLineText }
 This enum describes the type of RenderLayer this is for use in casting.
 

Public Member Functions

virtual ~RenderLayer ()
 Class destructor.
 
virtual void _MarkDirty ()
 Marks this renderable as well as all parent objects as dirty. More...
 
virtual void _UpdateIndex (const Whole Index)
 Notifies this RenderLayer that it's index in the parent QuadRenderable has been updated. More...
 
virtual Rect GetAreaRect () const
 Gets a rect containing the actual position and size of this layer. More...
 
virtual String GetDerivedSerializableName () const
 Gets the most derived serializable name of this Renderable. More...
 
virtual Whole GetIndex () const
 Gets the index position of this RenderLayer in it's parent. More...
 
virtual RenderLayerType GetLayerType () const =0
 Gets the type of render layer this is. More...
 
virtual QuadRenderableGetParent () const
 Gets the parent of this render layer. More...
 
virtual Real GetRotationDegrees () const
 Gets the current rotation applied to this renderable in degrees. More...
 
virtual Real GetRotationRadians () const
 Gets the current rotation applied to this renderable in radians. More...
 
virtual Vector2 GetScale () const
 Gets the scaling currently applied to this render layer. More...
 
virtual ScreenGetScreen () const
 Gets the screen the parent renderable is being rendered on. More...
 
virtual void NotifyActive ()
 Notifies this RenderLayer that the group this layer belongs to has become the active group. More...
 
virtual void NotifyInactive ()
 Notifies this RenderLayer that the group this layer belongs to is no longer the active group. More...
 
virtual void ProtoDeSerializeProperties (const XML::Node &SelfRoot)
 Take the data stored in an XML Node and overwrite the properties of this object with it. More...
 
virtual void ProtoSerializeProperties (XML::Node &SelfRoot) const
 Convert the properties of this class to an XML::Node ready for serialization. More...
 
virtual void SetRotationDegrees (const Real &Degrees)
 Sets the rotation to be applied to this renderable. More...
 
virtual void SetRotationRadians (const Real &Radians)
 Sets the rotation to be applied to this renderable. More...
 
virtual void SetScale (const Vector2 &Scaling)
 Sets the scaling to be applied to this render layer. More...
 

Static Public Member Functions

static String GetSerializableName ()
 Get the name of the the XML tag the Renderable class will leave behind as its instances are serialized. More...
 
- Static Public Member Functions inherited from Mezzanine::UI::QuadRenderer
static String GetSerializableName ()
 Get the name of the the XML tag the Renderable class will leave behind as its instances are serialized. More...
 
- Static Public Member Functions inherited from Mezzanine::UI::SimpleRenderer
static String GetSerializableName ()
 Get the name of the the XML tag the Renderable class will leave behind as its instances are serialized. More...
 

Protected Member Functions

 RenderLayer (QuadRenderable *ParentRenderable)
 Class constructor. More...
 
virtual void RotationTransform (Vector2 &Point, const Vector2 &RotationCenter)
 Applies rotation to a point in 2D space. More...
 
virtual void RotationTransform (Vector2 &TopLeft, Vector2 &TopRight, Vector2 &BottomLeft, Vector2 &BottomRight)
 Applies rotation to a quad in 2D space. More...
 
- Protected Member Functions inherited from Mezzanine::UI::QuadRenderer
 QuadRenderer ()
 Class constructor.
 
virtual ~QuadRenderer ()
 Class destructor.
 
virtual void PushQuad (Vector2 *Positions, Vector2 *UVs, ColourValue *Colours, const String &Atlas)
 Pushes vertex information for a quad to a vector. Equivalent to calling "PushTriangle" twice.
 
virtual void PushQuad2 (Vector2 *Positions, Vector2 *UVs, const ColourValue &Colour, const String &Atlas)
 Pushes vertex information for a quad to a vector. Equivalent to calling "PushTriangle" twice.
 
- Protected Member Functions inherited from Mezzanine::UI::SimpleRenderer
 SimpleRenderer ()
 Class constructor.
 
virtual ~SimpleRenderer ()
 Class destructor.
 
virtual void PushTriangle (const Vector2 &A, const Vector2 &B, const Vector2 &C, const Vector2 &UV, const ColourValue &Colour, const String &Atlas)
 Pushes vertex information for a triangle to a vector. Equivalent to calling "PushVertex" three times. More...
 
virtual void PushVertex (const Real &X, const Real &Y, const Vector2 &UV, const ColourValue &Colour, const String &Atlas)
 Collects all the relevant information for a single vertex and pushes it to a vector. More...
 
virtual void RedrawImpl (bool Force)=0
 Provides the class specific implementation for regenerating vertices for this renderable. More...
 

Protected Attributes

Whole IndexID
 Stores the index of this RenderLayer in it's parent QuadRenderable. More...
 
QuadRenderableParent
 A pointer to the parent of this RenderLayer. More...
 
Real RotAngle
 The amount of rotation to be applied to this RenderLayer in radians. More...
 
Vector2 Scale
 The scaling applied to this RenderLayer. More...
 

Detailed Description

This is the base class for the types of layers that can be added to a renderable.

Definition at line 59 of file renderlayer.h.

Constructor & Destructor Documentation

Mezzanine::UI::RenderLayer::RenderLayer ( QuadRenderable ParentRenderable)
protected

Class constructor.

Parameters
ParentRenderableThe renderable that created this layer.

Definition at line 52 of file renderlayer.cpp.

Member Function Documentation

void Mezzanine::UI::RenderLayer::_MarkDirty ( )
virtual

Marks this renderable as well as all parent objects as dirty.

Implements Mezzanine::UI::SimpleRenderer.

Definition at line 228 of file renderlayer.cpp.

void Mezzanine::UI::RenderLayer::_UpdateIndex ( const Whole  Index)
virtual

Notifies this RenderLayer that it's index in the parent QuadRenderable has been updated.

Parameters
IndexThe new index being given to this RenderLayer.

Definition at line 234 of file renderlayer.cpp.

Rect Mezzanine::UI::RenderLayer::GetAreaRect ( ) const
virtual

Gets a rect containing the actual position and size of this layer.

Returns
Returns a Rect containing the area of this layer in pixels.

Definition at line 113 of file renderlayer.cpp.

String Mezzanine::UI::RenderLayer::GetDerivedSerializableName ( ) const
virtual

Gets the most derived serializable name of this Renderable.

Note
When creating a new Renderable class verify this method has a valid return for it in order for serialization to work properly.
Returns
Returns the name of the XML tag from the most derived class of "this".

Reimplemented from Mezzanine::UI::QuadRenderer.

Reimplemented in Mezzanine::UI::TextLayer, Mezzanine::UI::ImageLayer, Mezzanine::UI::SingleLineTextLayer, and Mezzanine::UI::MultiLineTextLayer.

Definition at line 215 of file renderlayer.cpp.

Whole Mezzanine::UI::RenderLayer::GetIndex ( ) const
virtual

Gets the index position of this RenderLayer in it's parent.

Returns
Returns a Whole representing the index position of this RenderLayer in the parent QuadRenderable.

Definition at line 96 of file renderlayer.cpp.

virtual RenderLayerType Mezzanine::UI::RenderLayer::GetLayerType ( ) const
pure virtual

Gets the type of render layer this is.

Returns
Returns a RenderLayerType describing the type of layer this is.

Implemented in Mezzanine::UI::SingleLineTextLayer, Mezzanine::UI::MultiLineTextLayer, and Mezzanine::UI::ImageLayer.

QuadRenderable * Mezzanine::UI::RenderLayer::GetParent ( ) const
virtual

Gets the parent of this render layer.

Returns
Returns a pointer to the parent of this render layer.

Definition at line 162 of file renderlayer.cpp.

Real Mezzanine::UI::RenderLayer::GetRotationDegrees ( ) const
virtual

Gets the current rotation applied to this renderable in degrees.

Returns
Returns a Real with the current rotation.

Definition at line 149 of file renderlayer.cpp.

Real Mezzanine::UI::RenderLayer::GetRotationRadians ( ) const
virtual

Gets the current rotation applied to this renderable in radians.

Returns
Returns a Real with the current rotation.

Definition at line 154 of file renderlayer.cpp.

Vector2 Mezzanine::UI::RenderLayer::GetScale ( ) const
virtual

Gets the scaling currently applied to this render layer.

Returns
Returns a Vector2 containing the X and Y scaling applied to this render layer.

Definition at line 129 of file renderlayer.cpp.

Screen * Mezzanine::UI::RenderLayer::GetScreen ( ) const
virtual

Gets the screen the parent renderable is being rendered on.

Returns
Returns a pointer to the screen this layer belongs to.

Definition at line 167 of file renderlayer.cpp.

String Mezzanine::UI::RenderLayer::GetSerializableName ( )
static

Get the name of the the XML tag the Renderable class will leave behind as its instances are serialized.

Returns
A string containing the name of this class.

Definition at line 220 of file renderlayer.cpp.

void Mezzanine::UI::RenderLayer::NotifyActive ( )
virtual

Notifies this RenderLayer that the group this layer belongs to has become the active group.

Remarks
This shouldn't need to ever be called manually and is automatically called when a QuadRenderable sets the parent group as the active RenderLayerGroup. This method exists to reset the state of a layer (or group of layers) if necessary to achieve the visual effect desired.
Todo:
As settings are added that need may need to be modified, this method should be updated. Prime candidate for this is Animations.

Definition at line 101 of file renderlayer.cpp.

void Mezzanine::UI::RenderLayer::NotifyInactive ( )
virtual

Notifies this RenderLayer that the group this layer belongs to is no longer the active group.

Remarks
This shouldn't need to ever be called manually and is automatically called when a QuadRenderable removes the parent group as the active RenderLayerGroup. This method exists to reset the state of a layer (or group of layers) if necessary to achieve the visual effect desired.
Todo:
As settings are added that need may need to be modified, this method should be updated. Prime candidate for this is Animations.

Definition at line 107 of file renderlayer.cpp.

void Mezzanine::UI::RenderLayer::ProtoDeSerializeProperties ( const XML::Node SelfRoot)
virtual

Take the data stored in an XML Node and overwrite the properties of this object with it.

Parameters
SelfRootAn XML::Node containing the data to populate this class with.

Reimplemented from Mezzanine::UI::QuadRenderer.

Reimplemented in Mezzanine::UI::TextLayer, Mezzanine::UI::ImageLayer, Mezzanine::UI::SingleLineTextLayer, and Mezzanine::UI::MultiLineTextLayer.

Definition at line 192 of file renderlayer.cpp.

void Mezzanine::UI::RenderLayer::ProtoSerializeProperties ( XML::Node SelfRoot) const
virtual

Convert the properties of this class to an XML::Node ready for serialization.

Parameters
SelfRootThe root node containing all the serialized data for this instance.

Reimplemented from Mezzanine::UI::QuadRenderer.

Reimplemented in Mezzanine::UI::TextLayer, Mezzanine::UI::ImageLayer, Mezzanine::UI::SingleLineTextLayer, and Mezzanine::UI::MultiLineTextLayer.

Definition at line 175 of file renderlayer.cpp.

void Mezzanine::UI::RenderLayer::RotationTransform ( Vector2 Point,
const Vector2 RotationCenter 
)
protectedvirtual

Applies rotation to a point in 2D space.

Definition at line 64 of file renderlayer.cpp.

void Mezzanine::UI::RenderLayer::RotationTransform ( Vector2 TopLeft,
Vector2 TopRight,
Vector2 BottomLeft,
Vector2 BottomRight 
)
protectedvirtual

Applies rotation to a quad in 2D space.

Definition at line 81 of file renderlayer.cpp.

void Mezzanine::UI::RenderLayer::SetRotationDegrees ( const Real Degrees)
virtual

Sets the rotation to be applied to this renderable.

Parameters
DegreesThe angle of rotation in degrees.

Definition at line 137 of file renderlayer.cpp.

void Mezzanine::UI::RenderLayer::SetRotationRadians ( const Real Radians)
virtual

Sets the rotation to be applied to this renderable.

Parameters
RadiansThe angle of rotation in radians.

Definition at line 143 of file renderlayer.cpp.

void Mezzanine::UI::RenderLayer::SetScale ( const Vector2 Scaling)
virtual

Sets the scaling to be applied to this render layer.

Parameters
ScalingA Vector2 representing the X and Y scaling to be applied to this render layer.

Reimplemented in Mezzanine::UI::TextLayer.

Definition at line 120 of file renderlayer.cpp.

Member Data Documentation

Whole Mezzanine::UI::RenderLayer::IndexID
protected

Stores the index of this RenderLayer in it's parent QuadRenderable.

Definition at line 79 of file renderlayer.h.

QuadRenderable* Mezzanine::UI::RenderLayer::Parent
protected

A pointer to the parent of this RenderLayer.

Definition at line 76 of file renderlayer.h.

Real Mezzanine::UI::RenderLayer::RotAngle
protected

The amount of rotation to be applied to this RenderLayer in radians.

Definition at line 82 of file renderlayer.h.

Vector2 Mezzanine::UI::RenderLayer::Scale
protected

The scaling applied to this RenderLayer.

Definition at line 73 of file renderlayer.h.


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