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)()