Scripts: tilemap.py

File tilemap.py, 895 bytes (added by goddard, 14 years ago)
Line 
1#
2# Make copies of a map and show subregions to cover the entire original map.
3# This is to allow display of 2-d planes larger than the maximum OpenGL
4# texture size (typically 8192 pixels along each axis).
5#
6# Use this script by opening the map to be tiled, then opening the script.
7#
8
9def tile_map(v, max_size = 8192, overlap = 1):
10
11 tsize = max_size - overlap
12 ti, tj, tk = [1 + ((s-1) / tsize) for s in v.data.size]
13 tiles = ti*tj*tk
14 if tiles == 1:
15 return
16 maps = [v] + [v.copy() for t in range(tiles-1)]
17 ijk_step = (1,1,1)
18 for k in range(tk):
19 for j in range(tj):
20 for i in range(ti):
21 ijk_min = [s*tsize for s in (i,j,k)]
22 ijk_max = [(s+1)*tsize+overlap for s in (i,j,k)]
23 v = maps[k*ti*tj + j*ti + i]
24 v.new_region(ijk_min, ijk_max, ijk_step, adjust_step = False)
25
26import VolumeViewer
27v = VolumeViewer.active_volume()
28if v:
29 tile_map(v)