Skip to content

Update the plugin interface to accommodate the publishing of FPV and AXF nodes

This MR is the companion of MR GeoModelDev/GeoModel!8 (merged) , and must be built, in fact, on top of the latter.

This MR updates the plugins to follow the changes introduced in GeoModel to let users (subsystems, in particular) publish list of FullPhysVol and AlignableTransform nodes.

In particular:

  • The GeoVGeometryPlugin class now features an additional constructor, which takes a std::string as an argument, to set the plugin's name. The parameterized constructor also creates a unique_ptr to an instance of GeoModelKernel/GeoPublisher.
  • The GeoVGeometryPlugin plugin owns the unique_ptr as a private class member and it returns raw pointers to that by mean of the getPublisher() method. Classes that derive from GeoVGeometryPlugin will use the getPublisher method to get the raw pointer.
  • Simple plugins that do not have to publish nodes can use the default GeoVGeometryPlugin() constructor. The plugins that wish to publish nodes can use the parameterized constructor, then implement the publishing code in the create() method.
  • The plugin's method create(GeoVPhysVol*, bool) now accepts an optional boolean argument to trigger/enable the publishing of GeoModel nodes by the plugin. Applications using the plugin can trigger the publishing by passing a true to the create(...) method; then they can get the publisher pointer by calling the plugin's getPublisher() method.
Edited by Riccardo Maria Bianchi

Merge request reports

Loading