1 #include <yaml-cpp/yaml.h> 5 template <
class Ti,
class Tf>
8 MapReader(
const std::string& file,
bool verbose =
false) {
10 YAML::Node config = YAML::LoadFile(file);
12 if( !config[0][
"start"] || !config[1][
"goal"] || !config[2][
"origin"] || !config[3][
"dim"] || !config[4][
"resolution"] || !config[5][
"data"]) {
13 printf(
"Check input format!\n" );
17 const std::vector<double>& start = config[0][
"start"].as<std::vector<double>>();
18 for(
unsigned int i = 0; i < start.size(); i++)
21 std::cout <<
"start: " << start_.transpose() << std::endl;
23 const std::vector<double>& goal = config[1][
"goal"].as<std::vector<double>>();
24 for(
unsigned int i = 0; i < goal.size(); i++)
27 std::cout <<
"goal: " << goal_.transpose() << std::endl;
29 const std::vector<double>& origin_vec = config[2][
"origin"].as<std::vector<double>>();
30 for(
unsigned int i = 0; i < origin_vec.size(); i++)
31 origin_(i) = origin_vec[i];
33 std::cout <<
"origin: " << origin_.transpose() << std::endl;
35 const std::vector<int>& dim_vec = config[3][
"dim"].as<std::vector<int>>();
36 for(
unsigned int i = 0; i < dim_vec.size(); i++)
39 std::cout <<
"dim: " << dim_.transpose() << std::endl;
41 resolution_ = config[4][
"resolution"].as<
double>();
43 std::cout <<
"resolution: " << resolution_ << std::endl;
45 const std::vector<int>& data = config[5][
"data"].as<std::vector<int>>();
46 data_.resize(data.size());
47 for(
unsigned int i = 0; i < data.size(); i++)
48 data_[i] = data[i] > 0 ? 1 : 0;
51 }
catch (YAML::ParserException& e) {
57 bool exist() {
return exist_; }
58 Tf origin() {
return origin_; }
59 Ti dim() {
return dim_; }
60 double start(
int i) {
return start_(i); }
61 double goal(
int i) {
return goal_(i); }
62 double resolution() {
return resolution_; }
63 std::vector<signed char> data() {
return data_; }
70 std::vector<signed char> data_;
Definition: read_map.hpp:6