Skip to content

C++ plugin page template

Copy this page to docs/cpp/plugins/<plugin>.md, replace the placeholders, and add it under C++ → Plugin API documentation in mkdocs.yml.

<Plugin>

State what the library adds, its target name, the namespace it owns, and whether it is optional.

find_package(uLib CONFIG REQUIRED)
target_link_libraries(app PRIVATE mutomCore &lt;plugin-target&gt;)

Public headers and classes

Header Classes / enums / functions Purpose
<Plugin>/Feature.h Feature One-sentence public role.

Document every installed header. Do not include internal helper types merely because they appear in a source file.

Minimal example

Use a small compiling example built against installed headers. If the object is scene-visible, create it through an ObjectsContext:

#include <Core/ObjectsContext.h>
#include &lt;Plugin&gt;/Feature.h

uLib::ObjectsContext context;
auto *feature = context.CreateObject<uLib::Feature>("feature");
feature->Enabled.Set(true);

Scene and serialization behavior

Say whether the class is an Object, how it is registered, which factory category it uses, and what external data is embedded or referenced.

#include <Core/ObjectFactory.h>
ULIB_REGISTER_OBJECT_CATEGORY(uLib::Feature, "MyPlugin")

Optional integrations

Document each integration that exists:

  • VTK representation and ULIB_REGISTER_PROP3D location;
  • ROOT plotting/tree/file adapter;
  • gcompose Python module and PythonPluginRegistry registrar;
  • external run-time library requirements;
  • streaming input/output ports and their ownership/threading rules.

Validation

List the focused test target or example command used to validate the page's workflow. Link public behavior to tests where a short example would otherwise be ambiguous.