.. _program_listing_file_include_reach_plugin_utils.h: Program Listing for File plugin_utils.h ======================================= |exhale_lsh| :ref:`Return to documentation for file ` (``include/reach/plugin_utils.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #ifndef reach_PLUGIN_UTILS_H #define reach_PLUGIN_UTILS_H #include #include #include namespace reach { template T get(const YAML::Node& config, const std::string& key) { if (!config[key].IsDefined()) { std::stringstream ss; ss << "Failed to get '" << key << "' parameter within node at line " << config.Mark().line; throw std::runtime_error(ss.str()); } try { return config[key].as(); } catch (const YAML::Exception& ex) { std::stringstream ss; ss << "Failed to cast '" << key << "' parameter with value '" << config[key] << "' to expected type '" << boost::core::demangle(typeid(T).name()) << "' (line " << ex.mark.line << ")"; throw std::runtime_error(ss.str()); } } std::string resolveURI(const std::string filename); Eigen::Isometry3d createFrame(const Eigen::Vector3f& pt, const Eigen::Vector3f& norm); } // namespace reach #include #define EXPORT_DISPLAY_PLUGIN(DERIVED_CLASS, ALIAS) EXPORT_CLASS_SECTIONED(DERIVED_CLASS, ALIAS, DISPLAY_SECTION) #define EXPORT_EVALUATOR_PLUGIN(DERIVED_CLASS, ALIAS) EXPORT_CLASS_SECTIONED(DERIVED_CLASS, ALIAS, EVALUATOR_SECTION) #define EXPORT_IK_SOLVER_PLUGIN(DERIVED_CLASS, ALIAS) EXPORT_CLASS_SECTIONED(DERIVED_CLASS, ALIAS, IK_SOLVER_SECTION) #define EXPORT_LOGGER_PLUGIN(DERIVED_CLASS, ALIAS) EXPORT_CLASS_SECTIONED(DERIVED_CLASS, ALIAS, LOGGER_SECTION) #define EXPORT_TARGET_POSE_GENERATOR_PLUGIN(DERIVED_CLASS, ALIAS) \ EXPORT_CLASS_SECTIONED(DERIVED_CLASS, ALIAS, TARGET_POSE_GEN_SECTION) #endif // reach_PLUGIN_UTILS_H