Skip to content

Instantly share code, notes, and snippets.

@zeffii
Created December 24, 2015 14:21
Show Gist options
  • Save zeffii/20c47baf9dfe4ae9234d to your computer and use it in GitHub Desktop.
Save zeffii/20c47baf9dfe4ae9234d to your computer and use it in GitHub Desktop.
broken. parking here
def sv_main(grid_x=3.0, grid_y=4.0, grid_z=5.0, div_x=4, div_y=6, div_z=2):
verts_out = []
edges_out = []
in_sockets = [
['s', 'grid_x', grid_x],
['s', 'grid_y', grid_y],
['s', 'grid_z', grid_z],
['s', 'div_x', div_x],
['s', 'div_y', div_y],
['s', 'div_z', div_z]
]
grid_x = abs(grid_x)
grid_y = abs(grid_y)
grid_z = abs(grid_z)
div_x = max(2, div_x)
div_y = max(2, div_y)
div_z = max(2, div_z)
start_x = -grid_x / 2
start_y = -grid_y / 2
start_z = -grid_z / 2
seg_x = grid_x / (div_x - 1)
seg_y = grid_y / (div_y - 1)
seg_z = grid_z / (div_z - 1)
for i in range(div_z):
for j in range(div_x):
for k in range(div_y):
x = start_x + (seg_x * j)
y = start_y + (seg_y * k)
z = start_z + (seg_z * i)
verts_out.append([x, y, z])
if verts_out:
xy = (div_x) * (div_y)
limit = (xy * (div_z)) - xy
# make vertical edges
for e in range(limit):
edges_out.append([e, e+xy])
x_limit = xy * div_z
z_excluder = []
for e in range(x_limit):
for i in range(1, div_z+1):
if ((xy*i) - ((2*y)+1)) < e < (xy*i):
z_excluder.append(e)
for e in range(x_limit):
if not e in z_excluder:
edges_out.append([e, e+div_y])
last_y = (x_limit * div_z) - 1
y_excluder = set(range(div_x, last_y, div_y))
for j in range(last_y):
if not j in y_excluder:
edges_out.append([j, j+1])
out_sockets = [
['v', 'verts', [verts_out]],
['s', 'edges', edges_out]
]
return in_sockets, out_sockets
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment