SLProject
4.2.000
A platform independent 3D computer graphics framework for desktop OS, Android, iOS and online in web browsers
|
SLText creates a mesh using a textured font from SLTexFont. More...
#include <SLText.h>
Public Member Functions | |
SLText (SLstring text, SLTexFont *font, SLCol4f txtCol=SLCol4f::WHITE, SLfloat maxWidth=0.0f, SLfloat lineHeightFactor=1.3f) | |
Construct a new SLText::SLText object. More... | |
~SLText () | |
void | drawText (SLSceneView *sv) |
void | statsRec (SLNodeStats &stats) override |
SLAABBox & | updateAABBRec (SLbool updateAlsoAABBinOS) override |
SLbool | hitRec (SLRay *ray) override |
void | drawMesh (SLSceneView *sv) override |
Draws the single mesh. More... | |
void | preShade (SLRay *ray) |
SLstring | text () |
SLCol4f | color () |
SLVec2f | size () |
SLfloat | fontHeightPX () |
SLint | length () |
Public Member Functions inherited from SLNode | |
SLNode (const SLstring &name="Node") | |
Construct a new SLNode::SLNode object. More... | |
SLNode (SLMesh *mesh, const SLstring &name="Node") | |
SLNode (SLMesh *mesh, const SLVec3f &translation, const SLstring &name) | |
~SLNode () override | |
virtual void | cull3DRec (SLSceneView *sv) |
virtual void | cullChildren3D (SLSceneView *sv) |
Initializer function to call SLNode::cull3DRec recursively. More... | |
virtual void | cull2DRec (SLSceneView *sv) |
virtual SLNode * | copyRec () |
virtual void | dumpRec () |
void | setDrawBitsRec (SLuint bit, SLbool state) |
void | setPrimitiveTypeRec (SLGLPrimitiveType primitiveType) |
virtual void | addMesh (SLMesh *mesh) |
bool | removeMesh () |
Returns true if a mesh was assigned and set it to nullptr. More... | |
bool | removeMesh (SLMesh *mesh) |
Returns true if the passed mesh was assigned and sets it to nullptr. More... | |
SLint | numChildren () |
void | addChild (SLNode *child) |
bool | insertChild (SLNode *insertC, SLNode *afterC) |
void | deleteChildren () |
bool | deleteChild () |
bool | deleteChild (SLNode *child) |
bool | deleteChild (const SLstring &name) |
bool | removeChild (SLNode *child) |
remove child from vector of children. Removes false if not found, else true. More... | |
template<typename T > | |
T * | find (const SLstring &name="", SLbool findRecursive=true) |
template<typename T > | |
T * | findChild (const SLstring &name="", SLbool findRecursive=true) |
template<typename T > | |
deque< T * > | findChildren (const SLstring &name="", SLbool findRecursive=true, SLbool canContain=false) |
deque< SLNode * > | findChildren (const SLMesh *mesh, SLbool findRecursive=true) |
deque< SLNode * > | findChildren (SLuint drawbit, SLbool findRecursive=true) |
SLVec3f | translationOS () const |
SLVec3f | forwardOS () const |
SLVec3f | rightOS () const |
SLVec3f | upOS () const |
SLVec3f | axisXOS () const |
SLVec3f | axisYOS () const |
SLVec3f | axisZOS () const |
SLVec3f | translationWS () const |
SLVec3f | forwardWS () const |
SLVec3f | rightWS () const |
SLVec3f | upWS () const |
SLVec3f | axisXWS () const |
SLVec3f | axisYWS () const |
SLVec3f | axisZWS () const |
void | translation (const SLVec3f &pos, SLTransformSpace relativeTo=TS_parent) |
void | translation (SLfloat x, SLfloat y, SLfloat z, SLTransformSpace relativeTo=TS_parent) |
void | rotation (const SLQuat4f &rot, SLTransformSpace relativeTo=TS_parent) |
void | rotation (SLfloat angleDeg, const SLVec3f &axis, SLTransformSpace relativeTo=TS_parent) |
void | scaling (SLfloat s) |
void | scaling (SLfloat x, SLfloat y, SLfloat z) |
void | scaling (const SLVec3f &scaling) |
void | lookAt (SLfloat targetX, SLfloat targetY, SLfloat targetZ, SLfloat upX=0, SLfloat upY=1, SLfloat upZ=0, SLTransformSpace relativeTo=TS_world) |
void | lookAt (const SLVec3f &target, const SLVec3f &up=SLVec3f::AXISY, SLTransformSpace relativeTo=TS_world) |
void | translate (const SLVec3f &vec, SLTransformSpace relativeTo=TS_object) |
void | translate (SLfloat x, SLfloat y, SLfloat z, SLTransformSpace relativeTo=TS_object) |
void | rotate (const SLQuat4f &rot, SLTransformSpace relativeTo=TS_object) |
void | rotate (SLfloat angleDeg, const SLVec3f &axis, SLTransformSpace relativeTo=TS_object) |
void | rotate (SLfloat angleDeg, SLfloat x, SLfloat y, SLfloat z, SLTransformSpace relativeTo=TS_object) |
void | rotateAround (const SLVec3f &point, SLVec3f &axis, SLfloat angleDeg, SLTransformSpace relativeTo=TS_world) |
void | scale (SLfloat s) |
void | scale (SLfloat x, SLfloat y, SLfloat z) |
void | scale (const SLVec3f &scale) |
void | scaleToCenter (SLfloat maxDim) |
void | setInitialState () |
void | resetToInitialState () |
void | parent (SLNode *p) |
void | entityID (SLint entityID) |
void | om (const SLMat4f &mat) |
void | animation (SLAnimation *a) |
void | castsShadows (SLbool castsShadows) |
virtual void | needUpdate () |
void | needWMUpdate () |
void | needAABBUpdate () |
void | isSelected (bool isSelected) |
void | minLodCoverage (SLfloat minLodCoverage) |
void | levelForSM (SLubyte lfsm) |
void | onUpdateCB (function< void()> callbackFunc) |
SLNode * | parent () |
SLint | depth () const |
SLint | entityID () const |
const SLMat4f & | om () |
const SLMat4f & | initialOM () |
const SLMat4f & | updateAndGetWM () const |
const SLMat4f & | updateAndGetWMI () const |
SLDrawBits * | drawBits () |
SLbool | drawBit (SLuint bit) |
SLAABBox * | aabb () |
SLAnimation * | animation () |
SLbool | castsShadows () |
SLMesh * | mesh () |
SLVNode & | children () |
const SLAnimSkeleton * | skeleton () |
Returns the first skeleton found in the meshes. More... | |
void | updateRec () |
virtual void | doUpdate () |
bool | updateMeshSkins (bool forceCPUSkinning, const std::function< void(SLMesh *)> &cbInformNodes) |
Update all skinned meshes recursively. More... | |
void | updateMeshAccelStructs () |
void | updateMeshMat (std::function< void(SLMaterial *m)> setMat, bool recursive) |
Updates the mesh material recursively with a material lambda. More... | |
void | setMeshMat (SLMaterial *mat, bool recursive) |
Set the mesh material recursively. More... | |
bool | isSelected () |
SLfloat | minLodCoverage () |
SLubyte | levelForSM () |
Public Member Functions inherited from SLObject | |
SLObject (const SLstring &Name="", const SLstring &url="") | |
virtual | ~SLObject () |
void | name (const SLstring &Name) |
void | url (const SLstring &url) |
const SLstring & | name () const |
const SLstring & | url () const |
Public Member Functions inherited from SLEventHandler | |
SLEventHandler () | |
virtual | ~SLEventHandler () |
virtual SLbool | onMouseDown (const SLMouseButton button, const SLint x, const SLint y, const SLKey mod) |
virtual SLbool | onMouseUp (const SLMouseButton button, const SLint x, const SLint y, const SLKey mod) |
virtual SLbool | onMouseMove (const SLMouseButton button, const SLint x, const SLint y, const SLKey mod) |
virtual SLbool | onDoubleClick (const SLMouseButton button, const SLint x, const SLint y, const SLKey mod) |
virtual SLbool | onMouseWheel (const SLint delta, const SLKey mod) |
virtual SLbool | onTouch2Down (const SLint x1, const SLint y1, const SLint x2, const SLint y2) |
virtual SLbool | onTouch2Move (const SLint x1, const SLint y1, const SLint x2, const SLint y2) |
virtual SLbool | onTouch2Up (const SLint x1, const SLint y1, const SLint x2, const SLint y2) |
virtual SLbool | onTouch3Down (const SLint x1, const SLint y1) |
virtual SLbool | onTouch3Move (const SLint x1, const SLint y1) |
virtual SLbool | onTouch3Up (const SLint x1, const SLint y1) |
virtual SLbool | onKeyPress (const SLKey key, const SLKey mod) |
virtual SLbool | onKeyRelease (const SLKey key, const SLKey mod) |
virtual SLbool | onRotationPYR (const SLfloat pitchRAD, const SLfloat yawRAD, const SLfloat rollRAD) |
void | mouseRotationFactor (SLfloat rf) |
SLfloat | mouseRotationFactor () |
Protected Attributes | |
SLstring | _text |
Text of the button. More... | |
SLTexFont * | _font |
Font pointer of the preloaded font. More... | |
SLCol4f | _color |
RGBA-Color of the text. More... | |
SLfloat | _maxW |
Max. width in pix. for wrapped text. More... | |
SLfloat | _lineH |
Line height factor for wrapped text. More... | |
SLGLVertexArray | _vao |
Vertex array for rendering. More... | |
Protected Attributes inherited from SLNode | |
SLNode * | _parent |
pointer to the parent node More... | |
SLVNode | _children |
vector of children nodes More... | |
SLMesh * | _mesh |
pointer to a single mesh More... | |
SLint | _depth |
depth of the node in a scene tree More... | |
SLint | _entityID |
ID in the SLVEntity graph for Data Oriented Design. More... | |
SLMat4f | _om |
object matrix for local transforms More... | |
SLMat4f | _initialOM |
the initial om state More... | |
SLMat4f | _wm |
world matrix for world transform More... | |
SLMat4f | _wmI |
inverse world matrix More... | |
SLbool | _isWMUpToDate |
is the WM of this node still valid More... | |
SLbool | _isWMIUpToDate |
is the inverse WM of this node still valid More... | |
SLbool | _isAABBUpToDate |
is the saved aabb still valid More... | |
bool | _castsShadows |
flag if meshes of node should cast shadows More... | |
bool | _isSelected |
flag if node and one or more of its meshes are selected More... | |
SLDrawBits | _drawBits |
node level drawing flags More... | |
SLAABBox | _aabb |
axis aligned bounding box More... | |
SLAnimation * | _animation |
animation of the node More... | |
SLfloat | _minLodCoverage |
Min. LOD coverage for visibility (0.0 < _minLodCoverage < 1.0) More... | |
SLubyte | _levelForSM |
Level of LOD to use for shadow mapping (0 = the visible one will be drawn) More... | |
function< void()> | _onUpdateCB |
Optional lambda callback once per update. More... | |
Protected Attributes inherited from SLObject | |
SLstring | _name |
name of an object More... | |
SLstring | _url |
uniform resource locator More... | |
Protected Attributes inherited from SLEventHandler | |
SLfloat | _mouseRotationFactor |
Mouse rotation sensibility. More... | |
SLfloat | _keyboardDeltaPos |
Delta dist. for keyboard translation. More... | |
Additional Inherited Members | |
Static Public Attributes inherited from SLNode | |
static SLuint | numWMUpdates = 0 |
NO. of calls to updateWMRec per frame. More... | |
static unsigned int | instanceIndex = 0 |
??? More... | |
SLText creates a mesh using a textured font from SLTexFont.
The text is passed as standard string that can contain line breaks (\n). Line breaks are only inserted if a maxWidth is defined. If the lineHeightFactor is 1.0 the minimal line spacing is used.
SLText::SLText | ( | SLstring | text, |
SLTexFont * | font, | ||
SLCol4f | color = SLCol4f::WHITE , |
||
SLfloat | maxWidth = 0.0f , |
||
SLfloat | lineHeightFactor = 1.3f |
||
) |
Construct a new SLText::SLText object.
text | Text to be rendered |
font | SLTexTont to be used |
color | Color for font |
maxWidth | Max. line width in pixels |
lineHeightFactor | Line hight factor >= 1.0 |
Definition at line 28 of file SLText.cpp.
|
inlineoverridevirtual |
Draws the single mesh.
Inserts a mesh pointer in the mesh pointer vector after the specified afterM pointer.
Reimplemented from SLNode.
Definition at line 44 of file SLText.h.
void SLText::drawText | ( | SLSceneView * | sv | ) |
SLText::shapeDraw draws the text buffer objects
Definition at line 46 of file SLText.cpp.
Intersects the nodes meshes with the given ray. The intersection test is only done if the AABB is intersected. The ray-mesh intersection is done in the nodes object space. The rays origin and direction is therefore transformed into the object space.
Reimplemented from SLNode.
|
inline |
|
inline |
Definition at line 50 of file SLText.h.
|
overridevirtual |
SLText::statsRec updates the statistics.
Reimplemented from SLNode.
Definition at line 76 of file SLText.cpp.
SLText::buildAABB builds and returns the axis-aligned bounding box.
Reimplemented from SLNode.
Definition at line 87 of file SLText.cpp.
|
protected |
|
protected |
|
protected |
|
protected |