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

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

                                                                                                   SoBase(3IV)()