NAME SoBase "" "" { base class for all nodes, paths, and engines }

INCLUDE misc/SoBase.h

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

METHOD "" void ref() {}
METHOD "" void unref() const {}
METHOD "" 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
\+\munrefNoDelete()\.\.
\-\mSoBaseUnrefNoDelete()\.\.
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.
\p
\+\munrefNoDelete()\.\.
\-\mSoBaseUnrefNoDelete()\.\.
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
\+\mnew\..\.
\-a \mCreate()\. method.\.
}

METHOD "" 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.
}

METHOD "" static SoType getClassTypeId() {
Returns type identifier for this class.
}

METHOD "" virtual SoType getTypeId() const {
Returns the type identifier for a specific instance.
}

METHOD "" SbBool isOfType(SoType type) const {
Returns TRUE if this object is of the type specified in \atype\. or is
derived from that type.  Otherwise, it returns FALSE. For example,
\b
\+nodePtr->isOfType(SoGroup::getClassTypeId())\.
\-SoBaseIsOfType(nodePtr, SoGroupGetClassTypeId())\.
\.
returns TRUE if \anodePtr\. is an instance of \cSoGroup\. or one of
its subclasses.
}

METHOD "" 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
\+\misBaseNameChar()\. and \misBaseNameStartChar()\. methods\.
\-\mIsBaseNameChar()\. and \mIsBaseNameStartChar()\. functions\.
of \cSbName\. 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.
}

METHOD "" virtual SbName getName() const {
Returns the name of an instance. If the instance has not been named,
an empty \cSbName\. is returned. Objects that are named can be looked
up using the
\+\mgetByName()\. methods\.
\-\mGetByName()\. functions\.
of \cSoNode\., \cSoEngine\., or \cSoPath\..
}

ALSO { SoFieldContainer, SoNode, SoPath, SoEngine, SoDB }
