| 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 |
|
|---|
| 9 | def 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 |
|
|---|
| 26 | import VolumeViewer
|
|---|
| 27 | v = VolumeViewer.active_volume()
|
|---|
| 28 | if v:
|
|---|
| 29 | tile_map(v)
|
|---|