/**
*
* \mainpage BreezySLAM: Simple, efficient SLAM in C++
*
* Map.cpp - implementation for Map class
*
* Copyright (C) 2014 Simon D. Levy
* This code is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This code is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this code. If not, see .
*/
#include
#include
#include
#include
using namespace std;
#include "coreslam.h"
#include "Scan.hpp"
#include "Position.hpp"
#include "Map.hpp"
Map::Map(int size_pixels, double size_meters)
{
this->map = new map_t;
map_init(this->map, size_pixels, size_meters);
}
Map::~Map(void)
{
map_free(this->map);
delete this->map;
}
void Map::update(
Scan & scan,
Position & position,
int quality,
double hole_width_mm)
{
position_t cpos;
cpos.x_mm = position.x_mm;
cpos.y_mm = position.y_mm;
cpos.theta_degrees = position.theta_degrees;
map_update(this->map, scan.scan, cpos, quality, hole_width_mm);
}
void Map::get(char * bytes)
{
map_get(this->map, bytes);
}
ostream& operator<< (ostream & out, Map & map)
{
char str[512];
map_string(*map.map, str);
out << str;
return out;
}