OGRE 14.3
Object-Oriented Graphics Rendering Engine
|
Abstract definition of a 2D element to be displayed in an Overlay. More...
#include <OgreOverlayElement.h>
Public Member Functions | |
OverlayElement (const String &name) | |
Constructor: do not call direct, use OverlayManager::createElement. | |
virtual | ~OverlayElement () |
virtual void | _getClippingRegion (RealRect &clippingRegion) |
Gets the clipping region of the element. | |
virtual Real | _getDerivedLeft (void) |
Gets the 'left' position as derived from own left and that of parents. | |
virtual Real | _getDerivedTop (void) |
Gets the 'top' position as derived from own left and that of parents. | |
Real | _getHeight (void) const |
Gets the height of this element in relation to the screen (where 1.0 = screen height) | |
Real | _getLeft (void) const |
Gets the left of this element in relation to the screen (where 0 = far left, 1.0 = far right) | |
virtual Real | _getRelativeHeight (void) |
Gets the 'height' as derived from own height and metrics mode. | |
virtual Real | _getRelativeWidth (void) |
Gets the 'width' as derived from own width and metrics mode. | |
Real | _getTop (void) const |
Gets the top of this element in relation to the screen (where 0 = far top, 1.0 = far bottom) | |
Real | _getWidth (void) const |
Gets the width of this element in relation to the screen (where 1.0 = screen width) | |
virtual void | _notifyParent (OverlayContainer *parent, Overlay *overlay) |
Internal method for notifying the GUI element of it's parent and ultimate overlay. | |
virtual void | _notifyViewport () |
Internal method to notify the element when the viewport of parent overlay has changed. | |
virtual void | _notifyWorldTransforms (const Matrix4 &xform) |
Internal method to notify the element when it's world transform of parent overlay has changed. | |
virtual ushort | _notifyZOrder (ushort newZOrder) |
Internal method to notify the element when Z-order of parent overlay has changed. | |
virtual void | _positionsOutOfDate (void) |
Tell the object to recalculate. | |
virtual void | _releaseManualHardwareResources () |
Notifies that hardware resources were lost. | |
virtual void | _restoreManualHardwareResources () |
Notifies that hardware resources should be restored. | |
void | _setDimensions (Real width, Real height) |
Sets the width and height of this element in relation to the screen (where 1.0 = screen width/height) | |
void | _setHeight (Real height) |
Sets the height of this element in relation to the screen (where 1.0 = screen height) | |
void | _setLeft (Real left) |
Sets the left of this element in relation to the screen (where 1.0 = screen width) | |
void | _setParent (OverlayContainer *parent) |
void | _setPosition (Real left, Real top) |
Sets the left and top of this element in relation to the screen (where 1.0 = screen width/height) | |
void | _setTop (Real top) |
Sets the top of this element in relation to the screen (where 1.0 = screen height) | |
void | _setWidth (Real width) |
Sets the width of this element in relation to the screen (where 1.0 = screen width) | |
virtual void | _update (void) |
Internal method to update the element based on transforms applied. | |
virtual void | _updateFromParent (void) |
Updates this elements transform based on it's parent. | |
virtual void | _updateRenderQueue (RenderQueue *queue) |
Internal method to put the contents onto the render queue. | |
virtual OverlayElement * | clone (const String &instanceName) |
virtual bool | contains (Real x, Real y) const |
Returns true if xy is within the constraints of the component. | |
virtual void | copyFromTemplate (OverlayElement *templateOverlay) |
virtual OverlayElement * | findElementAt (Real x, Real y) |
Returns true if xy is within the constraints of the component. | |
const DisplayString & | getCaption (void) const |
Gets the caption for this element. | |
virtual const ColourValue & | getColour (void) const |
Gets the colour for this element. | |
Real | getHeight (void) const |
Gets the height of this element in relation to the current GuiMetricsMode. | |
GuiHorizontalAlignment | getHorizontalAlignment (void) const |
Gets the horizontal alignment for this element. | |
Real | getLeft (void) const |
Gets the left of this element in relation to the current GuiMetricsMode. | |
const LightList & | getLights (void) const override |
Gets a list of lights, ordered relative to how close they are to this renderable. | |
const MaterialPtr & | getMaterial (void) const override |
Retrieves a weak reference to the material this renderable object uses. | |
virtual const String & | getMaterialName (void) const |
Gets the name of the material this element uses. | |
GuiMetricsMode | getMetricsMode (void) const |
Retrieves the current settings of how the element metrics are interpreted. | |
const String & | getName (void) const |
Gets the name of this overlay. | |
OverlayContainer * | getParent () |
Returns the parent container. | |
Real | getSquaredViewDepth (const Camera *cam) const override |
Returns the squared distance between the camera and this renderable. | |
Real | getTop (void) const |
Gets the top of this element in relation to the current GuiMetricsMode (where 0 = top). | |
virtual const String & | getTypeName (void) const =0 |
Gets the type name of the element. | |
GuiVerticalAlignment | getVerticalAlignment (void) const |
Gets the vertical alignment for this element. | |
Real | getWidth (void) const |
Gets the width of this element in relation to the current GuiMetricsMode. | |
void | getWorldTransforms (Matrix4 *xform) const override |
Gets the world transform matrix / matrices for this renderable object. | |
ushort | getZOrder () const |
Returns the zOrder of the element. | |
void | hide (void) |
Hides this element if it was visible. | |
virtual void | initialise (void)=0 |
Initialise gui element. | |
bool | isCloneable () const |
virtual bool | isContainer () const |
returns false as this class is not a container type | |
bool | isEnabled () const |
virtual bool | isKeyEnabled () const |
bool | isVisible (void) const |
Returns whether or not the element is visible. | |
virtual void | setCaption (const DisplayString &text) |
Sets the caption on elements that support it. | |
void | setCloneable (bool c) |
virtual void | setColour (const ColourValue &col) |
Sets the colour on elements that support it. | |
void | setDimensions (Real width, Real height) |
Sets the dimensions of this element in relation to the current GuiMetricsMode. | |
void | setEnabled (bool b) |
void | setHeight (Real height) |
Sets the height of this element in relation to the current GuiMetricsMode. | |
virtual void | setHorizontalAlignment (GuiHorizontalAlignment gha) |
Sets the horizontal origin for this element. | |
void | setLeft (Real left) |
Sets the left of this element in relation to the current GuiMetricsMode. | |
void | setMaterial (const MaterialPtr &mat) |
Sets the the material this element will use. | |
void | setMaterialName (const String &matName, const String &group=DEFAULT_RESOURCE_GROUP) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
virtual void | setMetricsMode (GuiMetricsMode gmm) |
Tells this element how to interpret the position and dimension values it is given. | |
void | setPosition (Real left, Real top) |
Sets the position of the top-left corner in relation to the current GuiMetricsMode (where 0 = top). | |
void | setTop (Real Top) |
Sets the top of this element in relation to the current GuiMetricsMode (where 0 = top). | |
virtual void | setVerticalAlignment (GuiVerticalAlignment gva) |
Sets the vertical origin for this element. | |
void | setVisible (bool visible) |
Shows or hides this element. | |
void | setWidth (Real width) |
Sets the width of this element in relation to the current GuiMetricsMode. | |
void | show (void) |
Shows this element if it was hidden. | |
void | visitRenderables (Renderable::Visitor *visitor, bool debugRenderables=false) |
Method to allow a caller to abstractly iterate over the Renderable instances that this MovableObject will add to the render queue when asked, if any. | |
Public Member Functions inherited from Ogre::StringInterface | |
StringInterface () | |
virtual | ~StringInterface () |
Virtual destructor, see Effective C++. | |
void | copyParametersTo (StringInterface *dest) const |
Method for copying this object's parameters to another object. | |
ParamDictionary * | getParamDictionary (void) |
Retrieves the parameter dictionary for this class. | |
const ParamDictionary * | getParamDictionary (void) const |
String | getParameter (const String &name) const |
Generic parameter retrieval method. | |
const ParameterList & | getParameters (void) const |
Retrieves a list of parameters valid for this object. | |
bool | setParameter (const String &name, const String &value) |
Generic parameter setting method. | |
void | setParameterList (const NameValuePairList ¶mList) |
Generic multiple parameter setting method. | |
Public Member Functions inherited from Ogre::Renderable | |
Renderable () | |
virtual | ~Renderable () |
Virtual destructor needed as class has virtual methods. | |
uint16 | _getMaterialLodIndex () const |
virtual void | _updateCustomGpuParameter (const GpuProgramParameters::AutoConstantEntry &constantEntry, GpuProgramParameters *params) const |
Update a custom GpuProgramParameters constant which is derived from information only this Renderable knows. | |
virtual bool | getCastsShadows (void) const |
Method which reports whether this renderable would normally cast a shadow. | |
const Vector4f & | getCustomParameter (size_t index) const |
Gets the custom value associated with this Renderable at the given index. | |
virtual uint16 | getNumWorldTransforms (void) const |
Returns the number of world transform matrices this renderable requires. | |
bool | getPolygonModeOverrideable (void) const |
Gets whether this renderable's chosen detail level can be overridden (downgraded) by the camera setting. | |
virtual void | getRenderOperation (RenderOperation &op)=0 |
Gets the render operation required to send this object to the frame buffer. | |
virtual Technique * | getTechnique (void) const |
Retrieves a pointer to the Material Technique this renderable object uses. | |
bool | getUseIdentityProjection (void) const |
Returns whether or not to use an 'identity' projection. | |
bool | getUseIdentityView (void) const |
Returns whether or not to use an 'identity' view. | |
const Any & | getUserAny (void) const |
UserObjectBindings & | getUserObjectBindings () |
Class that provides convenient interface to establish a linkage between custom user application objects and Ogre core classes. | |
const UserObjectBindings & | getUserObjectBindings () const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
bool | hasCustomParameter (size_t index) const |
Checks whether a custom value is associated with this Renderable at the given index. | |
virtual void | postRender (SceneManager *sm, RenderSystem *rsys) |
Called immediately after the Renderable has been rendered. | |
virtual bool | preRender (SceneManager *sm, RenderSystem *rsys) |
Called just prior to the Renderable being rendered. | |
void | removeCustomParameter (size_t index) |
Removes a custom value which is associated with this Renderable at the given index. | |
void | setCustomParameter (size_t index, const Vector4f &value) |
Sets a custom parameter for this Renderable, which may be used to drive calculations for this specific Renderable, like GPU program parameters. | |
void | setPolygonModeOverrideable (bool override) |
Sets whether this renderable's chosen detail level can be overridden (downgraded) by the camera setting. | |
void | setUseIdentityProjection (bool useIdentityProjection) |
Sets whether or not to use an 'identity' projection. | |
void | setUseIdentityView (bool useIdentityView) |
Sets whether or not to use an 'identity' view. | |
void | setUserAny (const Any &anything) |
Static Public Attributes | |
static const String & | DEFAULT_RESOURCE_GROUP |
Additional Inherited Members | |
Public Types inherited from Ogre::Renderable | |
enum | { DEFAULT_PRIORITY = 100 } |
Static Public Member Functions inherited from Ogre::StringInterface | |
static void | cleanupDictionary () |
Cleans up the static 'msDictionary' required to reset Ogre, otherwise the containers are left with invalid pointers, which will lead to a crash as soon as one of the ResourceManager implementers (e.g. | |
Abstract definition of a 2D element to be displayed in an Overlay.
This class abstracts all the details of a 2D element which will appear in an overlay. In fact, not all OverlayElement instances can be directly added to an Overlay, only those which are OverlayContainer instances (a subclass of this class). OverlayContainer objects can contain any OverlayElement however. This is just to enforce some level of grouping on widgets.
Constructor: do not call direct, use OverlayManager::createElement.
|
virtual |
Initialise gui element.
Implemented in Ogre::BorderPanelOverlayElement, Ogre::OverlayContainer, Ogre::PanelOverlayElement, and Ogre::TextAreaOverlayElement.
Notifies that hardware resources were lost.
Reimplemented in Ogre::BorderPanelOverlayElement, Ogre::PanelOverlayElement, and Ogre::TextAreaOverlayElement.
Notifies that hardware resources should be restored.
Reimplemented in Ogre::BorderPanelOverlayElement, Ogre::PanelOverlayElement, and Ogre::TextAreaOverlayElement.
Returns whether or not the element is visible.
|
inline |
Sets the dimensions of this element in relation to the current GuiMetricsMode.
Sets the position of the top-left corner in relation to the current GuiMetricsMode (where 0 = top).
Sets the width of this element in relation to the current GuiMetricsMode.
Gets the width of this element in relation to the current GuiMetricsMode.
Sets the height of this element in relation to the current GuiMetricsMode.
Gets the height of this element in relation to the current GuiMetricsMode.
Sets the left of this element in relation to the current GuiMetricsMode.
Gets the left of this element in relation to the current GuiMetricsMode.
Sets the top of this element in relation to the current GuiMetricsMode (where 0 = top).
Gets the top of this element in relation to the current GuiMetricsMode (where 0 = top).
Gets the left of this element in relation to the screen (where 0 = far left, 1.0 = far right)
Gets the top of this element in relation to the screen (where 0 = far top, 1.0 = far bottom)
Gets the width of this element in relation to the screen (where 1.0 = screen width)
Gets the height of this element in relation to the screen (where 1.0 = screen height)
Sets the left of this element in relation to the screen (where 1.0 = screen width)
Sets the top of this element in relation to the screen (where 1.0 = screen height)
Sets the width of this element in relation to the screen (where 1.0 = screen width)
Sets the height of this element in relation to the screen (where 1.0 = screen height)
Sets the left and top of this element in relation to the screen (where 1.0 = screen width/height)
Sets the width and height of this element in relation to the screen (where 1.0 = screen width/height)
Gets the name of the material this element uses.
void Ogre::OverlayElement::setMaterial | ( | const MaterialPtr & | mat | ) |
Sets the the material this element will use.
Different elements will use different materials. One constant about them all though is that a Material used for a OverlayElement must have it's depth checking set to 'off', which means it always gets rendered on top. OGRE will set this flag for you if necessary. What it does mean though is that you should not use the same Material for rendering OverlayElements as standard scene objects. It's fine to use the same textures, just not the same Material.
void Ogre::OverlayElement::setMaterialName | ( | const String & | matName, |
const String & | group = DEFAULT_RESOURCE_GROUP |
||
) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
overridevirtual |
Retrieves a weak reference to the material this renderable object uses.
Note that the Renderable also has the option to override the getTechnique method to specify a particular Technique to use instead of the best one available.
Implements Ogre::Renderable.
Reimplemented in Ogre::TextAreaOverlayElement.
Gets the world transform matrix / matrices for this renderable object.
If the object has any derived transforms, these are expected to be up to date as long as all the SceneNode structures have been updated before this is called.
This method will populate transform with 1 matrix if it does not use GPU vertex blending. If it does use GPU vertex blending it will fill the passed in pointer with an array of matrices, the length being the value returned from getNumWorldTransforms.
Implements Ogre::Renderable.
Referenced by Ogre::BorderRenderable::getWorldTransforms().
Tell the object to recalculate.
Reimplemented in Ogre::OverlayContainer.
Internal method to update the element based on transforms applied.
Reimplemented in Ogre::BorderPanelOverlayElement, Ogre::OverlayContainer, and Ogre::TextAreaOverlayElement.
Updates this elements transform based on it's parent.
|
virtual |
Internal method for notifying the GUI element of it's parent and ultimate overlay.
Reimplemented in Ogre::OverlayContainer.
Gets the 'left' position as derived from own left and that of parents.
Gets the 'top' position as derived from own left and that of parents.
Gets the 'width' as derived from own width and metrics mode.
Gets the 'height' as derived from own height and metrics mode.
Gets the clipping region of the element.
Internal method to notify the element when Z-order of parent overlay has changed.
Overlays have explicit Z-orders. OverlayElements do not, they inherit the Z-order of the overlay, and the Z-order is incremented for every container nested within this to ensure that containers are displayed behind contained items. This method is used internally to notify the element of a change in final Z-order which is used to render the element.
Reimplemented in Ogre::OverlayContainer.
Internal method to notify the element when it's world transform of parent overlay has changed.
Reimplemented in Ogre::OverlayContainer.
Internal method to notify the element when the viewport of parent overlay has changed.
Reimplemented in Ogre::OverlayContainer.
|
virtual |
Internal method to put the contents onto the render queue.
Reimplemented in Ogre::BorderPanelOverlayElement, Ogre::OverlayContainer, and Ogre::PanelOverlayElement.
void Ogre::OverlayElement::visitRenderables | ( | Renderable::Visitor * | visitor, |
bool | debugRenderables = false |
||
) |
Method to allow a caller to abstractly iterate over the Renderable instances that this MovableObject will add to the render queue when asked, if any.
visitor | Pointer to a class implementing the Renderable::Visitor interface which will be called back for each Renderable which will be queued. Bear in mind that the state of the Renderable instances may not be finalised depending on when you call this. |
debugRenderables | If false, only regular renderables will be visited (those for normal display). If true, debug renderables will be included too. |
Gets the type name of the element.
All concrete subclasses must implement this.
Implemented in Ogre::BorderPanelOverlayElement, Ogre::PanelOverlayElement, and Ogre::TextAreaOverlayElement.
|
virtual |
Sets the caption on elements that support it.
This property doesn't do something on all elements, just those that support it. However, being a common requirement it is in the top-level interface to avoid having to set it via the StringInterface all the time.
Reimplemented in Ogre::TextAreaOverlayElement.
|
inline |
Gets the caption for this element.
|
virtual |
Sets the colour on elements that support it.
This property doesn't do something on all elements, just those that support it. However, being a common requirement it is in the top-level interface to avoid having to set it via the StringInterface all the time.
Reimplemented in Ogre::TextAreaOverlayElement.
|
virtual |
Gets the colour for this element.
Reimplemented in Ogre::TextAreaOverlayElement.
|
virtual |
Tells this element how to interpret the position and dimension values it is given.
By default, OverlayElements are positioned and sized according to relative dimensions of the screen. This is to ensure portability between different resolutions when you want things to be positioned and sized the same way across all resolutions. However, sometimes you want things to be sized according to fixed pixels. In order to do this, you can call this method with the parameter GMM_PIXELS. Note that if you then want to place your element relative to the center, right or bottom of it's parent, you will need to use the setHorizontalAlignment and setVerticalAlignment methods.
Reimplemented in Ogre::BorderPanelOverlayElement, and Ogre::TextAreaOverlayElement.
|
inline |
Retrieves the current settings of how the element metrics are interpreted.
|
virtual |
Sets the horizontal origin for this element.
By default, the horizontal origin for a OverlayElement is the left edge of the parent container (or the screen if this is a root element). You can alter this by calling this method, which is especially useful when you want to use pixel-based metrics (see setMetricsMode) since in this mode you can't use relative positioning.
|
inline |
Gets the horizontal alignment for this element.
|
virtual |
Sets the vertical origin for this element.
By default, the vertical origin for a OverlayElement is the top edge of the parent container (or the screen if this is a root element). You can alter this by calling this method, which is especially useful when you want to use pixel-based metrics (see setMetricsMode) since in this mode you can't use relative positioning.
|
inline |
Gets the vertical alignment for this element.
Returns true if xy is within the constraints of the component.
|
virtual |
Returns true if xy is within the constraints of the component.
Reimplemented in Ogre::OverlayContainer.
returns false as this class is not a container type
Reimplemented in Ogre::OverlayContainer.
|
inline |
|
inline |
Returns the parent container.
|
inline |
|
inline |
Returns the zOrder of the element.
Returns the squared distance between the camera and this renderable.
Used to sort transparent objects. Squared distance is used to avoid having to perform a square root on the result.
Implements Ogre::Renderable.
Referenced by Ogre::BorderRenderable::getSquaredViewDepth().
Gets a list of lights, ordered relative to how close they are to this renderable.
Directional lights, which have no position, will always be first on this list.
Implements Ogre::Renderable.
|
inlinevirtual |
Reimplemented in Ogre::OverlayContainer.
|
virtual |
Reimplemented in Ogre::OverlayContainer.