Mudbox uses its own run-time type information system. An instance of the class ClassDesc is assigned to each class derived from Node and holds information such as:
- Name of the class
- Name of the class as it appears in the source code
- Pointer to a function which can create instances of the class
- Pointer to the ClassDesc instance describing the parent class(es)
These ClassDesc instances are linked in a list so it's possible to enumerate the class and search for a class with a given name or given
parent, and create instances of the class.
There are two macros defined in the SDK for creating a ClassDesc instance for a given class, these are:
- DECLARE_CLASS - This must be used in the header file of the class and doesn’t need any parameter
- IMPLEMENT_CLASS - Used in the implementation file. Requires the name of the class, the name of the parent class and a display name of the
class as parameters.