Skip to content

Instantly share code, notes, and snippets.

@zeffii
Forked from anonymous/kdtree_3_closest.py
Created December 19, 2014 12:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zeffii/d14be9ab7c153a6c9f4e to your computer and use it in GitHub Desktop.
Save zeffii/d14be9ab7c153a6c9f4e to your computer and use it in GitHub Desktop.
import mathutils
from mathutils import Vector, kdtree
def sv_main(v=[[]], mdist=0.4):
in_sockets = [
['v', 'verts', v],
['s', 'mdist', mdist]
]
e = []
if v and v[0]:
v = v[0]
# make kd tree
# documentation mathutils.kdtree.html
size = len(v)
kd = kdtree.KDTree(size)
for i, vtx in enumerate(v):
kd.insert(Vector(vtx), i)
kd.balance()
# makes edges
for i, vtx in enumerate(v):
num_edges = 0
for (co, index, dist) in kd.find_range(vtx, mdist):
if i == index or (num_edges > 2):
continue
e.append([i, index])
num_edges += 1
# out boilerplate
out_sockets = [
['s', 'Edges', [e]]
]
return in_sockets, out_sockets
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment