Visualization Library v1.0.3

A lightweight C++ OpenGL middleware for 2D/3D graphics

VL     Star     Watch     Fork     Issue

[Download] [Tutorials] [All Classes] [Grouped Classes]
Public Member Functions | Protected Member Functions | Protected Attributes

vl::Text Class Reference

A Renderable that renders text with a given Font. More...

#include <Text.hpp>

Inheritance diagram for vl::Text:
vl::Renderable vl::Object

List of all members.

Public Member Functions

 Text ()
const Stringtext () const
void setText (const String &text)
const fvec4color () const
void setColor (const fvec4 &color)
const fvec4borderColor () const
void setBorderColor (const fvec4 &border_color)
const fvec4outlineColor () const
void setOutlineColor (const fvec4 &outline_color)
const fvec4backgroundColor () const
void setBackgroundColor (const fvec4 &background_color)
const fvec4shadowColor () const
void setShadowColor (const fvec4 &shadow_color)
const fvec2shadowVector () const
void setShadowVector (const fvec2 &shadow_vector)
int margin () const
void setMargin (int margin)
const Fontfont () const
Fontfont ()
void setFont (Font *font)
const fmat4 matrix () const
void setMatrix (const fmat4 &matrix)
int alignment () const
void setAlignment (int align)
int viewportAlignment () const
void setViewportAlignment (int align)
float interlineSpacing () const
void setInterlineSpacing (float spacing)
ETextMode mode () const
void setMode (ETextMode mode)
ETextLayout layout () const
void setLayout (ETextLayout layout)
ETextAlign textAlignment () const
void setTextAlignment (ETextAlign align)
bool borderEnabled () const
void setBorderEnabled (bool border)
bool backgroundEnabled () const
void setBackgroundEnabled (bool background)
bool kerningEnabled () const
void setKerningEnabled (bool kerning)
bool outlineEnabled () const
void setOutlineEnabled (bool outline)
bool shadowEnabled () const
void setShadowEnabled (bool shadow)
virtual void render_Implementation (const Actor *actor, const Shader *shader, const Camera *camera, OpenGLContext *gl_context) const
void computeBounds_Implementation ()
AABB boundingRect () const
 Returns the plain 2D bounding box of the text, without taking into consideration the Text's matrix transform and the eventual actor's transform.
AABB boundingRect (const String &text) const
AABB boundingRectTransformed (vec3 &a, vec3 &b, vec3 &c, vec3 &d, const Camera *camera, const Actor *actor=NULL) const
AABB boundingRectTransformed (const Camera *camera, const Actor *actor=NULL) const
 Returns the fully transformed bounding box.
void translate (float x, float y, float z)
void rotate (float degrees, float x, float y, float z)
void resetMatrix ()
virtual void updateDirtyBufferObject (EBufferObjectUpdateMode)
 Uploads the data stored in the local buffers on the GPU memory.
virtual void deleteBufferObject ()
 Destroys the BufferObject (vertex buffer objects) associated to this a Renderable.

Protected Member Functions

void renderText (const Actor *, const Camera *camera, const fvec4 &color, const fvec2 &offset) const
void renderBackground (const Actor *actor, const Camera *camera) const
void renderBorder (const Actor *actor, const Camera *camera) const
AABB rawboundingRect (const String &text) const

Protected Attributes

ref< FontmFont
String mText
fvec4 mColor
fvec4 mBorderColor
fvec4 mBackgroundColor
fvec4 mOutlineColor
fvec4 mShadowColor
fvec2 mShadowVector
fmat4 mMatrix
float mInterlineSpacing
int mAlignment
int mViewportAlignment
int mMargin
ETextMode mMode
ETextLayout mLayout
ETextAlign mTextAlignment
bool mBorderEnabled
bool mBackgroundEnabled
bool mOutlineEnabled
bool mShadowEnabled
bool mKerningEnabled

Detailed Description

A Renderable that renders text with a given Font.

See also:

Definition at line 50 of file Text.hpp.


Constructor & Destructor Documentation

vl::Text::Text (  ) [inline]

Definition at line 55 of file Text.hpp.

References VL_DEBUG_SET_OBJECT_NAME.


Member Function Documentation

const String& vl::Text::text (  ) const [inline]

Definition at line 62 of file Text.hpp.

