|
The Kind library provides a runtime-extensible taxonomy known as "kinds".
Kinds are just TfToken symbols, but the KindRegistry allows for organizing kinds into taxonomies of related/refined concepts, and the KindRegistry::GetBaseKind() and KindRegistry::IsA() queries enable reasoning about the hierarchy and classifying objects by kind.
Kinds are useful for classifying scenegraph objects, such as by tagging objects representing the roots of models with the kind of model it represents; it is scenegraph taxonomy that motivates the "builtin" kind hierarchy.
The KindRegistry begins its life pre-loaded with the following hierarchy of kinds that define our concept of "model hierarchy", which is so central to our organization and discovery of scene description. Of course, as described in the next section, unlimited new, entirely unrelated taxonomies can be created by extension.
The kind registry can be extended using the facilities provided by PlugRegistry, by adding a 'Kinds' sub-dictionary to the plugInfo.json file of any module within your "pixar-base aware" build environment. The dictionary entries will look like the following: