Ejemplo n.º 1
0
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);
}
Ejemplo n.º 2
0
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;
}
Ejemplo n.º 3
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;
}