Exemple #1
0
        private IList <KDTreeNode <T> > getNodesInsideRegion(KDTreeNode <T> node, Hyperrectangle region, Hyperrectangle subRegion)
        {
            var result = new List <KDTreeNode <T> >();

            if (node != null && region.IntersectsWith(subRegion))
            {
                if (region.Contains(node.Position))
                {
                    result.Add(node);
                }

                result.AddRange(getNodesInsideRegion(node.Left, region, leftRect(subRegion, node)));
                result.AddRange(getNodesInsideRegion(node.Right, region, rightRect(subRegion, node)));
            }

            return(result);
        }