Game of Ur 0.3.3
This is a computer adaptation of Game of Ur, written in C++ mainly using SDL and OpenGL.
Loading...
Searching...
No Matches
UIText Class Reference

An aspect responsible for rendering text textures and displaying them on a surface in the scene. More...

#include <ui_text.hpp>

Inheritance diagram for UIText:
ToyMaker::SimObjectAspect< UIText > ToyMaker::BaseSimObjectAspect ToyMaker::SignalTracker ToyMaker::IActionHandler

Public Member Functions

 UIText ()
 Constructs a new UIText aspect.
 
std::shared_ptr< BaseSimObjectAspect > clone () const override
 Constructs a new UIText instance using this one as its blueprint.
 
void onActivated () override
 Renders the initial text associated with this object once it becomes a part of the active scene.
 
std::string getText () const
 Gets the actual text associated with this UIText object.
 
void updateText (const std::string &newText)
 Updates the text rendered by this object.
 
void updateColor (glm::u8vec4 newColour)
 Updates the color of the text rendered by this object.
 
void updateScale (float scale)
 Updates the scale of this object.
 
void updateFont (const std::string &textResourceName)
 Updates the font using which this object's text texture is rendered.
 
void updateAnchor (glm::vec2 anchor)
 Updates the point considered this object's origin, where (0,0) represents the top left corner of the object and (1,1) represents its bottom right corner.
 
- Public Member Functions inherited from ToyMaker::BaseSimObjectAspect
virtual ~BaseSimObjectAspect ()=default
 Destroys this object.
 
virtual void simulationUpdate (uint32_t simStepMillis)
 Overriding this allows an aspect to respond to simulation updates.
 
virtual void variableUpdate (uint32_t variableStepMillis)
 Overriding this allows an aspect to respond to variable updates.
 
bool handleAction (const ActionData &actionData, const ActionDefinition &actionDefinition) override final
 Pipes an action received from the InputManager via our SimObject to all that action's handler methods on this aspect.
 
