00001 /* 00002 * This file is part of CrsmSlam. 00003 CrsmSlam is free software: you can redistribute it and/or modify 00004 it under the terms of the GNU General Public License as published by 00005 the Free Software Foundation, either version 3 of the License, or 00006 (at your option) any later version. 00007 00008 CrsmSlam is distributed in the hope that it will be useful, 00009 but WITHOUT ANY WARRANTY; without even the implied warranty of 00010 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00011 GNU General Public License for more details. 00012 00013 You should have received a copy of the GNU General Public License 00014 along with CrsmSlam. If not, see <http://www.gnu.org/licenses/>. 00015 * 00016 * Author : Manos Tsardoulias, etsardou@gmail.com 00017 * Organization : AUTH, PANDORA Robotics Team 00018 * */ 00019 00020 #ifndef CRSM_MAP_HEADER 00021 #define CRSM_MAP_HEADER 00022 00023 #include "crsm_mapInfo.h" 00024 #include <map> 00025 00026 namespace crsm_slam{ 00027 00028 enum CrsmDirection{ 00029 RIGHT, 00030 LEFT, 00031 UP, 00032 DOWN 00033 }; 00034 00035 struct CrsmExpansion{ 00036 std::map<CrsmDirection,int> expansions; 00037 }; 00038 00043 class CrsmMap{ 00044 public: 00045 00046 unsigned char **p; 00047 CrsmMapInfo info; 00048 00052 CrsmMap(){}; 00053 00058 CrsmMap(unsigned int size_); 00059 00065 void expandMap(CrsmExpansion exp); 00066 }; 00067 00068 } 00069 #endif