23 #ifndef _NAVGRAPH_CONSTRAINTS_TIMED_RESERVATION_LIST_NODE_CONSTRAINT_H_
24 #define _NAVGRAPH_CONSTRAINTS_TIMED_RESERVATION_LIST_NODE_CONSTRAINT_H_
26 #include <logging/logger.h>
27 #include <navgraph/constraints/static_list_node_constraint.h>
28 #include <navgraph/navgraph.h>
29 #include <utils/time/time.h>
40 std::string constraint_name,
45 std::string constraint_name,
47 std::vector<std::pair<fawkes::NavGraphNode, fawkes::Time>>
node_time_list);
51 const std::vector<std::pair<fawkes::NavGraphNode, fawkes::Time>> &
node_time_list()
const;
54 void add_nodes(
const std::vector<std::pair<fawkes::NavGraphNode, fawkes::Time>> &timed_nodes);
59 virtual bool compute(
void)
throw();
63 std::vector<std::pair<fawkes::NavGraphNode, fawkes::Time>> node_time_list_;
67 std::string constraint_name_;
This is supposed to be the central clock in Fawkes.
Constraint that can be queried to check if a node is blocked.
Constraint that holds a list of nodes to block with timeouts.
virtual bool compute(void)
Perform compuations before graph search and to indicate re-planning.
void add_nodes(const std::vector< std::pair< fawkes::NavGraphNode, fawkes::Time >> &timed_nodes)
Add multiple nodes to constraint list.
virtual bool blocks(const fawkes::NavGraphNode &node)
Check if constraint blocks a node.
void remove_node(const fawkes::NavGraphNode &node)
Remove a single node from the constraint list.
NavGraphTimedReservationListNodeConstraint(Logger *logger, std::string constraint_name, fawkes::Clock *clock)
Constructor.
void add_node(const fawkes::NavGraphNode &node, const fawkes::Time valid_time)
Add a single node to constraint list.
virtual ~NavGraphTimedReservationListNodeConstraint()
Virtual empty destructor.
void clear_nodes()
Remove all nodes.
const std::vector< std::pair< fawkes::NavGraphNode, fawkes::Time > > & node_time_list() const
Get list of blocked nodes.
bool has_node(const fawkes::NavGraphNode &node)
Check if constraint has a specific node.
A class for handling time.
Fawkes library namespace.