At a high level this design separates code specific to MeshTex functionality from code that could apply to Radiant plugins in general, especially plugins that have similar interface needs (i.e. accept some numbers/choices from user input and apply to selected objects). Within both of those broad categories, further separation is enforced between the plugin framework, patch mesh manipulation, and UI. See the Modules page of this documentation for specifics.
A Radiant plugin is a library that exports only one function: Radiant_RegisterModules. This returns a function table that Radiant will use to identify the plugin, populate the main menu for the plugin, and notify the plugin when one of those menu entries is selected.
When a menu entry is selected, the plugin code is sent a string token that identifies the entry, and it must use that token to decide what to do.
The MeshTex menu entries lead to three kinds of operations:
Most MeshTex operations follow this general flow:
The visitor object follows these steps when processing a mesh:
The complete list of Radiant systems used by MeshTex is defined in the MeshTexPluginDependencies class declaration.
This version of MeshTex uses types and functions from these other sources:
The specific minor versions last used to build MeshTex are GtkRadiant 1.5.0, GTK+ 2.24.10, and STLport 5.2.1.