For the system to be easily extensible to work with new models, a well-defined interface must exist.
The C++ base classes GModel and GType provide pure virtual interface functions to user-derived classes. All interface functions must be defined with the same arguments to make a valid derived class.
The main functions provided by GModel are: