Go to the documentation of this file.
26 #ifndef TESSERACT_COLLISION_CONTACT_MANAGERS_PLUGIN_FACTORY_H
27 #define TESSERACT_COLLISION_CONTACT_MANAGERS_PLUGIN_FACTORY_H
38 #include <boost_plugin_loader/plugin_loader.h>
39 #include <boost_plugin_loader/macros.h>
43 #define TESSERACT_ADD_DISCRETE_MANAGER_PLUGIN(DERIVED_CLASS, ALIAS) \
44 EXPORT_CLASS_SECTIONED(DERIVED_CLASS, ALIAS, DiscColl)
46 #define TESSERACT_ADD_CONTINUOUS_MANAGER_PLUGIN(DERIVED_CLASS, ALIAS) \
47 EXPORT_CLASS_SECTIONED(DERIVED_CLASS, ALIAS, ContColl)
53 class ContactManagersPluginFactory;
54 class DiscreteContactManager;
55 class ContinuousContactManager;
61 using Ptr = std::shared_ptr<DiscreteContactManagerFactory>;
62 using ConstPtr = std::shared_ptr<const DiscreteContactManagerFactory>;
71 virtual std::unique_ptr<DiscreteContactManager>
create(
const std::string& name,
const YAML::Node& config)
const = 0;
82 using Ptr = std::shared_ptr<ContinuousContactManagerFactory>;
83 using ConstPtr = std::shared_ptr<const ContinuousContactManagerFactory>;
92 virtual std::unique_ptr<ContinuousContactManager>
create(
const std::string& solver_name,
93 const YAML::Node& config)
const = 0;
250 std::unique_ptr<DiscreteContactManager>
265 std::unique_ptr<ContinuousContactManager>
272 void saveConfig(
const std::filesystem::path& file_path)
const;
290 #endif // TESSERACT_COLLISION_CONTACT_MANAGERS_PLUGIN_FACTORY_H
#define TESSERACT_COMMON_IGNORE_WARNINGS_PUSH
std::map< std::string, PluginInfo > PluginInfoMap