SoBase(3IV)

SoBase - base class for all nodes, paths, and engines

As shipped in IRIX 6.5.22. Added in IRIX 6.5.22.

NAME
     SoBase - base class for all nodes, paths, and engines

INHERITS FROM
     SoBase

SYNOPSIS
     #include <Inventor/misc/SoBase.h>

          Methods from class SoBase:

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


DESCRIPTION
     Abstract base class for Inventor node, path, and engine classes. This
     class handles reference counting, notification, and naming.

METHODS
     void                ref()
     void                unref() const
     void                unrefNoDelete() const
          Adds and removes a reference to an instance. Instances should be
          referenced when they will be used outside of the routine in which
          they were initialized. (A typical example of this is maintaining a
          pointer to the root of a graph.) Whenever the reference count for an
          instance is decremented to 0, the instance is automatically
          destroyed by the database (unless unrefNoDelete()  is used to unref
          it). The reference count of a node is automatically incremented when
          the node is added as a child of another node or when a path points
          to the node. Likewise, the reference count is automatically
          decremented when the node is removed as a child or when a path that
          points to the node is changed or destroyed.

          unrefNoDelete()  should be called when it is desired to decrement
          the reference count, but not delete the instance if this brings the
          reference count to zero. This is most useful in returning an object
          to a zero-reference-count state, like it was when it was created by
          new.

     void                touch()
          Marks an instance as modified, simulating a change to it. This will
          notify auditors (parent nodes, connected engines, and so on) of a
          change to this object and cause attached sensors to be triggered.
     static SoType       getClassTypeId()
          Returns type identifier for this class.

     virtual SoType      getTypeId() const
          Returns the type identifier for a specific instance.

     SbBool              isOfType(SoType type) const
          Returns TRUE if this object is of the type specified in type or is
          derived from that type. Otherwise, it returns FALSE. For example,

               nodePtr->isOfType(SoGroup::getClassTypeId())


          returns TRUE if nodePtr is an instance of SoGroup or one of its
          subclasses.

     virtual void        setName(const SbName &name)
          Sets the name of an instance. Object names are preserved when
          objects are written to or read from files. Object names must not
          begin with a digit, and must not contain spaces or control
          characters, single or double quote characters, backslashes, curly
          braces or the plus character. The isBaseNameChar() and
          isBaseNameStartChar() methods  of SbName can be used to validate
          names input by users. This method will replace any bad charaters in
          the name with underscore characters, and will print out an error
          message if the application is using the Inventor debugging library.

     virtual SbName      getName() const
          Returns the name of an instance. If the instance has not been named,
          an empty SbName is returned. Objects that are named can be looked up
          using the getByName() methods  of SoNode, SoEngine, or SoPath.


SEE ALSO
     SoFieldContainer, SoNode, SoPath, SoEngine, SoDB