13 kdtree = pyDM.PointIndexLeaf(pyDM.IndexType.kdtree,2,
True)
19 coord_range = [-50, 50]
21 x = random.uniform(coord_range[0], coord_range[1])
22 y = random.uniform(coord_range[0], coord_range[1])
23 z = random.uniform(coord_range[0], coord_range[1])
24 kdtree.addPoint( pyDM.Point(x,y,z) )
26 limit = kdtree.getLimit()
29 print(
"kdtree contains", kdtree.sizePoint(),
"points")
30 print(
"2D-limit (%.3f," % limit.xmin,
"%.3f) -" % limit.ymin,
"(%.3f," % limit.xmax,
35 searchPt = pyDM.Point((limit.xmin+limit.xmax)/2.,(limit.ymin+limit.ymax)/2., 0.)
37 searchMode = pyDM.SelectionMode.nearest
40 pts = kdtree.searchPoint(nnCount,searchPt,maxSearchDist,searchMode)
43 print(len(pts),
"neighbours found")
44 print(
"Output neighbours...")
46 for i, pt
in enumerate(pts):
47 dist = math.sqrt( (searchPt.x-pt.x)**2 + (searchPt.y-pt.y)**2 )
48 print(
"%3d. Point (%8.3f, %8.3f, %8.3f) dist=%5.3f " % ((i+1), pt.x, pt.y, pt.z, dist) )