NAME
SoText2 -
The SoText2 class is a node type for visualizing 2D text aligned with
the camera plane.
SoText2 text is not scaled according to the distance from the camera,
and is not influenced by rotation or scaling as 3D primitives are. If
these are properties that you want the text to have, you should instead
use an SoText3 or SoAsciiText node.
SYNOPSIS
#include <Inventor/nodes/SoText2.h>
Inherits SoShape.
Public Types
enum Justification { LEFT = 1, RIGHT, CENTER }
Public Member Functions
SoText2 (void)
virtual void GLRender (SoGLRenderAction *action)
virtual void rayPick (SoRayPickAction *action)
virtual void getPrimitiveCount (SoGetPrimitiveCountAction *action)
Static Public Member Functions
static void initClass (void)
Public Attributes
SoMFString string
SoSFFloat spacing
SoSFEnum justification
Protected Member Functions
virtual ~SoText2 ()
virtual void generatePrimitives (SoAction *action)
virtual void computeBBox (SoAction *action, SbBox3f &box, SbVec3f
¢er)
Detailed Description
The SoText2 class is a node type for visualizing 2D text aligned with
the camera plane.
SoText2 text is not scaled according to the distance from the camera,
and is not influenced by rotation or scaling as 3D primitives are. If
these are properties that you want the text to have, you should instead
use an SoText3 or SoAsciiText node.
Note that even though the size of the 2D text is not influenced by the
distance from the camera, the text is still subject to the usual rules
with regard to the depthbuffer, so it will be obscured by graphics
laying in front of it.
The text will be positioned according to the current transformation.
The x origin of the text is the first pixel of the leftmost character
of the text. The y origin of the text is the baseline of the first line
of text (the baseline being the imaginary line on which all upper case
characters are standing).
The size of the fonts on screen is decided from the SoFont::size field
of a preceding SoFont-node in the scene graph, which specifies the size
in pixel dimensions. This value sets the approximate vertical dimension
of the letters. The default value if no SoFont-nodes are used, is 10.
One important issue about rendering performance: since the positioning
and rendering of an SoText2 node depends on the current viewport and
camera, having SoText2 nodes in the scene graph will lead to a cache
dependency on the previously encountered SoCamera-node. This can have
severe influence on the rendering performance, since if the camera is
above the SoText2’s nearest parent SoSeparator, the SoSeparator will
not be able to cache the geometry under it.
(Even worse rendering performance will be forced if the
SoSeparator::renderCaching flag is explicitly set to ON, as the
SoSeparator node will then continuously generate and destruct the same
cache as the camera moves.)
SoText2 nodes are therefore best positioned under their own SoSeparator
node, outside areas in the scene graph that otherwise contains static
geometry.
Also note that SoText2 nodes cache the ids and positions of each glyph
bitmap used to render string. This means that USE of a DEF’ed SoText2
node, with a different font, will be noticeably slower than using two
separate SoText2 nodes, one for each font, since it will have to
recalculate glyph bitmap ids and positions for each call to GLrender().
SoScale nodes can not be used to influence the dimensions of the
rendering output of SoText2 nodes.
FILE FORMAT/DEFAULTS:
Text2 {
string ’’
spacing 1
justification LEFT
}
See also:
SoFont, SoFontStyle, SoText3, SoAsciiText
Member Enumeration Documentation
enum SoText2::Justification Enum contains the various options for how the
horizontal text layout text should be done. Valid values are LEFT,
RIGHT and CENTER.
Constructor & Destructor Documentation
SoText2::SoText2 (void) Constructor.
SoText2::~SoText2 () [protected, virtual] Destructor.
Member Function Documentation
void SoText2::initClass (void) [static] Sets up initialization for data
common to all instances of this class, like submitting necessary
information to the Coin type system.
Reimplemented from SoShape.
void SoText2::GLRender (SoGLRenderAction * action) [virtual] Action method
for the SoGLRenderAction.
This is called during rendering traversals. Nodes influencing the
rendering state in any way or who wants to throw geometry primitives at
OpenGL overrides this method.
Reimplemented from SoShape.
void SoText2::rayPick (SoRayPickAction * action) [virtual] Calculates
picked point based on primitives generated by subclasses.
Reimplemented from SoShape.
void SoText2::getPrimitiveCount (SoGetPrimitiveCountAction * action)
[virtual] Action method for the SoGetPrimitiveCountAction.
Calculates the number of triangle, line segment and point primitives
for the node and adds these to the counters of the action.
Nodes influencing how geometry nodes calculates their primitive count
also overrides this method to change the relevant state variables.
Reimplemented from SoShape.
void SoText2::generatePrimitives (SoAction * action) [protected, virtual]
The method implements action behavior for shape nodes for
SoCallbackAction. It is invoked from SoShape::callback(). (Subclasses
should not override SoNode::callback().)
The subclass implementations uses the convenience methods
SoShape::beginShape(), SoShape::shapeVertex(), and SoShape::endShape(),
with SoDetail instances, to pass the primitives making up the shape
back to the caller.
Implements SoShape.
void SoText2::computeBBox (SoAction * action, SbBox3f & box, SbVec3f &
center) [protected, virtual] Implemented by SoShape subclasses to let
the SoShape superclass know the exact size and weighted center point of
the shape’s bounding box.
The bounding box and center point should be calculated and returned in
the local coordinate system.
The method implements action behavior for shape nodes for
SoGetBoundingBoxAction. It is invoked from SoShape::getBoundingBox().
(Subclasses should not override SoNode::getBoundingBox().)
The box parameter sent in is guaranteed to be an empty box, while
center is undefined upon function entry.
Implements SoShape.
Member Data Documentation
SoMFString SoText2::string The set of strings to render. Each string in the
multiple value field will be rendered on it’s own line.
The default value of the field is a single empty string.
SoSFFloat SoText2::spacing Spacing between each consecutive vertical line.
Default value is 1.0, which means that the space between the uppermost
line of each rendered string will equal the vertical size of the
highest character in the bitmap alphabet.
SoSFEnum SoText2::justification Decides how the horizontal layout of the
text strings is done.
Author
Generated automatically by Doxygen for Coin from the source code.