/** * Request a leaf node be returned. All data parameters will be automatically assigned appropriate * values for a leaf. */ public KdTree.Node requestNode(P point , int index ) { KdTree.Node n = requestNode(); n.point = point; n.index = index; n.split = -1; return n; }
/** * Request a leaf node be returned. All data parameters will be automatically assigned appropriate * values for a leaf. */ public KdTree.Node requestNode(P point , int index ) { KdTree.Node n = requestNode(); n.point = point; n.index = index; n.split = -1; return n; }
/** * Convenient function for creating a leaf node */ private KdTree.Node createLeaf(List<P> points , GrowQueue_I32 indexes ) { int index = indexes == null ? -1 : indexes.get(0); return memory.requestNode(points.get(0),index); } }
/** * Convenient function for creating a leaf node */ private KdTree.Node createLeaf(List<P> points , GrowQueue_I32 indexes ) { int index = indexes == null ? -1 : indexes.get(0); return memory.requestNode(points.get(0),index); } }
KdTree.Node node = memory.requestNode();
KdTree.Node node = memory.requestNode();
@Test public void requestNode() { KdTreeMemory alg = new KdTreeMemory(); // Empty unused list KdTree.Node n = alg.requestNode(); assertTrue(n.point == null); assertTrue(n.left == null); assertTrue(n.right == null); // put the node into the unused list alg.unusedNodes.add(n); KdTree.Node m = alg.requestNode(); assertTrue(n==m); }
@Test public void requestNode_leaf() { // create a node with values that need to be changed KdTree.Node n = new KdTree.Node(); n.point = new double[2]; n.split = 123; n.index = 3; KdTreeMemory alg = new KdTreeMemory(); alg.unusedNodes.add(n); KdTree.Node m = alg.requestNode(new double[]{1,2},4); assertTrue(m==n); assertTrue(((double[])m.point)[0]==1); assertEquals(m.index,4); assertTrue(m.split==-1); }