bullet_factories.cpp
Go to the documentation of this file.
1 
29 #include <yaml-cpp/yaml.h>
31 
38 
41 
43 {
45 {
46  if (config.IsNull())
47  return {};
48 
49  bool share_pool_allocators{ false };
50  if (YAML::Node n = config["share_pool_allocators"])
51  share_pool_allocators = n.as<bool>();
52 
53  TesseractCollisionConfigurationInfo config_info(false, share_pool_allocators);
54 
55  if (YAML::Node n = config["max_persistent_manifold_pool_size"])
56  config_info.m_defaultMaxPersistentManifoldPoolSize = n.as<int>();
57 
58  if (YAML::Node n = config["max_collision_algorithm_pool_size"])
59  config_info.m_defaultMaxCollisionAlgorithmPoolSize = n.as<int>();
60 
61  config_info.createPoolAllocators();
62  return config_info;
63 }
64 
65 std::unique_ptr<tesseract_collision::DiscreteContactManager>
66 BulletDiscreteBVHManagerFactory::create(const std::string& name, const YAML::Node& config) const
67 {
68  return std::make_unique<BulletDiscreteBVHManager>(name, getConfigInfo(config));
69 }
70 
71 std::unique_ptr<DiscreteContactManager> BulletDiscreteSimpleManagerFactory::create(const std::string& name,
72  const YAML::Node& config) const
73 {
74  return std::make_unique<BulletDiscreteSimpleManager>(name, getConfigInfo(config));
75 }
76 
77 std::unique_ptr<ContinuousContactManager> BulletCastBVHManagerFactory::create(const std::string& name,
78  const YAML::Node& config) const
79 {
80  return std::make_unique<BulletCastBVHManager>(name, getConfigInfo(config));
81 }
82 
83 std::unique_ptr<ContinuousContactManager> BulletCastSimpleManagerFactory::create(const std::string& name,
84  const YAML::Node& config) const
85 {
86  return std::make_unique<BulletCastSimpleManager>(name, getConfigInfo(config));
87 }
88 
89 PLUGIN_ANCHOR_IMPL(BulletFactoriesAnchor)
90 
91 } // namespace tesseract_collision::tesseract_collision_bullet
92 
93 // NOLINTNEXTLINE(cppcoreguidelines-avoid-non-const-global-variables)
95  BulletDiscreteBVHManagerFactory);
96 // NOLINTNEXTLINE(cppcoreguidelines-avoid-non-const-global-variables)
99  BulletDiscreteSimpleManagerFactory);
100 // NOLINTNEXTLINE(cppcoreguidelines-avoid-non-const-global-variables)
102  BulletCastBVHManagerFactory);
103 // NOLINTNEXTLINE(cppcoreguidelines-avoid-non-const-global-variables)
105  BulletCastSimpleManagerFactory);
tesseract_collision::tesseract_collision_bullet::BulletCastBVHManagerFactory
Definition: bullet_factories.h:67
bullet_cast_simple_manager.h
Tesseract ROS Bullet cast(continuous) simple collision manager.
tesseract_collision::tesseract_collision_bullet
Definition: bullet_cast_bvh_manager.h:48
tesseract_collision::tesseract_collision_bullet::BulletDiscreteBVHManagerFactory::create
std::unique_ptr< DiscreteContactManager > create(const std::string &name, const YAML::Node &config) const override final
Create Discrete Contact Manager Object.
Definition: bullet_factories.cpp:66
tesseract_collision::tesseract_collision_bullet::TesseractCollisionConfigurationInfo
Definition: tesseract_collision_configuration.h:52
bullet_cast_bvh_manager.h
Tesseract ROS Bullet cast(continuous) BVH collision manager.
bullet_discrete_simple_manager.h
Tesseract ROS Bullet discrete simple collision manager.
tesseract_collision_configuration.h
Modified bullet collision configuration.
discrete_contact_manager.h
This is the discrete contact manager base class.
tesseract_collision::tesseract_collision_bullet::getConfigInfo
TesseractCollisionConfigurationInfo getConfigInfo(const YAML::Node &config)
Definition: bullet_factories.cpp:44
TESSERACT_COMMON_IGNORE_WARNINGS_PUSH
#define TESSERACT_COMMON_IGNORE_WARNINGS_PUSH
tesseract_collision::tesseract_collision_bullet::BulletCastSimpleManagerFactory
Definition: bullet_factories.h:74
tesseract_collision::tesseract_collision_bullet::BulletCastBVHManagerFactory::create
std::unique_ptr< ContinuousContactManager > create(const std::string &name, const YAML::Node &config) const override final
Create Inverse Kinematics Object.
Definition: bullet_factories.cpp:77
name
std::string name
bullet_discrete_bvh_manager.h
Tesseract ROS Bullet discrete BVH collision manager.
TESSERACT_COMMON_IGNORE_WARNINGS_POP
Definition: create_convex_hull.cpp:37
tesseract_collision::tesseract_collision_bullet::BulletCastSimpleManagerFactory::create
std::unique_ptr< ContinuousContactManager > create(const std::string &name, const YAML::Node &config) const override final
Create Inverse Kinematics Object.
Definition: bullet_factories.cpp:83
TESSERACT_ADD_CONTINUOUS_MANAGER_PLUGIN
TESSERACT_ADD_CONTINUOUS_MANAGER_PLUGIN(tesseract_collision::tesseract_collision_bullet::BulletCastBVHManagerFactory, BulletCastBVHManagerFactory)
TESSERACT_ADD_DISCRETE_MANAGER_PLUGIN
TESSERACT_ADD_DISCRETE_MANAGER_PLUGIN(tesseract_collision::tesseract_collision_bullet::BulletDiscreteBVHManagerFactory, BulletDiscreteBVHManagerFactory)
tesseract_collision::tesseract_collision_bullet::BulletDiscreteSimpleManagerFactory::create
std::unique_ptr< DiscreteContactManager > create(const std::string &name, const YAML::Node &config) const override final
Create Discrete Contact Manager Object.
Definition: bullet_factories.cpp:71
bullet_factories.h
Factories for loading bullet contact managers as plugins.
tesseract_collision::tesseract_collision_bullet::BulletDiscreteSimpleManagerFactory
Definition: bullet_factories.h:60
tesseract_collision::tesseract_collision_bullet::BulletDiscreteBVHManagerFactory
The yaml config for each of the factories below is the same.
Definition: bullet_factories.h:53
macros.h
continuous_contact_manager.h
This is the continuous contact manager base class.


tesseract_collision
Author(s): Levi Armstrong
autogenerated on Sun May 18 2025 03:01:52