Example #1
0
        public QuadNode DeepestNodeContainingPoint(Vector3 point)
        {
            if (!Contains(point))
            {
                return(null);
            }

            if (hasChildren)
            {
                if (ChildTopLeft.Contains((point)))
                {
                    return(ChildTopLeft.DeepestNodeContainingPoint(point));
                }

                if (ChildTopRight.Contains((point)))
                {
                    return(ChildTopRight.DeepestNodeContainingPoint(point));
                }

                if (ChildBottomLeft.Contains((point)))
                {
                    return(ChildBottomLeft.DeepestNodeContainingPoint(point));
                }

                return(ChildBottomRight.DeepestNodeContainingPoint(point));
            }

            return(this);
        }