Visualization Library 2.0.0
A lightweight C++ OpenGL middleware for 2D/3D graphics
|
[Download] [Tutorials] [All Classes] [Grouped Classes] |
A Renderable that renders text with a given Font. More...
#include <Text.hpp>
Public Member Functions | |
Text () | |
const String & | text () const |
void | setText (const String &text) |
const fvec4 & | color () const |
void | setColor (const fvec4 &color) |
const fvec4 & | borderColor () const |
void | setBorderColor (const fvec4 &border_color) |
const fvec4 & | outlineColor () const |
void | setOutlineColor (const fvec4 &outline_color) |
const fvec4 & | backgroundColor () const |
void | setBackgroundColor (const fvec4 &background_color) |
const fvec4 & | shadowColor () const |
void | setShadowColor (const fvec4 &shadow_color) |
const fvec2 & | shadowVector () const |
void | setShadowVector (const fvec2 &shadow_vector) |
int | margin () const |
void | setMargin (int margin) |
const Font * | font () const |
Font * | font () |
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. More... | |
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. More... | |
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. More... | |
virtual void | deleteBufferObject () |
Destroys the BufferObject (vertex buffer objects) associated to this a Renderable. More... | |
Public Member Functions inherited from vl::Renderable | |
Renderable () | |
Constructor. More... | |
virtual | ~Renderable () |
Destructor. More... | |
void | render (const Actor *actor, const Shader *shader, const Camera *camera, OpenGLContext *gl_context) |
Renders the Renderable and if necessary compiles the display list and updates the BufferObjects. More... | |
void | computeBounds () |
Recomputes the bounding box and bounding sphere of a Renderable. More... | |
long long | boundsUpdateTick () const |
Returns the bounds-update-tick which is a counter incremented every time the bounding box or bounding sphere is updated. More... | |
void | setBoundsDirty (bool dirty) |
Marks the bounding box and bounding sphere as dirty in order to be recomputed at the next rendering. More... | |
bool | boundsDirty () const |
Returns whether the bounding sphere or bounding box are "dirty", that is, meant to be recomputed. More... | |
void | setBoundingBox (const AABB &aabb) |
Sets the bounding box of a Renderable. More... | |
void | setBoundingSphere (const Sphere &sphere) |
Sets the bounding sphere of a Renderable. More... | |
const AABB & | boundingBox () const |
Returns the bounding box of a Renderable without recomputing the bounds if dirty. More... | |
const Sphere & | boundingSphere () const |
Returns the bounding sphere of a Renderable without recomputing the bounds if dirty. More... | |
const AABB & | boundingBox () |
Returns the bounding box of a Renderable recomputing the bounds if dirty. More... | |
const Sphere & | boundingSphere () |
Returns the bounding sphere of a Renderable recomputing the bounds if dirty. More... | |
unsigned int | displayList () const |
Returns the display list associated to a Renderable or 0 (zero) if no display list is associated. More... | |
void | setDisplayList (unsigned int disp_list) |
Manually assciates a display list to a Renderable (to be used with care). More... | |
bool | isDisplayListEnabled () const |
Returns true if display lists are enabled for a Renderable (disabled by default). More... | |
void | setDisplayListEnabled (bool enabled) |
Enable/disable display lists (disabled by default). More... | |
bool | displayListDirty () const |
Whether the display list associated to a Renderable should be recompiled at the next rendering. More... | |
void | setDisplayListDirty (bool dirty) |
Whether the display list associated to a Renderable should be recompiled at the next rendering. More... | |
bool | isBufferObjectEnabled () const |
Returns true if BufferObject (vertex buffer object) are enabled for a Renderable (enabled by default). More... | |
void | setBufferObjectEnabled (bool enabled) |
Enable/disable BufferObject (vertex buffer object) (enabled by default). More... | |
bool | isBufferObjectDirty () const |
Whether BufferObjects associated to a Renderable should be recomputed on the next rendering. More... | |
void | setBufferObjectDirty (bool dirty=true) |
Whether BufferObjects associated to a Renderable should be recomputed on the next rendering. More... | |
void | deleteDisplayList () |
Deletes the display list currently associated to a Renderable. More... | |
Public Member Functions inherited from vl::Object | |
Object () | |
Constructor. More... | |
Object (const Object &other) | |
Copy constructor: copies the name, ref count mutex and user data. More... | |
Object & | operator= (const Object &other) |
Copy operator: copies the object's name, ref count mutex and user data. More... | |
const std::string & | objectName () const |
The name of the object, by default set to the object's class name. More... | |
void | setObjectName (const char *name) |
The name of the object, by default set to the object's class name in debug builds. More... | |
void | setObjectName (const std::string &name) |
The name of the object, by default set to the object's class name in debug builds. More... | |
void | setRefCountMutex (IMutex *mutex) |
The mutex used to protect the reference counting of an Object across multiple threads. More... | |
IMutex * | refCountMutex () |
The mutex used to protect the reference counting of an Object across multiple threads. More... | |
const IMutex * | refCountMutex () const |
The mutex used to protect the reference counting of an Object across multiple threads. More... | |
int | referenceCount () const |
Returns the number of references of an object. More... | |
void | incReference () const |
Increments the reference count of an object. More... | |
void | decReference () |
Decrements the reference count of an object and deletes it if both automaticDelete() is true the count reaches 0. More... | |
void | setAutomaticDelete (bool autodel_on) |
If set to true the Object is deleted when its reference count reaches 0. More... | |
bool | automaticDelete () const |
If set to true the Object is deleted when its reference count reaches 0. More... | |
template<class T > | |
T * | as () |
Casts an Object to the specified class. More... | |
template<class T > | |
const T * | as () const |
Casts an Object to the specified class. More... | |
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 Member Functions inherited from vl::Object | |
virtual | ~Object () |
Protected Attributes | |
ref< Font > | mFont |
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 |
Protected Attributes inherited from vl::Object | |
std::string | mObjectName |
IMutex * | mRefCountMutex |
int | mReferenceCount |
bool | mAutomaticDelete |
A Renderable that renders text with a given Font.
|
inline |
Definition at line 93 of file Text.hpp.
Referenced by boundingRect(), and renderText().
|
inline |
Definition at line 114 of file Text.hpp.
Referenced by boundingRect(), render_Implementation(), and renderText().
|
inline |
Definition at line 111 of file Text.hpp.
Referenced by boundingRect(), render_Implementation(), and renderText().
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().
Definition at line 817 of file Text.cpp.
References vl::AlignBottom, vl::AlignHCenter, vl::AlignLeft, alignment(), vl::AlignRight, vl::AlignTop, vl::AlignVCenter, backgroundEnabled(), borderEnabled(), vl::AABB::height(), margin(), vl::max(), vl::AABB::maxCorner(), vl::min(), vl::AABB::minCorner(), rawboundingRect(), vl::AABB::setMaxCorner(), vl::AABB::setMinCorner(), VL_CHECK, vl::AABB::width(), vl::Vector3< T_Scalar >::x(), and vl::Vector3< T_Scalar >::y().
AABB Text::boundingRectTransformed | ( | vec3 & | a, |
vec3 & | b, | ||
vec3 & | c, | ||
vec3 & | d, | ||
const Camera * | camera, | ||
const Actor * | actor = NULL |
||
) | const |
Definition at line 894 of file Text.cpp.
References vl::AABB::addPoint(), vl::AlignBottom, vl::AlignHCenter, vl::AlignLeft, vl::AlignRight, vl::AlignTop, vl::AlignVCenter, boundingRect(), vl::Viewport::height(), vl::AABB::maxCorner(), vl::AABB::minCorner(), mMatrix, mode(), vl::Camera::project(), vl::AABB::setNull(), vl::Text2D, vl::Text3D, vl::Actor::transform(), vl::Matrix4< T_Scalar >::translate(), vl::Camera::viewport(), viewportAlignment(), VL_CHECK, vl::Viewport::width(), vl::Transform::worldMatrix(), vl::Viewport::x(), vl::Vector3< T_Scalar >::x(), vl::Vector4< T_Scalar >::x(), vl::Vector4< T_Scalar >::xyz(), vl::Viewport::y(), vl::Vector3< T_Scalar >::y(), vl::Vector4< T_Scalar >::y(), vl::Vector3< T_Scalar >::z(), and vl::Vector4< T_Scalar >::z().
Referenced by boundingRectTransformed(), renderBackground(), and renderBorder().
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().
|
inline |
Definition at line 65 of file Text.hpp.
Referenced by render_Implementation().
|
inlinevirtual |
Implements vl::Renderable.
Definition at line 127 of file Text.hpp.
References vl::degrees(), and NULL.
|
inlinevirtual |
Destroys the BufferObject (vertex buffer objects) associated to this a Renderable.
Implements vl::Renderable.
|
inline |
Definition at line 86 of file Text.hpp.
Referenced by vl::VectorGraphics::drawText(), rawboundingRect(), render_Implementation(), and renderText().
|
inline |
Definition at line 117 of file Text.hpp.
Referenced by rawboundingRect(), and renderText().
|
inline |
Definition at line 105 of file Text.hpp.
Referenced by rawboundingRect(), and renderText().
|
inline |
Definition at line 83 of file Text.hpp.
Referenced by boundingRect(), rawboundingRect(), and renderText().
|
inline |
Definition at line 102 of file Text.hpp.
Referenced by boundingRectTransformed(), renderBackground(), renderBorder(), and renderText().
|
inline |
Definition at line 71 of file Text.hpp.
Referenced by render_Implementation().
|
inline |
Definition at line 120 of file Text.hpp.
Referenced by render_Implementation().
Definition at line 575 of file Text.cpp.
References vl::AABB::addPoint(), vl::Glyph::advance(), vl::Log::error(), font(), vl::ref< T >::get(), vl::Glyph::glyphIndex(), vl::Glyph::height(), kerningEnabled(), layout(), vl::Glyph::left(), vl::LeftToRightText, vl::String::length(), margin(), mFont, NULL, vl::RightToLeftText, vl::Glyph::textureHandle(), vl::Glyph::top(), VL_TRAP, vl::Glyph::width(), vl::Vector3< T_Scalar >::x(), vl::Vector2< T_Scalar >::x(), vl::Vector3< T_Scalar >::y(), and vl::Vector2< T_Scalar >::y().
Referenced by boundingRect(), and renderText().
|
virtual |
Implements vl::Renderable.
Definition at line 43 of file Text.cpp.
References backgroundEnabled(), vl::OpenGLContext::bindVAS(), borderEnabled(), color(), vl::OpenGLContext::color(), font(), vl::Has_GL_Version_2_0, vl::OpenGLContext::normal(), NULL, outlineColor(), outlineEnabled(), vl::Vector3< T_Scalar >::ptr(), vl::Vector4< T_Scalar >::ptr(), renderBackground(), renderBorder(), renderText(), shadowColor(), shadowEnabled(), shadowVector(), text(), and VL_CHECK.
Definition at line 704 of file Text.cpp.
References vl::Vector4< T_Scalar >::a(), vl::Vector4< T_Scalar >::b(), boundingRectTransformed(), vl::Matrix4< T_Scalar >::e(), vl::Vector4< T_Scalar >::g(), vl::Matrix4< float >::getOrtho(), vl::Viewport::height(), mBackgroundColor, mode(), NULL, vl::Matrix4< T_Scalar >::ptr(), vl::Vector4< T_Scalar >::r(), vl::Text2D, vl::Camera::viewport(), VL_CHECK_OGL, vl::Viewport::width(), vl::Viewport::x(), and vl::Viewport::y().
Referenced by render_Implementation().
Definition at line 757 of file Text.cpp.
References vl::Vector4< T_Scalar >::a(), vl::Vector4< T_Scalar >::b(), boundingRectTransformed(), vl::Matrix4< T_Scalar >::e(), vl::Vector4< T_Scalar >::g(), vl::Matrix4< float >::getOrtho(), vl::Viewport::height(), mBorderColor, mode(), NULL, vl::Matrix4< T_Scalar >::ptr(), vl::Vector4< T_Scalar >::r(), vl::Text2D, vl::Camera::viewport(), VL_CHECK_OGL, vl::Viewport::width(), vl::Viewport::x(), and vl::Viewport::y().
Referenced by render_Implementation().
|
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::Viewport::height(), vl::Glyph::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::Viewport::width(), vl::Glyph::width(), vl::AABB::width(), vl::Transform::worldMatrix(), vl::Viewport::x(), vl::Vector3< T_Scalar >::x(), vl::Vector4< T_Scalar >::x(), vl::Vector2< T_Scalar >::x(), vl::Viewport::y(), vl::Vector3< T_Scalar >::y(), vl::Vector4< T_Scalar >::y(), vl::Vector2< T_Scalar >::y(), vl::Vector3< T_Scalar >::z(), and vl::Vector4< T_Scalar >::z().
Referenced by render_Implementation().
void Text::resetMatrix | ( | ) |
Definition at line 1017 of file Text.cpp.
References mMatrix, and vl::Matrix4< T_Scalar >::setIdentity().
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().
|
inline |
Definition at line 94 of file Text.hpp.
Referenced by vl::VectorGraphics::drawText(), vl::Molecule::generateAtomLabel(), and vl::VolumePlot::setupLabels().
|
inline |
Definition at line 75 of file Text.hpp.
Referenced by vl::Molecule::generateAtomLabel(), and vl::VolumePlot::setupLabels().
|
inline |
Definition at line 115 of file Text.hpp.
Referenced by vl::Molecule::generateAtomLabel(), and vl::VolumePlot::setupLabels().
|
inline |
Definition at line 69 of file Text.hpp.
Referenced by vl::Molecule::generateAtomLabel(), and vl::VolumePlot::setupLabels().
|
inline |
Definition at line 112 of file Text.hpp.
Referenced by vl::Molecule::generateAtomLabel(), and vl::VolumePlot::setupLabels().
|
inline |
Definition at line 66 of file Text.hpp.
Referenced by vl::VectorGraphics::drawText(), vl::Molecule::generateAtomLabel(), vl::VolumePlot::setupLabels(), and vl::VolumePlot::VolumePlot().
|
inline |
Definition at line 88 of file Text.hpp.
Referenced by vl::VectorGraphics::drawText(), vl::Molecule::generateAtomLabel(), and vl::VolumePlot::setupLabels().
|
inline |
Definition at line 118 of file Text.hpp.
Referenced by vl::Molecule::generateAtomLabel().
|
inline |
|
inline |
Definition at line 84 of file Text.hpp.
Referenced by vl::Molecule::generateAtomLabel(), and vl::VolumePlot::setupLabels().
|
inline |
Definition at line 91 of file Text.hpp.
Referenced by vl::VectorGraphics::drawText(), and vl::VolumePlot::setupLabels().
|
inline |
Definition at line 103 of file Text.hpp.
Referenced by vl::Molecule::generateAtomLabel().
|
inline |
Definition at line 72 of file Text.hpp.
Referenced by vl::Molecule::generateAtomLabel(), and vl::VolumePlot::setupLabels().
|
inline |
Definition at line 121 of file Text.hpp.
Referenced by vl::Molecule::generateAtomLabel(), and vl::VolumePlot::setupLabels().
|
inline |
Definition at line 78 of file Text.hpp.
Referenced by vl::Molecule::generateAtomLabel(), and vl::VolumePlot::setupLabels().
|
inline |
Definition at line 124 of file Text.hpp.
Referenced by vl::Molecule::generateAtomLabel(), and vl::VolumePlot::setupLabels().
|
inline |
Definition at line 81 of file Text.hpp.
Referenced by vl::Molecule::generateAtomLabel(), and vl::VolumePlot::setupLabels().
|
inline |
Definition at line 63 of file Text.hpp.
Referenced by vl::VectorGraphics::drawText(), vl::Molecule::generateAtomLabel(), and vl::VolumePlot::setupLabels().
|
inline |
Definition at line 109 of file Text.hpp.
Referenced by vl::Molecule::generateAtomLabel().
|
inline |
Definition at line 97 of file Text.hpp.
Referenced by vl::VectorGraphics::drawText(), and vl::Molecule::generateAtomLabel().
|
inline |
Definition at line 77 of file Text.hpp.
Referenced by render_Implementation().
|
inline |
Definition at line 123 of file Text.hpp.
Referenced by render_Implementation().
|
inline |
Definition at line 80 of file Text.hpp.
Referenced by render_Implementation().
|
inline |
Definition at line 62 of file Text.hpp.
Referenced by boundingRect(), render_Implementation(), and renderText().
|
inline |
Definition at line 108 of file Text.hpp.
Referenced by renderText().
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().
|
inlinevirtual |
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.
|
inline |
Definition at line 96 of file Text.hpp.
Referenced by boundingRectTransformed(), and renderText().
|
protected |
Definition at line 154 of file Text.hpp.
Referenced by renderBackground().
|
protected |
Definition at line 153 of file Text.hpp.
Referenced by renderBorder().
Definition at line 150 of file Text.hpp.
Referenced by rawboundingRect(), and renderText().
|
protected |
|
protected |
Definition at line 158 of file Text.hpp.
Referenced by boundingRectTransformed(), renderText(), resetMatrix(), rotate(), and translate().
|
protected |
Visualization Library 2.0.0 Reference Documentation
Updated on Wed Dec 23 2020 12:44:12.
© Copyright Michele Bosi. All rights reserved.