21 #ifndef _PLUGINS_NAVGRAPH_INTERACTIVE_NAVGRAPH_INTERACTIVE_THREAD_H_
22 #define _PLUGINS_NAVGRAPH_INTERACTIVE_NAVGRAPH_INTERACTIVE_THREAD_H_
24 #include <aspect/aspect_provider.h>
25 #include <aspect/blackboard.h>
26 #include <aspect/clock.h>
27 #include <aspect/configurable.h>
28 #include <aspect/logging.h>
29 #include <core/threading/thread.h>
30 #include <interactive_markers/menu_handler.h>
31 #include <interfaces/NavigatorInterface.h>
32 #include <navgraph/aspect/navgraph.h>
33 #include <navgraph/navgraph.h>
34 #include <navgraph/navgraph_node.h>
35 #include <plugins/ros/aspect/ros.h>
36 #include <visualization_msgs/InteractiveMarker.h>
37 #include <visualization_msgs/InteractiveMarkerFeedback.h>
38 #include <visualization_msgs/MarkerArray.h>
42 namespace interactive_markers {
43 class InteractiveMarkerServer;
57 std::shared_ptr<interactive_markers::MenuHandler> handler;
58 interactive_markers::MenuHandler::EntryHandle ori_handle;
59 interactive_markers::MenuHandler::EntryHandle goto_handle;
60 interactive_markers::MenuHandler::EntryHandle remove_handle;
61 std::map<interactive_markers::MenuHandler::EntryHandle, std::string> dir_connect_nodes;
62 std::map<interactive_markers::MenuHandler::EntryHandle, std::string> undir_connect_nodes;
63 std::map<interactive_markers::MenuHandler::EntryHandle, std::string> disconnect_nodes;
68 interactive_markers::MenuHandler::EntryHandle add_handle;
69 interactive_markers::MenuHandler::EntryHandle save_handle;
70 interactive_markers::MenuHandler::EntryHandle stop_handle;
90 void process_node_feedback(
const visualization_msgs::InteractiveMarkerFeedbackConstPtr &feedback);
92 process_node_ori_feedback(
const visualization_msgs::InteractiveMarkerFeedbackConstPtr &feedback,
93 const NodeMenu & menu,
94 visualization_msgs::InteractiveMarker &int_marker);
96 process_graph_feedback(
const visualization_msgs::InteractiveMarkerFeedbackConstPtr &feedback);
102 std::string cfg_global_frame_;
103 std::string cfg_save_filename_;
105 interactive_markers::InteractiveMarkerServer *server_;
107 std::map<std::string, NodeMenu> node_menus_;
109 std::shared_ptr<interactive_markers::MenuHandler> graph_menu_handler_;
110 GraphMenu graph_menu_;