diff --git a/tesseract_task_composer/core/CMakeLists.txt b/tesseract_task_composer/core/CMakeLists.txt index 586a85e43d..f05b077614 100644 --- a/tesseract_task_composer/core/CMakeLists.txt +++ b/tesseract_task_composer/core/CMakeLists.txt @@ -17,8 +17,6 @@ add_library( src/task_composer_server.cpp src/task_composer_task.cpp) -generate_export_header(${PROJECT_NAME}) - target_link_libraries( ${PROJECT_NAME} PUBLIC console_bridge::console_bridge @@ -54,6 +52,9 @@ add_library( src/nodes/start_task.cpp src/nodes/sync_task.cpp src/test_suite/test_task.cpp) + +generate_export_header(${PROJECT_NAME}_nodes) + target_link_libraries( ${PROJECT_NAME}_nodes PUBLIC ${PROJECT_NAME} @@ -104,7 +105,7 @@ install( PATTERN "*.h" PATTERN "*.hpp") -install(FILES ${PROJECT_BINARY_DIR}/core/tesseract_task_composer_export.h DESTINATION include/${PROJECT_NAME}/core/ +install(FILES ${PROJECT_BINARY_DIR}/core/tesseract_task_composer_nodes_export.h DESTINATION include/${PROJECT_NAME}/core/ COMPONENT core) # Plugin should not be export only installed diff --git a/tesseract_task_composer/core/include/tesseract_task_composer/core/nodes/has_data_storage_entry_task.h b/tesseract_task_composer/core/include/tesseract_task_composer/core/nodes/has_data_storage_entry_task.h index fec21704d0..e9bbc213ac 100644 --- a/tesseract_task_composer/core/include/tesseract_task_composer/core/nodes/has_data_storage_entry_task.h +++ b/tesseract_task_composer/core/include/tesseract_task_composer/core/nodes/has_data_storage_entry_task.h @@ -5,6 +5,7 @@ TESSERACT_COMMON_IGNORE_WARNINGS_PUSH #include #include +#include TESSERACT_COMMON_IGNORE_WARNINGS_POP #include @@ -12,11 +13,11 @@ TESSERACT_COMMON_IGNORE_WARNINGS_POP namespace tesseract_planning { class TaskComposerPluginFactory; -class HasDataStorageEntryTask : public TaskComposerTask +class TESSERACT_TASK_COMPOSER_NODES_EXPORT HasDataStorageEntryTask : public TaskComposerTask { public: // Requried - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_KEYS_PORT; + static const std::string INPUT_KEYS_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/core/include/tesseract_task_composer/core/task_composer_node.h b/tesseract_task_composer/core/include/tesseract_task_composer/core/task_composer_node.h index f61ae1d40c..a15b62278f 100644 --- a/tesseract_task_composer/core/include/tesseract_task_composer/core/task_composer_node.h +++ b/tesseract_task_composer/core/include/tesseract_task_composer/core/task_composer_node.h @@ -34,7 +34,6 @@ TESSERACT_COMMON_IGNORE_WARNINGS_PUSH #include #include #include -#include TESSERACT_COMMON_IGNORE_WARNINGS_POP #include diff --git a/tesseract_task_composer/planning/CMakeLists.txt b/tesseract_task_composer/planning/CMakeLists.txt index ff337f1f7f..ddf2eae619 100644 --- a/tesseract_task_composer/planning/CMakeLists.txt +++ b/tesseract_task_composer/planning/CMakeLists.txt @@ -1,3 +1,6 @@ +# Need to create export header so static class variables can be exported on windows build +include(GenerateExportHeader) + find_package(tesseract_command_language REQUIRED) find_package( tesseract_motion_planners REQUIRED @@ -138,8 +141,11 @@ target_code_coverage( ENABLE ${TESSERACT_ENABLE_CODE_COVERAGE}) target_include_directories( ${PROJECT_NAME}_planning_nodes PUBLIC "$" + "$" "$") +generate_export_header(${PROJECT_NAME}_planning_nodes) + # Create factories target add_library(${PROJECT_NAME}_planning_factories ${FACTORIES_SOURCE_FILES}) target_link_libraries(${PROJECT_NAME}_planning_factories PUBLIC ${FACTORIES_SOURCE_LINK_LIBRARIES}) @@ -171,6 +177,9 @@ install( PATTERN "*.hpp" PATTERN ".svn" EXCLUDE) +install(FILES ${PROJECT_BINARY_DIR}/planning/tesseract_task_composer_planning_nodes_export.h DESTINATION include/${PROJECT_NAME}/planning/ + COMPONENT planning) + # Plugin should not be export only installed install( TARGETS ${PROJECT_NAME}_planning_factories diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/continuous_contact_check_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/continuous_contact_check_task.h index e4b2c64cf1..a096b3942e 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/continuous_contact_check_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/continuous_contact_check_task.h @@ -30,6 +30,7 @@ TESSERACT_COMMON_IGNORE_WARNINGS_PUSH #include #include #include +#include TESSERACT_COMMON_IGNORE_WARNINGS_POP #include @@ -41,17 +42,17 @@ TESSERACT_COMMON_IGNORE_WARNINGS_POP namespace tesseract_planning { class TaskComposerPluginFactory; -class ContinuousContactCheckTask : public TaskComposerTask +class TESSERACT_TASK_COMPOSER_PLANNING_NODES_EXPORT ContinuousContactCheckTask : public TaskComposerTask { public: // Requried - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PROGRAM_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_ENVIRONMENT_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PROFILES_PORT; + static const std::string INPUT_PROGRAM_PORT; + static const std::string INPUT_ENVIRONMENT_PORT; + static const std::string INPUT_PROFILES_PORT; // Optional - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_MANIP_INFO_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; + static const std::string INPUT_MANIP_INFO_PORT; + static const std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/discrete_contact_check_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/discrete_contact_check_task.h index c19d8ed7ec..5600e70d78 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/discrete_contact_check_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/discrete_contact_check_task.h @@ -30,6 +30,7 @@ TESSERACT_COMMON_IGNORE_WARNINGS_PUSH #include #include #include +#include TESSERACT_COMMON_IGNORE_WARNINGS_POP #include @@ -41,17 +42,17 @@ TESSERACT_COMMON_IGNORE_WARNINGS_POP namespace tesseract_planning { class TaskComposerPluginFactory; -class DiscreteContactCheckTask : public TaskComposerTask +class TESSERACT_TASK_COMPOSER_PLANNING_NODES_EXPORT DiscreteContactCheckTask : public TaskComposerTask { public: // Requried - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PROGRAM_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_ENVIRONMENT_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PROFILES_PORT; + static const std::string INPUT_PROGRAM_PORT; + static const std::string INPUT_ENVIRONMENT_PORT; + static const std::string INPUT_PROFILES_PORT; // Optional - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_MANIP_INFO_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; + static const std::string INPUT_MANIP_INFO_PORT; + static const std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/fix_state_bounds_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/fix_state_bounds_task.h index 1c405d6f6d..8c80cc0dcf 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/fix_state_bounds_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/fix_state_bounds_task.h @@ -30,6 +30,7 @@ TESSERACT_COMMON_IGNORE_WARNINGS_PUSH #include #include +#include TESSERACT_COMMON_IGNORE_WARNINGS_POP #include @@ -42,17 +43,17 @@ class TaskComposerPluginFactory; * @brief This task modifies the input instructions in order to push waypoints that are outside of their * limits back within them. */ -class FixStateBoundsTask : public TaskComposerTask +class TESSERACT_TASK_COMPOSER_PLANNING_NODES_EXPORT FixStateBoundsTask : public TaskComposerTask { public: // Requried - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INOUT_PROGRAM_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_ENVIRONMENT_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PROFILES_PORT; + static const std::string INOUT_PROGRAM_PORT; + static const std::string INPUT_ENVIRONMENT_PORT; + static const std::string INPUT_PROFILES_PORT; // Optional - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_MANIP_INFO_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; + static const std::string INPUT_MANIP_INFO_PORT; + static const std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/fix_state_collision_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/fix_state_collision_task.h index 2c673cfec9..d10dadd08e 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/fix_state_collision_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/fix_state_collision_task.h @@ -30,6 +30,7 @@ TESSERACT_COMMON_IGNORE_WARNINGS_PUSH #include #include +#include TESSERACT_COMMON_IGNORE_WARNINGS_POP #include @@ -50,17 +51,17 @@ struct FixStateCollisionProfile; * * First it uses TrajOpt to correct the waypoint. If that fails, it reverts to random sampling */ -class FixStateCollisionTask : public TaskComposerTask +class TESSERACT_TASK_COMPOSER_PLANNING_NODES_EXPORT FixStateCollisionTask : public TaskComposerTask { public: // Requried - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INOUT_PROGRAM_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_ENVIRONMENT_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PROFILES_PORT; + static const std::string INOUT_PROGRAM_PORT; + static const std::string INPUT_ENVIRONMENT_PORT; + static const std::string INPUT_PROFILES_PORT; // Optional - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_MANIP_INFO_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; + static const std::string INPUT_MANIP_INFO_PORT; + static const std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/format_as_input_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/format_as_input_task.h index 0b4e584c26..0cb33fab55 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/format_as_input_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/format_as_input_task.h @@ -33,6 +33,7 @@ TESSERACT_COMMON_IGNORE_WARNINGS_PUSH #include #include +#include TESSERACT_COMMON_IGNORE_WARNINGS_POP #include @@ -51,13 +52,13 @@ class TaskComposerPluginFactory; * input_keys[0]: The original input to motion planning * input_keys[1]: The output of the first motion plan which failed collision checking */ -class FormatAsInputTask : public TaskComposerTask +class TESSERACT_TASK_COMPOSER_PLANNING_NODES_EXPORT FormatAsInputTask : public TaskComposerTask { public: // Requried - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PRE_PLANNING_PROGRAM_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_POST_PLANNING_PROGRAM_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string OUTPUT_PROGRAM_PORT; + static const std::string INPUT_PRE_PLANNING_PROGRAM_PORT; + static const std::string INPUT_POST_PLANNING_PROGRAM_PORT; + static const std::string OUTPUT_PROGRAM_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/format_as_result_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/format_as_result_task.h index 9290567966..29ffabd75a 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/format_as_result_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/format_as_result_task.h @@ -5,6 +5,7 @@ TESSERACT_COMMON_IGNORE_WARNINGS_PUSH #include #include +#include TESSERACT_COMMON_IGNORE_WARNINGS_POP #include @@ -12,11 +13,11 @@ TESSERACT_COMMON_IGNORE_WARNINGS_POP namespace tesseract_planning { class TaskComposerPluginFactory; -class FormatAsResultTask : public TaskComposerTask +class TESSERACT_TASK_COMPOSER_PLANNING_NODES_EXPORT FormatAsResultTask : public TaskComposerTask { public: // Requried - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INOUT_PROGRAMS_PORT; + static const std::string INOUT_PROGRAMS_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/iterative_spline_parameterization_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/iterative_spline_parameterization_task.h index 685246cb31..3947c5b8ad 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/iterative_spline_parameterization_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/iterative_spline_parameterization_task.h @@ -30,6 +30,7 @@ TESSERACT_COMMON_IGNORE_WARNINGS_PUSH #include #include +#include TESSERACT_COMMON_IGNORE_WARNINGS_POP #include @@ -39,18 +40,18 @@ TESSERACT_COMMON_IGNORE_WARNINGS_POP namespace tesseract_planning { class TaskComposerPluginFactory; -class IterativeSplineParameterizationTask : public TaskComposerTask +class TESSERACT_TASK_COMPOSER_PLANNING_NODES_EXPORT IterativeSplineParameterizationTask : public TaskComposerTask { public: // Requried - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INOUT_PROGRAM_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_ENVIRONMENT_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PROFILES_PORT; + static const std::string INOUT_PROGRAM_PORT; + static const std::string INPUT_ENVIRONMENT_PORT; + static const std::string INPUT_PROFILES_PORT; // Optional - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_MANIP_INFO_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_MOVE_PROFILE_REMAPPING_PORT; + static const std::string INPUT_MANIP_INFO_PORT; + static const std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; + static const std::string INPUT_MOVE_PROFILE_REMAPPING_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/min_length_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/min_length_task.h index 8d8fc29ff8..2afc4c8499 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/min_length_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/min_length_task.h @@ -31,6 +31,7 @@ TESSERACT_COMMON_IGNORE_WARNINGS_PUSH #include #include +#include TESSERACT_COMMON_IGNORE_WARNINGS_POP #include @@ -38,16 +39,16 @@ TESSERACT_COMMON_IGNORE_WARNINGS_POP namespace tesseract_planning { class TaskComposerPluginFactory; -class MinLengthTask : public TaskComposerTask +class TESSERACT_TASK_COMPOSER_PLANNING_NODES_EXPORT MinLengthTask : public TaskComposerTask { public: // Requried - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INOUT_PROGRAM_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_ENVIRONMENT_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PROFILES_PORT; + static const std::string INOUT_PROGRAM_PORT; + static const std::string INPUT_ENVIRONMENT_PORT; + static const std::string INPUT_PROFILES_PORT; // Optional - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; + static const std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/motion_planner_task.hpp b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/motion_planner_task.hpp index b3e106e472..0fad182cdf 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/motion_planner_task.hpp +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/motion_planner_task.hpp @@ -53,14 +53,14 @@ class MotionPlannerTask : public TaskComposerTask { public: // Requried - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INOUT_PROGRAM_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_ENVIRONMENT_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PROFILES_PORT; + static const std::string INOUT_PROGRAM_PORT; + static const std::string INPUT_ENVIRONMENT_PORT; + static const std::string INPUT_PROFILES_PORT; // Optional - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_MANIP_INFO_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_MOVE_PROFILE_REMAPPING_PORT; + static const std::string INPUT_MANIP_INFO_PORT; + static const std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; + static const std::string INPUT_MOVE_PROFILE_REMAPPING_PORT; MotionPlannerTask() : TaskComposerTask("MotionPlannerTask", MotionPlannerTask::ports(), true) {} explicit MotionPlannerTask(std::string name, // NOLINT(performance-unnecessary-value-param) diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/process_planning_input_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/process_planning_input_task.h index 9f78e58ee4..ad45629796 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/process_planning_input_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/process_planning_input_task.h @@ -31,6 +31,7 @@ TESSERACT_COMMON_IGNORE_WARNINGS_PUSH #include #include +#include TESSERACT_COMMON_IGNORE_WARNINGS_POP #include @@ -38,12 +39,12 @@ TESSERACT_COMMON_IGNORE_WARNINGS_POP namespace tesseract_planning { class TaskComposerPluginFactory; -class ProcessPlanningInputTask : public TaskComposerTask +class TESSERACT_TASK_COMPOSER_PLANNING_NODES_EXPORT ProcessPlanningInputTask : public TaskComposerTask { public: // Requried - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PLANNING_INPUT_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string OUTPUT_PROGRAM_PORT; + static const std::string INPUT_PLANNING_INPUT_PORT; + static const std::string OUTPUT_PROGRAM_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/profile_switch_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/profile_switch_task.h index 94665b3055..d0873270f7 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/profile_switch_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/profile_switch_task.h @@ -28,6 +28,7 @@ TESSERACT_COMMON_IGNORE_WARNINGS_PUSH #include #include +#include TESSERACT_COMMON_IGNORE_WARNINGS_POP #include @@ -39,15 +40,15 @@ class TaskComposerPluginFactory; * @brief This task simply returns a value specified in the composite profile. This can be used to switch execution * based on the profile */ -class ProfileSwitchTask : public TaskComposerTask +class TESSERACT_TASK_COMPOSER_PLANNING_NODES_EXPORT ProfileSwitchTask : public TaskComposerTask { public: // Requried - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PROGRAM_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PROFILES_PORT; + static const std::string INPUT_PROGRAM_PORT; + static const std::string INPUT_PROFILES_PORT; // Optional - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; + static const std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/raster_motion_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/raster_motion_task.h index ec6bf7f2de..03482d67ee 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/raster_motion_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/raster_motion_task.h @@ -31,6 +31,7 @@ TESSERACT_COMMON_IGNORE_WARNINGS_PUSH #include #include #include +#include TESSERACT_COMMON_IGNORE_WARNINGS_POP #include @@ -56,15 +57,15 @@ class TaskComposerPluginFactory; * } */ -class RasterMotionTask : public TaskComposerTask +class TESSERACT_TASK_COMPOSER_PLANNING_NODES_EXPORT RasterMotionTask : public TaskComposerTask { public: // Requried - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INOUT_PROGRAM_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_ENVIRONMENT_PORT; + static const std::string INOUT_PROGRAM_PORT; + static const std::string INPUT_ENVIRONMENT_PORT; // Optional - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_MANIP_INFO_PORT; + static const std::string INPUT_MANIP_INFO_PORT; struct TaskFactoryResults { diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/raster_only_motion_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/raster_only_motion_task.h index c102cc4a38..2410b4164f 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/raster_only_motion_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/raster_only_motion_task.h @@ -31,6 +31,7 @@ TESSERACT_COMMON_IGNORE_WARNINGS_PUSH #include #include #include +#include TESSERACT_COMMON_IGNORE_WARNINGS_POP #include @@ -52,15 +53,15 @@ class TaskComposerPluginFactory; * Composite - Raster segment * } */ -class RasterOnlyMotionTask : public TaskComposerTask +class TESSERACT_TASK_COMPOSER_PLANNING_NODES_EXPORT RasterOnlyMotionTask : public TaskComposerTask { public: // Requried - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INOUT_PROGRAM_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_ENVIRONMENT_PORT; + static const std::string INOUT_PROGRAM_PORT; + static const std::string INPUT_ENVIRONMENT_PORT; // Optional - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_MANIP_INFO_PORT; + static const std::string INPUT_MANIP_INFO_PORT; struct TaskFactoryResults { diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/ruckig_trajectory_smoothing_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/ruckig_trajectory_smoothing_task.h index 9873bb1fd0..8ed42834fb 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/ruckig_trajectory_smoothing_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/ruckig_trajectory_smoothing_task.h @@ -28,6 +28,7 @@ TESSERACT_COMMON_IGNORE_WARNINGS_PUSH #include #include +#include TESSERACT_COMMON_IGNORE_WARNINGS_POP #include @@ -35,18 +36,18 @@ TESSERACT_COMMON_IGNORE_WARNINGS_POP namespace tesseract_planning { class TaskComposerPluginFactory; -class RuckigTrajectorySmoothingTask : public TaskComposerTask +class TESSERACT_TASK_COMPOSER_PLANNING_NODES_EXPORT RuckigTrajectorySmoothingTask : public TaskComposerTask { public: // Requried - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INOUT_PROGRAM_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_ENVIRONMENT_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PROFILES_PORT; + static const std::string INOUT_PROGRAM_PORT; + static const std::string INPUT_ENVIRONMENT_PORT; + static const std::string INPUT_PROFILES_PORT; // Optional - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_MANIP_INFO_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_MOVE_PROFILE_REMAPPING_PORT; + static const std::string INPUT_MANIP_INFO_PORT; + static const std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; + static const std::string INPUT_MOVE_PROFILE_REMAPPING_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/time_optimal_parameterization_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/time_optimal_parameterization_task.h index 2423961aae..116141e159 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/time_optimal_parameterization_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/time_optimal_parameterization_task.h @@ -31,6 +31,7 @@ TESSERACT_COMMON_IGNORE_WARNINGS_PUSH #include #include +#include TESSERACT_COMMON_IGNORE_WARNINGS_POP #include @@ -39,18 +40,18 @@ TESSERACT_COMMON_IGNORE_WARNINGS_POP namespace tesseract_planning { class TaskComposerPluginFactory; -class TimeOptimalParameterizationTask : public TaskComposerTask +class TESSERACT_TASK_COMPOSER_PLANNING_NODES_EXPORT TimeOptimalParameterizationTask : public TaskComposerTask { public: // Requried - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INOUT_PROGRAM_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_ENVIRONMENT_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PROFILES_PORT; + static const std::string INOUT_PROGRAM_PORT; + static const std::string INPUT_ENVIRONMENT_PORT; + static const std::string INPUT_PROFILES_PORT; // Optional - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_MANIP_INFO_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_MOVE_PROFILE_REMAPPING_PORT; + static const std::string INPUT_MANIP_INFO_PORT; + static const std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; + static const std::string INPUT_MOVE_PROFILE_REMAPPING_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/update_end_state_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/update_end_state_task.h index ff4f706098..ccc1960f09 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/update_end_state_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/update_end_state_task.h @@ -29,19 +29,20 @@ TESSERACT_COMMON_IGNORE_WARNINGS_PUSH #include #include +#include TESSERACT_COMMON_IGNORE_WARNINGS_POP #include namespace tesseract_planning { -class UpdateEndStateTask : public TaskComposerTask +class TESSERACT_TASK_COMPOSER_PLANNING_NODES_EXPORT UpdateEndStateTask : public TaskComposerTask { public: // Requried - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_CURRENT_PROGRAM_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_NEXT_PROGRAM_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string OUTPUT_PROGRAM_PORT; + static const std::string INPUT_CURRENT_PROGRAM_PORT; + static const std::string INPUT_NEXT_PROGRAM_PORT; + static const std::string OUTPUT_PROGRAM_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/update_start_and_end_state_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/update_start_and_end_state_task.h index 95d8f4ac84..42917107ff 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/update_start_and_end_state_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/update_start_and_end_state_task.h @@ -29,20 +29,21 @@ TESSERACT_COMMON_IGNORE_WARNINGS_PUSH #include #include +#include TESSERACT_COMMON_IGNORE_WARNINGS_POP #include namespace tesseract_planning { -class UpdateStartAndEndStateTask : public TaskComposerTask +class TESSERACT_TASK_COMPOSER_PLANNING_NODES_EXPORT UpdateStartAndEndStateTask : public TaskComposerTask { public: // Requried - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PREVIOUS_PROGRAM_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_CURRENT_PROGRAM_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_NEXT_PROGRAM_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string OUTPUT_PROGRAM_PORT; + static const std::string INPUT_PREVIOUS_PROGRAM_PORT; + static const std::string INPUT_CURRENT_PROGRAM_PORT; + static const std::string INPUT_NEXT_PROGRAM_PORT; + static const std::string OUTPUT_PROGRAM_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/update_start_state_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/update_start_state_task.h index de60a5e365..7f39a9f5b3 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/update_start_state_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/update_start_state_task.h @@ -29,19 +29,20 @@ TESSERACT_COMMON_IGNORE_WARNINGS_PUSH #include #include +#include TESSERACT_COMMON_IGNORE_WARNINGS_POP #include namespace tesseract_planning { -class UpdateStartStateTask : public TaskComposerTask +class TESSERACT_TASK_COMPOSER_PLANNING_NODES_EXPORT UpdateStartStateTask : public TaskComposerTask { public: // Requried - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PREVIOUS_PROGRAM_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_CURRENT_PROGRAM_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string OUTPUT_PROGRAM_PORT; + static const std::string INPUT_PREVIOUS_PROGRAM_PORT; + static const std::string INPUT_CURRENT_PROGRAM_PORT; + static const std::string OUTPUT_PROGRAM_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/upsample_trajectory_task.h b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/upsample_trajectory_task.h index 11c8ad3c85..918da768db 100644 --- a/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/upsample_trajectory_task.h +++ b/tesseract_task_composer/planning/include/tesseract_task_composer/planning/nodes/upsample_trajectory_task.h @@ -29,6 +29,7 @@ TESSERACT_COMMON_IGNORE_WARNINGS_PUSH #include #include +#include TESSERACT_COMMON_IGNORE_WARNINGS_POP #include @@ -43,15 +44,15 @@ class TaskComposerPluginFactory; * assume joint interpolated between states. If the points are spaced to fart apart the path between * two states may not be a straight line causing collision during execution. */ -class UpsampleTrajectoryTask : public TaskComposerTask +class TESSERACT_TASK_COMPOSER_PLANNING_NODES_EXPORT UpsampleTrajectoryTask : public TaskComposerTask { public: // Requried - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INOUT_PROGRAM_PORT; - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_PROFILES_PORT; + static const std::string INOUT_PROGRAM_PORT; + static const std::string INPUT_PROFILES_PORT; // Optional - static const TESSERACT_TASK_COMPOSER_EXPORT std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; + static const std::string INPUT_COMPOSITE_PROFILE_REMAPPING_PORT; using Ptr = std::shared_ptr; using ConstPtr = std::shared_ptr; diff --git a/tesseract_task_composer/test/tesseract_task_composer_plugin_factories_unit.cpp b/tesseract_task_composer/test/tesseract_task_composer_plugin_factories_unit.cpp index 47769eb592..78bde3db9c 100644 --- a/tesseract_task_composer/test/tesseract_task_composer_plugin_factories_unit.cpp +++ b/tesseract_task_composer/test/tesseract_task_composer_plugin_factories_unit.cpp @@ -134,8 +134,15 @@ TEST(TesseractTaskComposerFactoryUnit, LoadAndExportPluginTest) // NOLINT } { // String Constructor +#ifdef TESSERACT_TASK_COMPOSER_HAS_TRAJOPT_IFOPT tesseract_common::fs::path config_path(std::string(TESSERACT_TASK_COMPOSER_DIR) + "/config/" "task_composer_plugins.yaml"); +#else + tesseract_common::fs::path config_path(std::string(TESSERACT_TASK_COMPOSER_DIR) + "/config/" + "task_composer_plugins_no_" + "trajopt_" + "ifopt.yaml"); +#endif TaskComposerPluginFactory factory(tesseract_common::fileToString(config_path)); YAML::Node plugin_config = YAML::LoadFile(config_path.string()); @@ -148,8 +155,15 @@ TEST(TesseractTaskComposerFactoryUnit, LoadAndExportPluginTest) // NOLINT } { // YAML Node Constructor +#ifdef TESSERACT_TASK_COMPOSER_HAS_TRAJOPT_IFOPT tesseract_common::fs::path config_path(std::string(TESSERACT_TASK_COMPOSER_DIR) + "/config/" "task_composer_plugins.yaml"); +#else + tesseract_common::fs::path config_path(std::string(TESSERACT_TASK_COMPOSER_DIR) + "/config/" + "task_composer_plugins_no_" + "trajopt_" + "ifopt.yaml"); +#endif YAML::Node plugin_config = YAML::LoadFile(config_path.string()); TaskComposerPluginFactory factory(plugin_config); @@ -163,8 +177,15 @@ TEST(TesseractTaskComposerFactoryUnit, LoadAndExportPluginTest) // NOLINT // TaskComposerPluginInfo Constructor { +#ifdef TESSERACT_TASK_COMPOSER_HAS_TRAJOPT_IFOPT tesseract_common::fs::path config_path(std::string(TESSERACT_TASK_COMPOSER_DIR) + "/config/" "task_composer_plugins.yaml"); +#else + tesseract_common::fs::path config_path(std::string(TESSERACT_TASK_COMPOSER_DIR) + "/config/" + "task_composer_plugins_no_" + "trajopt_" + "ifopt.yaml"); +#endif YAML::Node plugin_config = YAML::LoadFile(config_path.string()); const YAML::Node& plugins = plugin_config[tesseract_common::TaskComposerPluginInfo::CONFIG_KEY];