Referenced by boundingRect(), render_Implementation(), and renderText().

void vl::Text::setText ( const String text ) [inline]

Definition at line 63 of file Text.hpp.

const fvec4& vl::Text::color (  ) const [inline]

Definition at line 65 of file Text.hpp.

Referenced by render_Implementation().

void vl::Text::setColor ( const fvec4 color ) [inline]

Definition at line 66 of file Text.hpp.

Referenced by vl::VolumePlot::VolumePlot().

const fvec4& vl::Text::borderColor (  ) const [inline]

Definition at line 68 of file Text.hpp.

void vl::Text::setBorderColor ( const fvec4 border_color ) [inline]

Definition at line 69 of file Text.hpp.

const fvec4& vl::Text::outlineColor (  ) const [inline]

Definition at line 71 of file Text.hpp.

Referenced by render_Implementation().

void vl::Text::setOutlineColor ( const fvec4 outline_color ) [inline]

Definition at line 72 of file Text.hpp.

const fvec4& vl::Text::backgroundColor (  ) const [inline]

Definition at line 74 of file Text.hpp.

void vl::Text::setBackgroundColor ( const fvec4 background_color ) [inline]

Definition at line 75 of file Text.hpp.

const fvec4& vl::Text::shadowColor (  ) const [inline]

Definition at line 77 of file Text.hpp.

Referenced by render_Implementation().

void vl::Text::setShadowColor ( const fvec4 shadow_color ) [inline]

Definition at line 78 of file Text.hpp.

const fvec2& vl::Text::shadowVector (  ) const [inline]

Definition at line 80 of file Text.hpp.

Referenced by render_Implementation().

void vl::Text::setShadowVector ( const fvec2 shadow_vector ) [inline]

Definition at line 81 of file Text.hpp.

int vl::Text::margin (  ) const [inline]

Definition at line 83 of file Text.hpp.

Referenced by boundingRect(), rawboundingRect(), and renderText().

void vl::Text::setMargin ( int  margin ) [inline]

Definition at line 84 of file Text.hpp.

const Font* vl::Text::font (  ) const [inline]
Font* vl::Text::font (  ) [inline]

Definition at line 87 of file Text.hpp.

void vl::Text::setFont ( Font font ) [inline]

Definition at line 88 of file Text.hpp.

Referenced by vl::VectorGraphics::drawText().

const fmat4 vl::Text::matrix (  ) const [inline]

Definition at line 90 of file Text.hpp.

void vl::Text::setMatrix ( const fmat4 matrix ) [inline]

Definition at line 91 of file Text.hpp.

int vl::Text::alignment (  ) const [inline]

Definition at line 93 of file Text.hpp.

Referenced by boundingRect(), and renderText().

void vl::Text::setAlignment ( int  align ) [inline]

Definition at line 94 of file Text.hpp.

int vl::Text::viewportAlignment (  ) const [inline]

Definition at line 96 of file Text.hpp.

Referenced by boundingRectTransformed(), and renderText().

void vl::Text::setViewportAlignment ( int  align ) [inline]

Definition at line 97 of file Text.hpp.

float vl::Text::interlineSpacing (  ) const [inline]

Definition at line 99 of file Text.hpp.

void vl::Text::setInterlineSpacing ( float  spacing ) [inline]

Definition at line 100 of file Text.hpp.

ETextMode vl::Text::mode (  ) const [inline]

Definition at line 102 of file Text.hpp.

Referenced by boundingRectTransformed(), renderBackground(), renderBorder(), and renderText().

void vl::Text::setMode ( ETextMode  mode ) [inline]

Definition at line 103 of file Text.hpp.

ETextLayout vl::Text::layout (  ) const [inline]

Definition at line 105 of file Text.hpp.

Referenced by rawboundingRect(), and renderText().

void vl::Text::setLayout ( ETextLayout  layout ) [inline]

Definition at line 106 of file Text.hpp.

ETextAlign vl::Text::textAlignment (  ) const [inline]

Definition at line 108 of file Text.hpp.

Referenced by renderText().

void vl::Text::setTextAlignment ( ETextAlign  align ) [inline]

Definition at line 109 of file Text.hpp.

bool vl::Text::borderEnabled (  ) const [inline]

