summaryrefslogtreecommitdiff
path: root/zcurve.py
diff options
context:
space:
mode:
Diffstat (limited to 'zcurve.py')
-rw-r--r--zcurve.py25
1 files changed, 0 insertions, 25 deletions
diff --git a/zcurve.py b/zcurve.py
deleted file mode 100644
index 5ef37f3..0000000
--- a/zcurve.py
+++ /dev/null
@@ -1,25 +0,0 @@
-import numpy as np
-from itertools import chain
-
-def interleave(*args):
- return int("".join(chain(*zip(*[bin(x)[2:].zfill(x.nbytes*8) for x in args]))), 2)
-
-def morton_order(mesh, dtype=np.uint8):
- vertices = mesh.reshape(mesh.shape[0]*3, 3)
-
- upper_bound = np.max(vertices, axis=0)
- lower_bound = np.min(vertices, axis=0)
-
- quantize = lambda x: dtype((x-lower_bound)*np.iinfo(dtype).max/(upper_bound-lower_bound))
-
- zvalue = []
- for triangle in mesh:
- center = np.mean(np.vstack((triangle[0], triangle[1], triangle[2])), axis=0)
- zvalue.append(interleave(*quantize(center)))
-
- ordered_mesh = np.empty(mesh.shape)
-
- for i, idx in enumerate(zip(*sorted(zip(zvalue, range(len(zvalue)))))[-1]):
- ordered_mesh[i] = mesh[idx]
-
- return ordered_mesh