contact_managers_factory_static_unit.cpp
Go to the documentation of this file.
1 
28 #include <gtest/gtest.h>
29 #include <fstream>
31 
37 #include <boost_plugin_loader/utils.h>
38 
39 using namespace tesseract_collision;
40 
41 TEST(TesseractContactManagersFactoryUnit, StaticLoadPlugin) // NOLINT
42 {
43  boost_plugin_loader::addSymbolLibraryToSearchLibrariesEnv(
44  tesseract_collision::tesseract_collision_bullet::BulletFactoriesAnchor(), "TESSERACT_CONTACT_MANAGERS_PLUGINS");
45 
46  std::string config = R"(contact_manager_plugins:
47  search_paths:
48  - /usr/local/lib
49  search_libraries:
50  - tesseract_collision_bullet_factories_not_there
51  - tesseract_collision_fcl_factories_not_there
52  discrete_plugins:
53  default: BulletDiscreteBVHManager
54  plugins:
55  BulletDiscreteBVHManager:
56  class: BulletDiscreteBVHManagerFactory
57  BulletDiscreteSimpleManager:
58  class: BulletDiscreteSimpleManagerFactory
59  FCLDiscreteBVHManager:
60  class: FCLDiscreteBVHManagerFactory
61  continuous_plugins:
62  default: BulletCastBVHManager
63  plugins:
64  BulletCastBVHManager:
65  class: BulletCastBVHManagerFactory
66  BulletCastSimpleManager:
67  class: BulletCastSimpleManagerFactory)";
68 
70  ContactManagersPluginFactory factory(config, locator);
71  factory.clearSearchLibraries();
72  factory.clearSearchPaths();
73  YAML::Node plugin_config = tesseract_common::loadYamlString(config, locator);
74 
75  DiscreteContactManager::UPtr cm = factory.createDiscreteContactManager("BulletDiscreteBVHManager");
76  EXPECT_TRUE(cm != nullptr);
77 }
78 
79 int main(int argc, char** argv)
80 {
81  testing::InitGoogleTest(&argc, argv);
82 
83  return RUN_ALL_TESTS();
84 }
contact_managers_plugin_factory.h
Factory for loading contact managers as plugins.
tesseract_collision::ContactManagersPluginFactory::createDiscreteContactManager
std::unique_ptr< DiscreteContactManager > createDiscreteContactManager(const std::string &name) const
Get discrete contact manager object given name.
Definition: contact_managers_plugin_factory.cpp:224
resource_locator.h
discrete_contact_manager.h
This is the discrete contact manager base class.
TESSERACT_COMMON_IGNORE_WARNINGS_PUSH
#define TESSERACT_COMMON_IGNORE_WARNINGS_PUSH
EXPECT_TRUE
#define EXPECT_TRUE(args)
main
int main(int argc, char **argv)
Definition: contact_managers_factory_static_unit.cpp:79
tesseract_common::loadYamlString
YAML::Node loadYamlString(const std::string &yaml_string, const ResourceLocator &locator)
TESSERACT_COMMON_IGNORE_WARNINGS_POP
Definition: create_convex_hull.cpp:37
tesseract_collision::ContactManagersPluginFactory::clearSearchLibraries
void clearSearchLibraries()
Clean the search libraries.
Definition: contact_managers_plugin_factory.cpp:119
TEST
TEST(TesseractContactManagersFactoryUnit, StaticLoadPlugin)
Definition: contact_managers_factory_static_unit.cpp:41
tesseract_collision::ContactManagersPluginFactory
Definition: contact_managers_plugin_factory.h:100
yaml_utils.h
bullet_factories.h
Factories for loading bullet contact managers as plugins.
tesseract_common::GeneralResourceLocator
tesseract_collision::DiscreteContactManager::UPtr
std::unique_ptr< DiscreteContactManager > UPtr
Definition: discrete_contact_manager.h:50
tesseract_collision
Definition: bullet_cast_bvh_manager.h:48
macros.h
tesseract_collision::ContactManagersPluginFactory::clearSearchPaths
void clearSearchPaths()
Clear the search paths.
Definition: contact_managers_plugin_factory.cpp:107


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