Definition at line 111 of file Text.hpp.

Referenced by boundingRect(), render_Implementation(), and renderText().

void vl::Text::setBorderEnabled ( bool  border ) [inline]

Definition at line 112 of file Text.hpp.

bool vl::Text::backgroundEnabled (  ) const [inline]

Definition at line 114 of file Text.hpp.

Referenced by boundingRect(), render_Implementation(), and renderText().

void vl::Text::setBackgroundEnabled ( bool  background ) [inline]

Definition at line 115 of file Text.hpp.

bool vl::Text::kerningEnabled (  ) const [inline]

Definition at line 117 of file Text.hpp.

Referenced by rawboundingRect(), and renderText().

void vl::Text::setKerningEnabled ( bool  kerning ) [inline]

Definition at line 118 of file Text.hpp.

bool vl::Text::outlineEnabled (  ) const [inline]

Definition at line 120 of file Text.hpp.

Referenced by render_Implementation().

void vl::Text::setOutlineEnabled ( bool  outline ) [inline]

Definition at line 121 of file Text.hpp.

bool vl::Text::shadowEnabled (  ) const [inline]

Definition at line 123 of file Text.hpp.

Referenced by render_Implementation().

void vl::Text::setShadowEnabled ( bool  shadow ) [inline]

Definition at line 124 of file Text.hpp.

void Text::render_Implementation ( const Actor actor,
const Shader shader,
const Camera camera,
OpenGLContext gl_context 
) const [virtual]
void vl::Text::computeBounds_Implementation (  ) [inline, virtual]

Implements vl::Renderable.

Definition at line 127 of file Text.hpp.

AABB Text::boundingRect (  ) const

Returns the plain 2D bounding box of the text, without taking into consideration the Text's matrix transform and the eventual actor's transform.

Definition at line 812 of file Text.cpp.

References text().

Referenced by boundingRectTransformed().

AABB Text::boundingRect ( const String text ) const
AABB Text::boundingRectTransformed ( vec3 a,
vec3 b,
vec3 c,
vec3 d,
const Camera camera,
const Actor actor = NULL 
) const
AABB Text::boundingRectTransformed ( const Camera camera,
const Actor actor = NULL 
) const

Returns the fully transformed bounding box.

actor is needed only if you are using the actor's transform with the Text2D to make the Text2D text follow the actor on the screen or you are using the Text3D to make the text follow the actor's transform in 3D.

The layout of the a, b, c and d points is the following:

d---------c
| |
| |
a---------b

Of course the above layout can be scaled, flipped, rotated and so on according to the given Text's matrix.

Definition at line 888 of file Text.cpp.

References boundingRectTransformed().

void Text::translate ( float  x,
float  y,
float  z 
)

Definition at line 1007 of file Text.cpp.

References mMatrix, and vl::Matrix4< T_Scalar >::translate().

void Text::rotate ( float  degrees,
float  x,
float  y,
float  z 
)

Definition at line 1012 of file Text.cpp.

References mMatrix, and vl::Matrix4< T_Scalar >::rotate().

void Text::resetMatrix (  )

Definition at line 1017 of file Text.cpp.

References mMatrix, and vl::Matrix4< T_Scalar >::setIdentity().

virtual void vl::Text::updateDirtyBufferObject ( EBufferObjectUpdateMode   ) [inline, virtual]

Uploads the data stored in the local buffers on the GPU memory.

If 'discard_local_data' is set to true the memory used by the local buffers is released.

Implements vl::Renderable.

Definition at line 139 of file Text.hpp.

virtual void vl::Text::deleteBufferObject (  ) [inline, virtual]

Destroys the BufferObject (vertex buffer objects) associated to this a Renderable.

Note:
This function does not touch the local (non GPU) data stored in the buffers associated to the vertex attributes and DrawCall.

Implements vl::Renderable.

Definition at line 141 of file Text.hpp.

void Text::renderText ( const Actor actor,
const Camera camera,
const fvec4 color,
const fvec2 offset 
) const [protected]

Definition at line 145 of file Text.cpp.

