Provided by: inventor-doc_2.1.5-10-18_all bug


       SoText3 — 3D text shape node


       SoBase > SoFieldContainer > SoNode > SoShape > SoText3


       #include <Inventor/nodes/SoText3.h>

     enum Justification {
          SoText3::LEFT       Left edges of all strings are aligned
          SoText3::RIGHT      Right edges of all strings are aligned
          SoText3::CENTER     Centers of all strings are aligned

     enum Part {
          SoText3::FRONT      Front faces of characters
          SoText3::SIDES      Extruded sides of characters
          SoText3::BACK       Back faces of characters
          SoText3::ALL        All parts

          Fields from class SoText3:

     SoMFString          string
     SoSFFloat           spacing
     SoSFBitMask         parts
     SoSFEnum            justification

          Methods from class SoText3:

     static SoType       getClassTypeId()

          Methods from class SoNode:

     void                setOverride(SbBool state)
     SbBool              isOverride() const
     SoNode *            copy(SbBool copyConnections = FALSE) const
     virtual SbBool      affectsState() const
     static SoNode *     getByName(const SbName &name)
     static int          getByName(const SbName &name, SoNodeList &list)

          Methods from class SoFieldContainer:

     void                setToDefaults()
     SbBool              hasDefaultValues() const
     SbBool              fieldsAreEqual(const SoFieldContainer *fc) const
     void                copyFieldValues(const  SoFieldContainer  *fc,  SbBool  copyConnections =
     SbBool              set(const char *fieldDataString)
     void                get(SbString &fieldDataString)
     virtual int         getFields(SoFieldList &resultList) const
     virtual SoField *   getField(const SbName &fieldName) const
     SbBool              getFieldName(const SoField *field, SbName &fieldName) const
     SbBool              isNotifyEnabled() const
     SbBool              enableNotify(SbBool flag)

          Methods from class SoBase:

     void                ref()
     void                unref() const
     void                unrefNoDelete() const
     void                touch()
     virtual SoType      getTypeId() const
     SbBool              isOfType(SoType type) const
     virtual void        setName(const SbName &name)
     virtual SbName      getName() const


       This node defines one or more strings of 3D text. In contrast with SoText2, 3D text can be
       rotated, scaled, lighted, and textured, just like all other 3D shapes. Each character in a
       3D text string is created by extruding an  outlined  version  of  the  character  (in  the
       current  typeface)  along the current profile, as defined by nodes derived from SoProfile.
       The default text profile, if none is specified, is a straight line segment one unit long.

       The text origin is at (0,0,0) after applying the current transformation. The scale of  the
       text  is  affected  by  the  size  field  of  the  current  SoFont  as well as the current

       SoText3 uses the current set of materials when  rendering.  If  the  material  binding  is
       OVERALL,  then  the  whole  text  is  drawn  with the first material. If it is PER_PART or
       PER_PART_INDEXED, the front part of the text is drawn with the first material,  the  sides
       with the second, and the back with the third.

       Textures  are  applied to 3D text as follows. On the front and back faces of the text, the
       texture origin is at the base point of the first string; the base point is  at  the  lower
       left  for  justification  LEFT,  at the lower right for RIGHT, and at the lower center for
       CENTER. The texture is scaled equally in both S and T dimensions,  with  the  font  height
       representing  1  unit.  S increases to the right on the front faces and to the left on the
       back faces. On the sides, the texture is scaled the same as on the front and  back.  S  is
       equal  to 0 at the rear edge of the side faces. The T origin can occur anywhere along each
       character, depending on how that character's outline is defined.


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

     SoSFFloat           spacing
          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.

     SoSFBitMask         parts
          Which  parts  of  text are visible. Note that, for speed, the default for this field is
          FRONT only.

     SoSFEnum            justification
          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.


          Creates a 3D text node with default settings.

     static SoType       getClassTypeId()
          Returns type identifier for this class.


          Draws  text  based  on  the  current  font,  profiles,  transformation,  drawing style,
          material, texture, complexity, and so on.

          Performs a pick on the text. The string index and character position are available from
          the SoTextDetail.

          Computes the bounding box that encloses the text.

          If any triangle callbacks are registered with the action, they will be invoked for each
          successive triangle used to approximate the text geometry.


       Text3 {
          string         ""
          spacing        1
          justification  LEFT
          parts          FRONT


       SoFont, SoProfile, SoText2, SoTextDetail