cb_base_navigation
constraint_evaluator.cpp
Go to the documentation of this file.
2 
3 namespace cb_global_planner {
4 
6 
7 bool ConstraintEvaluator::init(const std::string& constraint)
8 {
9  symbol_table_.clear();
10  symbol_table_.add_variable("x",x_);
11  symbol_table_.add_variable("y",y_);
12  expression_.register_symbol_table(symbol_table_);
13 
14  exprtk::parser<double> parser;
15 
16  if(!parser.compile(constraint,expression_)) {
17  printf("Error: %s\tExpression: %s\n", parser.error().c_str(), constraint.c_str());
18  return false;
19  }
20 
21  constraint_ = constraint;
22  initialized_ = true;
23  return true;
24 }
25 
26 bool ConstraintEvaluator::evaluate(const double& x, const double& y) {
27  if (!initialized_) return false;
28  x_ = x; y_ = y;
29  return expression_.value();
30 }
31 
32 }
std::string
cb_global_planner::ConstraintEvaluator::constraint_
std::string constraint_
Definition: constraint_evaluator.h:55
cb_global_planner::ConstraintEvaluator::y_
double y_
Definition: constraint_evaluator.h:58
cb_global_planner::ConstraintEvaluator::x_
double x_
Definition: constraint_evaluator.h:58
cb_global_planner::ConstraintEvaluator::init
bool init(const std::string &constraint)
Init function which initializes the constraint that has to be evaluated.
Definition: constraint_evaluator.cpp:7
cb_global_planner::ConstraintEvaluator::initialized_
bool initialized_
Definition: constraint_evaluator.h:59
cb_global_planner::ConstraintEvaluator::evaluate
bool evaluate(const double &x, const double &y)
Evaluates the constraint for an x,y value.
Definition: constraint_evaluator.cpp:26
cb_global_planner::ConstraintEvaluator::ConstraintEvaluator
ConstraintEvaluator()
Constructor for the ConstraintEvaluator Object.
Definition: constraint_evaluator.cpp:5
cb_global_planner::ConstraintEvaluator::symbol_table_
exprtk::symbol_table< double > symbol_table_
Definition: constraint_evaluator.h:56
std::string::c_str
T c_str(T... args)
cb_global_planner::ConstraintEvaluator::expression_
exprtk::expression< double > expression_
Definition: constraint_evaluator.h:57
cb_global_planner
Definition: a_star_planner.cpp:5
constraint_evaluator.h