void register_factory(TypeHandle handle, BaseCreateFunc *func, void *user_data=nullptr)
Registers a new kind of thing the Factory will be able to create.
TypedObject * make_instance(TypeHandle handle, const FactoryParams ¶ms)
Attempts to create a new instance of some class of the indicated type, or some derivative if necessar...
TypedObject * make_instance_more_general(TypeHandle handle, const FactoryParams ¶ms)
Attempts to create an instance of the type requested, or some base type of the type requested.
An instance of this class is passed to the Factory when requesting it to do its business and construc...
A Factory can be used to create an instance of a particular subclass of some general base class.
TypeHandle is the identifier used to differentiate C++ class types.