SoBase(3IV)

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

As shipped in IRIX 6.5.30. Added in IRIX 6.5.22.

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

INHERITS FROM
     SoBase

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

          Functions from class SoBase:

     void                SoBaseRef(SoBase *this)
     void                SoBaseUnref(const SoBase *this)
     void                SoBaseUnrefNoDelete(const SoBase *this)
     void                SoBaseTouch(SoBase *this)
     SoType              SoBaseGetClassTypeId()
     SoType              SoBaseGetTypeId(const SoBase *this)
     SbBool              SoBaseIsOfType(const SoBase *this, SoType type)
     void                SoBaseSetName(SoBase *this, const char *name)
     SbName              SoBaseGetName(const SoBase *this)


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

FUNCTIONS
     void                SoBaseRef(SoBase *this)
     void                SoBaseUnref(const SoBase *this)
     void                SoBaseUnrefNoDelete(const SoBase *this)
          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  SoBaseUnrefNoDelete() 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.

           SoBaseUnrefNoDelete() 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  a Create() method.

     void                SoBaseTouch(SoBase *this)
          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.
     SoType              SoBaseGetClassTypeId()
          Returns type identifier for this class.

     SoType              SoBaseGetTypeId(const SoBase *this)
          Returns the type identifier for a specific instance.

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


               SoBaseIsOfType(nodePtr, SoGroupGetClassTypeId())

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

     void                SoBaseSetName(SoBase *this, const char *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() functions 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.

     SbName              SoBaseGetName(const SoBase *this)
          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() functions of SoNode, SoEngine, or SoPath.


SEE ALSO
     SoFieldContainer, SoNode, SoPath, SoEngine, SoDB