References vl::Vector4< T_Scalar >::a(), vl::Glyph::advance(), vl::AlignBottom, vl::AlignHCenter, vl::AlignLeft, alignment(), vl::AlignRight, vl::AlignTop, vl::AlignVCenter, vl::Vector4< T_Scalar >::b(), backgroundEnabled(), borderEnabled(), vl::Matrix4< T_Scalar >::e(), vl::Log::error(), font(), vl::Vector4< T_Scalar >::g(), vl::Matrix4< float >::getOrtho(), vl::Glyph::glyphIndex(), vl::Glyph::height(), vl::Viewport::height(), kerningEnabled(), layout(), vl::Glyph::left(), vl::LeftToRightText, vl::String::length(), vl::length(), margin(), vl::AABB::maxCorner(), mFont, vl::AABB::minCorner(), mMatrix, mode(), vl::Camera::project(), vl::Vector4< T_Scalar >::ptr(), vl::Matrix4< T_Scalar >::ptr(), vl::Vector4< T_Scalar >::r(), rawboundingRect(), vl::RightToLeftText, vl::Glyph::s0(), vl::Glyph::s1(), vl::Glyph::t0(), vl::Glyph::t1(), text(), vl::Text2D, vl::TextAlignCenter, vl::TextAlignJustify, vl::TextAlignLeft, textAlignment(), vl::TextAlignRight, vl::Glyph::textureHandle(), vl::Glyph::top(), vl::Actor::transform(), vl::Matrix4< T_Scalar >::translate(), vl::Camera::viewport(), viewportAlignment(), VL_CHECK, VL_CHECK_OGL, VL_TRAP, vl::Glyph::width(), vl::AABB::width(), vl::Viewport::width(), vl::Transform::worldMatrix(), vl::Vector4< T_Scalar >::x(), vl::Vector2< T_Scalar >::x(), vl::Vector3< T_Scalar >::x(), vl::Viewport::x(), vl::Vector4< T_Scalar >::y(), vl::Vector2< T_Scalar >::y(), vl::Vector3< T_Scalar >::y(), vl::Viewport::y(), vl::Vector4< T_Scalar >::z(), and vl::Vector3< T_Scalar >::z().

Referenced by render_Implementation().

void Text::renderBackground ( const Actor actor,
const Camera camera 
) const [protected]
void Text::renderBorder ( const Actor actor,
const Camera camera 
) const [protected]
AABB Text::rawboundingRect ( const String text ) const [protected]

Member Data Documentation

ref<Font> vl::Text::mFont [mutable, protected]

Definition at line 150 of file Text.hpp.

Referenced by rawboundingRect(), and renderText().

String vl::Text::mText [protected]

Definition at line 151 of file Text.hpp.

fvec4 vl::Text::mColor [protected]

Definition at line 152 of file Text.hpp.

Definition at line 153 of file Text.hpp.

Referenced by renderBorder().

Definition at line 154 of file Text.hpp.

Referenced by renderBackground().

Definition at line 155 of file Text.hpp.

Definition at line 156 of file Text.hpp.

Definition at line 157 of file Text.hpp.

fmat4 vl::Text::mMatrix [protected]

Definition at line 158 of file Text.hpp.

Referenced by boundingRectTransformed(), renderText(), resetMatrix(), rotate(), and translate().

float vl::Text::mInterlineSpacing [protected]

Definition at line 159 of file Text.hpp.

int vl::Text::mAlignment [protected]

Definition at line 160 of file Text.hpp.

Definition at line 161 of file Text.hpp.

int vl::Text::mMargin [protected]

Definition at line 162 of file Text.hpp.

Definition at line 163 of file Text.hpp.

Definition at line 164 of file Text.hpp.

Definition at line 165 of file Text.hpp.

bool vl::Text::mBorderEnabled [protected]

Definition at line 166 of file Text.hpp.

bool vl::Text::mBackgroundEnabled [protected]

Definition at line 167 of file Text.hpp.

bool vl::Text::mOutlineEnabled [protected]

Definition at line 168 of file Text.hpp.

bool vl::Text::mShadowEnabled [protected]

Definition at line 169 of file Text.hpp.

bool vl::Text::mKerningEnabled [protected]

Definition at line 170 of file Text.hpp.


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

Visualization Library v1.0.3 Reference Documentation
Copyright Michele Bosi. All rights reserved.
Updated on Tue Feb 7 2017 00:55:12.
Permission is granted to use this page to write and publish articles regarding Visualization Library.