static void carmen_map_read_gridmap(carmen_FILE *fin, carmen_FILE *fout) { int size_x, size_y; float resolution; float *complete_map = NULL; carmen_map_t map; int chunk_type, chunk_size; char chunk_description[12]; if(carmen_map_advance_to_chunk(fin, CARMEN_MAP_GRIDMAP_CHUNK) < 0) { fprintf(stderr, "Error: Could not find a gridmap chunk.\n"); fprintf(stderr, " This file is probably not a map file.\n"); carmen_fclose(fin); } chunk_type = carmen_fgetc(fin); carmen_fread(&chunk_size, sizeof(int), 1, fin); carmen_fread(chunk_description, 10, 1, fin); chunk_description[10] = '\0'; if(CARMEN_MAP_CHUNK_IS_NAMED(chunk_type)) { if(read_string(NULL, -1, fin) < 0) { carmen_warn("Error: Unexpected EOF.\n"); carmen_fclose(fin); } } carmen_fread(&size_x, sizeof(int), 1, fin); carmen_fread(&size_y, sizeof(int), 1, fin); carmen_fread(&resolution, sizeof(float), 1, fin); printf("%d %d %lf\n", size_x, size_y, resolution); carmen_grid_mapping_create_new_map(&map, size_x, size_y, resolution); complete_map = (float *)calloc(map.config.x_size * map.config.y_size, sizeof(float)); carmen_fread(complete_map, sizeof(float) * size_x * size_y, 1, fin); for (int i = 0; i < map.config.x_size * map.config.y_size; i++) { map.complete_map[i] = complete_map[i]; } carmen_map_write_all(fout, map.map, map.config.x_size, map.config.y_size, map.config.resolution, (char *)"", (char *)"", (char *)"", (char *)"Generated by LCAD-UFES", NULL, 0, NULL, 0, NULL, 0); free(complete_map); free(map.complete_map); free(map.map); }
void save_local_map() { carmen_FILE *fp; fp = carmen_fopen("local.map", "w"); carmen_map_write_all(fp, local_map.map, local_map.config.x_size, local_map.config.y_size, local_map.config.resolution, (char *) "", (char *) "", (char *) "", (char *) "Generated by big_map", NULL, 0, NULL, 0, NULL, 0); carmen_fclose(fp); }