ViewportNodegetLocalViewport ()
 Returns the closest ancestor viewport to this node, if one exists (which it should, since this shouldn't be called until this aspect is attached to an active SimObject).
 
- Public Member Functions inherited from ToyMaker::SignalTracker
 SignalTracker ()
 Constructs a new SignalTracker object.
 
 SignalTracker (const SignalTracker &other)
 Constructs a new SignalTracker.
 
SignalTrackeroperator= (const SignalTracker &other)
 Copy assignment operator.
 
 SignalTracker (SignalTracker &&other)
 Moves resources from another SignalTracker into this one, invalidating them from the other.
 
SignalTrackeroperator= (SignalTracker &&other)
 Moves resources from another SignalTracker into this one, destroying this tracker's resources in the process.
 
void connect (const std::string &theirSignal, const std::string &ourObserver, SignalTracker &other)
 Method that connects one of this objects SignalObservers to another tracker's Signal.
 

Static Public Member Functions

static std::string getSimObjectAspectTypeName ()
 Gets the aspect type string for this class.
 
static std::shared_ptr< BaseSimObjectAspect > create (const nlohmann::json &jsonAspectProperties)
 Creates a new UIText aspect based on its JSON description.
 

Private Member Functions

void recomputeTexture ()
 Recomputes the text texture and vertex offsets associated with this object based on its configuration.
 

Private Attributes

glm::u8vec4 mColor {0x00, 0x00, 0x00, 0xFF}
 The color associated with the text rendered by this object.
 
std::shared_ptr< ToyMaker::TextFontmFont {}
 The font used to render the text texture used by this object.
 
std::string mText {}
 The text displayed by this object on its associated StaticModel surface.
 
float mScale { 1e-2 }
 The scale, relative to the texture's dimensions, with which the object is made.
 
uint32_t mMaxWidthPixels { 0 }
 The width, in pixels, a single line of text is rendered on before it is wrapped around to the next line in the text texture.
 
glm::vec2 mAnchor {0.f, 0.f}
 The point considered the origin of this object, where (0,0) represents the top left hand corner, and (1,1) the bottom right corner.
 

Additional Inherited Members

- Protected Member Functions inherited from ToyMaker::SimObjectAspect< UIText >
 SimObjectAspect (int explicitlyInitializeMe)
 
- Protected Member Functions inherited from ToyMaker::BaseSimObjectAspect
 BaseSimObjectAspect (const BaseSimObjectAspect &other)=delete
 
 BaseSimObjectAspect (BaseSimObjectAspect &&other)=delete
 
SimObjectgetSimObject ()
 Returns the sim object that this aspect is attached to.
 
template<typename TComponent>
void addComponent (const TComponent &component)
 Adds a component of some type to the underlying entity.
 
template<typename TComponent>
bool hasComponent ()
 Tests whether a component of some specific type is present on the object.
 
template<typename TComponent>
void updateComponent (const TComponent &component)
 Updates the value of a component belonging to this object to a new one.
 
template<typename TComponent>
TComponent getComponent (const float simulationProgress=1.f) const
 Gets the value of a component belonging to this object.
 
template<typename TComponent>
void removeComponent ()
 Removes a component of some type belonging to the underlying SimObject.
 
void addAspect (const nlohmann::json &jsonAspectProperties)
 Adds a new aspect to the underlying SimObject constructed based on its properties in JSON.
 
void addAspect (const BaseSimObjectAspect &aspect)
 Adds a new aspect to the underlying SimObject copied from an already existing aspect.
 
template<typename TSimObjectAspect>
bool hasAspect () const
 Tests whether an aspect of a particular type is attached to the underlying SimObject.
 
bool hasAspect (const std::string &aspectType) const
 Tests whether an aspect of a particular type is attached to the underlying SimObject.
 
template<typename TSimObjectAspect>
TSimObjectAspect & getAspect ()
 Gets an aspect of a particular type belonging to the underlying SimObject.
 
BaseSimObjectAspectgetAspect (const std::string &aspectType)
 Gets (a base class reference to) an aspect of a particular type belonging to the underlying SimObject.
 
template<typename TSimObjectAspect>
void removeAspect ()
 Removes an aspect from the underlying SimObject.
 
void addOrReplaceAspect (const BaseSimObjectAspect &aspect)
 Adds or replaces an aspect on the underlying SimObject with a new aspect constructed as a copy of another.
 
void addOrReplaceAspect (const nlohmann::json &jsonAspectProperties)
 Adds or replaces an aspect on the underlying SimObject with a new aspect constructed from its JSON description.
 
std::weak_ptr< FixedActionBindingdeclareFixedActionBinding (const std::string &context, const std::string &action, std::function< bool(const ActionData &, const ActionDefinition &)>)
 Binds some method (or any function) present on this object to an action generated by the InputManager.
 
EntityID getEntityID () const
 Gets the ID of the ECSWorld Entity belonging to our SimObject.
 
std::weak_ptr< ECSWorldgetWorld () const
 Gets a weak reference to the ECSWorld to which our SimObject's entity belongs.
 
- Static Protected Member Functions inherited from ToyMaker::BaseSimObjectAspect
template<typename TSimObjectAspectDerived>
static void registerAspect ()
 Registers an implementation of an aspect with the SimSystem.
 

Detailed Description

An aspect responsible for rendering text textures and displaying them on a surface in the scene.

Member Function Documentation

◆ clone()

std::shared_ptr< ToyMaker::BaseSimObjectAspect > UIText::clone ( ) const
overridevirtual

Constructs a new UIText instance using this one as its blueprint.

Returns
std::shared_ptr<BaseSimObjectAspect> The newly constructed UIText instance.

Implements ToyMaker::BaseSimObjectAspect.

◆ create()

std::shared_ptr< ToyMaker::BaseSimObjectAspect > UIText::create ( const nlohmann::json & jsonAspectProperties)
static

Creates a new UIText aspect based on its JSON description.

Parameters
jsonAspectPropertiesThe json description of this UIText instance.
Returns
std::shared_ptr<BaseSimObjectAspect> The newly constructed UIText instance.

◆ getSimObjectAspectTypeName()

static std::string UIText::getSimObjectAspectTypeName ( )
inlinestatic

Gets the aspect type string for this class.

Returns
std::string This class' aspect type string.

◆ getText()

std::string UIText::getText ( ) const
inline

Gets the actual text associated with this UIText object.

Returns
std::string This object's display text.

◆ onActivated()

void UIText::onActivated ( )
overridevirtual

Renders the initial text associated with this object once it becomes a part of the active scene.

Reimplemented from ToyMaker::BaseSimObjectAspect.

◆ updateAnchor()

void UIText::updateAnchor ( glm::vec2 anchor)

Updates the point considered this object's origin, where (0,0) represents the top left corner of the object and (1,1) represents its bottom right corner.

Parameters
anchorThis object's new anchor.

◆ updateColor()

void UIText::updateColor ( glm::u8vec4 newColour)

Updates the color of the text rendered by this object.

Parameters
newColourThis object's display text's new colour.

◆ updateFont()

void UIText::updateFont ( const std::string & textResourceName)

Updates the font using which this object's text texture is rendered.

Parameters
textResourceNameThe new font's text texture resource name.

◆ updateScale()

void UIText::updateScale ( float scale)

Updates the scale of this object.

Parameters
scaleThe new scale for this text object.

◆ updateText()

void UIText::updateText ( const std::string & newText)

Updates the text rendered by this object.

Parameters
newTextThe new text used by this object.

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