summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chroma/make.py15
1 files changed, 14 insertions, 1 deletions
diff --git a/chroma/make.py b/chroma/make.py
index 2c3155a..2f1d9a5 100644
--- a/chroma/make.py
+++ b/chroma/make.py
@@ -4,7 +4,20 @@ from chroma.transform import rotate
from chroma.itertoolset import *
def mesh_grid(grid):
- return np.vstack(zip(grid[:-1].flatten(),grid[1:].flatten(),np.roll(grid[1:],-1,1).flatten()) + zip(grid[:-1].flatten(),np.roll(grid[1:],-1,1).flatten(),np.roll(grid[:-1],-1,1).flatten()))
+ begin = grid[:-1].flatten()
+ end = grid[1:].flatten()
+ begin_roll = np.roll(grid[:-1],-1,1).flatten()
+ end_roll = np.roll(grid[1:],-1,1).flatten()
+
+ mesh = np.empty(shape=(2*len(begin),3), dtype=begin.dtype)
+ mesh[:len(begin),0] = begin
+ mesh[:len(begin),1] = end
+ mesh[:len(begin),2] = end_roll
+ mesh[len(begin):,0] = begin
+ mesh[len(begin):,1] = end_roll
+ mesh[len(begin):,2] = begin_roll
+
+ return mesh
def linear_extrude(x1, y1, height, x2=None, y2=None, center=None):
"""