logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

SoText2 — screen-aligned 2D text shape node

Action Behavior

SoGLRenderAction
          Draws text based on the current font, at a location based on the current transformation.

     SoRayPickAction
          Performs a pick on the text. Text will be picked if the picking ray intersects the bounding box of the
          strings. The string index and character position are available from the SoTextDetail.

     SoGetBoundingBoxAction
          Computes the bounding box that encloses the text.

Description

       This node defines one or more strings of 2D text. The text is always aligned horizontally with the screen
       and  does  not change size with distance in a perspective projection. The text origin is at (0,0,0) after
       applying the current transformation. Rotations and scales have no effect on the orientation or size of 2D
       text, just the location.

       SoText2 uses the current font to determine the typeface and size. The  text  is  always  drawn  with  the
       diffuse  color  of the current material; it is not lit, regardless of the lighting model. Furthermore, 2D
       text can not be textured, and it ignores the current drawing style and complexity.

       Because 2D text is screen-aligned, it has some unusual characteristics. For example, the 3D bounding  box
       surrounding  a 2D text string depends on the current camera and the current viewport size, since changing
       the field of view or the mapping onto the window changes the relative size of the text  with  respect  to
       the  rest of the scene. This has implications for caching as well, since a render cache in an SoSeparator
       that contains an SoText2 node depends on the current camera.

Fields

SoMFStringstring
          The text string(s) to display. Each string will appear on its own line. The string(s) can be ascii  or
          UTF-8.

     SoSFFloatspacing
          Defines  the  distance  (in  the  negative y direction) between the base points of successive strings,
          measured with respect to the current font height. A value of 1 indicates single spacing, a value of  2
          indicates double spacing, and so on.

     SoSFEnumjustification
          Indicates placement and alignment of strings. With LEFT justification, the left edge of the first line
          is at the (transformed) origin, and all left edges are aligned. RIGHT justification is similar. CENTER
          justification  places  the center of the first string at the (transformed) origin, with the centers of
          all remaining strings aligned under it.

File Format/Defaults

Text2{string""spacing1justificationLEFT}

Inherits From

       SoBase > SoFieldContainer > SoNode > SoShape > SoText2

Methods

SoText2()
          Creates a 2D text node with default settings.

     staticSoTypegetClassTypeId()
          Returns type identifier for this class.

Name

       SoText2 — screen-aligned 2D text shape node

See Also

SoFont,SoText3,SoTextDetailSoText2(3IV)()

Synopsis

#include<Inventor/nodes/SoText2.h>enumJustification{SoText2::LEFT       Left edges of all strings are aligned
          SoText2::RIGHT      Right edges of all strings are aligned
          SoText2::CENTER     Centers of all strings are aligned
     }

          Fields from class SoText2:

     SoMFStringstringSoSFFloatspacingSoSFEnumjustification

          Methods from class SoText2:

                         SoText2()staticSoTypegetClassTypeId()

          Methods from class SoNode:

     voidsetOverride(SbBoolstate)SbBoolisOverride()constSoNode*copy(SbBoolcopyConnections=FALSE)constvirtualSbBoolaffectsState()conststaticSoNode*getByName(constSbName&name)staticintgetByName(constSbName&name,SoNodeList&list)

          Methods from class SoFieldContainer:

     voidsetToDefaults()SbBoolhasDefaultValues()constSbBoolfieldsAreEqual(constSoFieldContainer*fc)constvoidcopyFieldValues(constSoFieldContainer*fc,SbBoolcopyConnections=FALSE)SbBoolset(constchar*fieldDataString)voidget(SbString&fieldDataString)virtualintgetFields(SoFieldList&resultList)constvirtualSoField*getField(constSbName&fieldName)constSbBoolgetFieldName(constSoField*field,SbName&fieldName)constSbBoolisNotifyEnabled()constSbBoolenableNotify(SbBoolflag)

          Methods from class SoBase:

     voidref()voidunref()constvoidunrefNoDelete()constvoidtouch()virtualSoTypegetTypeId()constSbBoolisOfType(SoTypetype)constvirtualvoidsetName(constSbName&name)virtualSbNamegetName()const

See Also