table of contents
SoType(3IV)() | SoType(3IV)() |
NAME¶
SoType — stores runtime type information
INHERITS FROM¶
SoType
SYNOPSIS¶
#include <Inventor/SoType.h>
Methods from class SoType:
static SoType fromName(SbName name)
SbName getName() const
SoType getParent() const
static SoType badType()
SbBool isBad() const
SbBool isDerivedFrom(SoType t) const
static int getAllDerivedFrom(SoType type, SoTypeList
&list)
SbBool canCreateInstance() const
void * createInstance() const
int operator ==(const SoType t) const
int operator !=(const SoType t) const
int operator <(const SoType t) const
DESCRIPTION¶
The SoType class keeps track of runtime type information in Inventor. Each type is associated with a given name, so lookup is possible in either direction.
Many Inventor classes request a unique SoType when they are initialized. This type can then be used to find out the actual class of an instance when only its base class is known, or to obtain an instance of a particular class given its type or name.
Note that the names associated with types of Inventor classes do not contain the "So" prefix.
METHODS¶
static SoType fromName(SbName name)
Returns the type associated with the given name.
SbName getName() const
Returns the name associated with a type.
SoType getParent() const
Returns the type of the parent class.
static SoType badType()
Returns an always-illegal type. Useful for returning errors.
SbBool isBad() const
Returns TRUE if the type is a bad type.
SbBool isDerivedFrom(SoType t) const
Returns TRUE if the type is derived from type t.
static int getAllDerivedFrom(SoType type, SoTypeList
&list)
Adds all types derived from the given type to the given type list. Returns the
number of types added.
SbBool canCreateInstance() const
Some types are able to create instances; for example, most nodes and engines
(those which are not abstract classes) can be created this way. This method
returns TRUE if the type supports such creation.
void * createInstance() const
Creates and returns a pointer to an instance of the type. Returns NULL if an
instance could not be created for some reason. The pointer is returned as a
generic pointer, but can be cast to the appropriate type. For example:
SoCube *c = (SoCube *) SoCube::getClassTypeId().createInstance();
is a convoluted way of creating a new instance of an SoCube.
int operator ==(const SoType t) const
int operator !=(const SoType t) const
Returns TRUE if this type is the same as or not the same as the given
type.
int operator <(const SoType t) const
Less-than comparison operator that can be used to sort types. This is pretty
useless otherwise.
SEE ALSO¶
SoAction, SoBase, SoDetail, SoError, SoEvent, SoField