static void sample_tile(texgz_tex_t* src, int month, int x, int y, double latT, int lonL, double latB, int lonR) { assert(src); LOGD("debug month=%i, x=%i, y=%i, latT=%lf, lonL=%lf, latB=%lf, lonR=%lf", month, x, y, latT, lonL, latB, lonR); char fname[256]; snprintf(fname, 256, "bluemarble%i/9/%i_%i.pak", month, x, y); pak_file_t* pak = pak_file_open(fname, PAK_FLAG_WRITE); if(pak == NULL) { return; } int i; int j; for(i = 0; i < NEDGZ_SUBTILE_COUNT; ++i) { for(j = 0; j < NEDGZ_SUBTILE_COUNT; ++j) { sample_subtile(src, pak, x, y, i, j, latT, lonL, latB, lonR); } } pak_file_close(&pak); }
static int sample_tile(int x, int y, int zoom) { LOGD("debug x=%i, y=%i, zoom=%i", x, y, zoom); nedgz_tile_t* tile = nedgz_tile_new(x, y, zoom); if(tile == NULL) { return 0; } // sample subtiles i,j int j; int i; for(i = 0; i < NEDGZ_SUBTILE_COUNT; ++i) { for(j = 0; j < NEDGZ_SUBTILE_COUNT; ++j) { if(sample_subtile(tile, i, j) == 0) { goto fail_sample; } } } if(nedgz_tile_export(tile, "ned") == 0) { goto fail_export; } nedgz_tile_delete(&tile); // success return 1; // failure fail_export: fail_sample: nedgz_tile_delete(&tile); return 0; }
static int sample_tile(int x, int y, int zoom) { LOGD("debug x=%i, y=%i, zoom=%i", x, y, zoom); // create directories if necessary char dname[256]; snprintf(dname, 256, "heightmap/%i", zoom); if(mkdir(dname, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH) == -1) { if(errno == EEXIST) { // already exists } else { LOGE("mkdir %s failed", dname); return 0; } } nedgz_tile_t* tile = nedgz_tile_new(x, y, zoom); if(tile == NULL) { return 0; } char fname[256]; snprintf(fname, 256, "heightmap/%i/%i_%i.pak", zoom, x, y); pak_file_t* pak = pak_file_open(fname, PAK_FLAG_WRITE); if(pak == NULL) { goto fail_pak; } // sample subtiles i,j int j; int i; for(i = 0; i < NEDGZ_SUBTILE_COUNT; ++i) { for(j = 0; j < NEDGZ_SUBTILE_COUNT; ++j) { if(sample_subtile(tile, i, j, pak) == 0) { goto fail_sample; } } } pak_file_close(&pak); nedgz_tile_delete(&tile); // success return 1; // failure fail_sample: pak_file_close(&pak); fail_pak: nedgz_tile_delete(&tile); return 0; }