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