9.5. Interfaces

Because plugins play an endless number of different roles in K-3D, a sophisticated mechanism is needed to determine the capabilities and purpose of an individual plugin after it is created. K-3D defines formal Interface classes that correspond to capabilities, plugin classes “Implement” interfaces by deriving from them, and callers “Query” a plugin instance for its capabilities using dynamic_cast. See Contract Programming and RTTI for a discussion of this technique.