map_interface.h

Go to the documentation of this file.
00001 /*********************************************************
00002  *
00003  * This source code is part of the Carnegie Mellon Robot
00004  * Navigation Toolkit (CARMEN)
00005  *
00006  * CARMEN Copyright (c) 2002 Michael Montemerlo, Nicholas
00007  * Roy, and Sebastian Thrun
00008  *
00009  * CARMEN is free software; you can redistribute it and/or 
00010  * modify it under the terms of the GNU General Public 
00011  * License as published by the Free Software Foundation; 
00012  * either version 2 of the License, or (at your option)
00013  * any later version.
00014  *
00015  * CARMEN is distributed in the hope that it will be useful,
00016  * but WITHOUT ANY WARRANTY; without even the implied 
00017  * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00018  * PURPOSE.  See the GNU General Public License for more 
00019  * details.
00020  *
00021  * You should have received a copy of the GNU General 
00022  * Public License along with CARMEN; if not, write to the
00023  * Free Software Foundation, Inc., 59 Temple Place, 
00024  * Suite 330, Boston, MA  02111-1307 USA
00025  *
00026  ********************************************************/
00027 
00029 // @{
00030 
00037 #ifndef CARMEN_MAP_INTERFACE_H
00038 #define CARMEN_MAP_INTERFACE_H
00039 
00040 #include <carmen/map.h>
00041 #include <carmen/map_messages.h>
00042 
00043 #ifdef __cplusplus
00044 extern "C" {
00045 #endif
00046 
00047 
00048 /* request hmap (hierarchical map) from server */
00049 int carmen_map_get_hmap(carmen_hmap_p hmap);
00050 
00051 /* subscribe to hmap messages output by the map server
00052 void carmen_map_subscribe_hmap_update_message(carmen_hmap_p hmap, 
00053                                               carmen_handler_t handler, 
00054                                               carmen_subscribe_t subscribe_how);
00055 */
00056 
00057 /* change map zone within an hmap */
00058 int carmen_map_change_map_zone(char *zone_name);
00059 
00060 /* subscribe to map zone messages */
00061 void carmen_map_subscribe_map_zone_message(char **zone_name,
00062                                            carmen_handler_t handler,
00063                                            carmen_subscribe_t subscribe_how);
00064 
00065 /* request a map from the server */
00066 int carmen_map_get_gridmap(carmen_map_p map);
00067 int carmen_map_get_gridmap_by_name(char *name, carmen_map_p map);
00068 
00069 /* subscribe to map messages output by the map server */
00070 void carmen_map_subscribe_gridmap_update_message(carmen_map_t *map, 
00071                                                  carmen_handler_t handler, 
00072                                                  carmen_subscribe_t 
00073                                                  subscribe_how);
00074 
00075 /* request a map from the server */
00076 int carmen_map_get_placelist(carmen_map_placelist_p placelist);
00077 int carmen_map_get_placelist_by_name(char *name, carmen_map_placelist_p placelist);
00078 
00079 int carmen_map_get_offlimits(carmen_offlimits_p *offlimits, int *list_length);
00080 int carmen_map_get_offlimits_by_name(char *name, carmen_offlimits_p *offlimits, int *list_length);
00081 
00082 int carmen_map_apply_offlimits_chunk_to_map(carmen_offlimits_p offlimits, 
00083                                             int list_length, carmen_map_p map);
00084 
00085 /* conversions between map_point_t's and other points */
00086 /* conversions between map_point_t's and other points */
00087 int carmen_map_to_world(carmen_map_point_p map_point, carmen_world_point_p world_point);
00088 int carmen_world_to_map(carmen_world_point_p world_point, carmen_map_point_p map_point); 
00089 
00090 int carmen_point_to_map(carmen_point_p point, carmen_map_point_p map_point, carmen_map_p map);
00091 
00092 /* distance between two map_points in grid cells */
00093 double carmen_distance_map(carmen_map_point_p p1, carmen_map_point_p p2);
00094 double carmen_distance_world(carmen_world_point_p p1, carmen_world_point_p p2);
00095 
00096 int carmen_map_cmp(carmen_map_point_p p1, carmen_map_point_p p2);
00097 int carmen_world_cmp(carmen_world_point_p p1, carmen_world_point_p p2);
00098 
00099 int carmen_map_to_trajectory(carmen_map_point_p carmen_map_point, carmen_traj_point_p traj_point);
00100 int carmen_trajectory_to_map(carmen_traj_point_p traj_point, carmen_map_point_p carmen_map_point,
00101                                   carmen_map_p map);
00102 
00103 carmen_map_p carmen_map_copy(carmen_map_p map);
00104 void carmen_map_destroy(carmen_map_p *map);
00105 
00106 #ifdef __cplusplus
00107 }
00108 #endif
00109 
00110 #endif
00111 // @}

Generated on Wed Apr 5 18:34:18 2006 for CARMEN by  doxygen 1.4.4