public bool Intersect(LineTestData intersectData, out EntityID entity)
            {
                entity = this.entity;

                //First test if the bounds intersect
                if (!AABox.Intersect(box, intersectData.TestBounds))
                {
                    return(false);
                }

                //Then test if the ray intersects
                float rayTime;

                if (!AABox.Intersect(box, intersectData.TestRay, out rayTime))
                {
                    return(false);
                }

                //Then test if that ray was still within the line
                return(intersectData.TestLine.SqrMagnitude >= (rayTime * rayTime));
            }
            public bool Intersect(AABox box, out EntityID entity)
            {
                if (AABox.Intersect(volume, box))
                {
                    for (int i = 0; i < children.Count; i++)
                    {
                        if (children[i].Intersect(box, out entity))
                        {
                            return(true);
                        }
                    }

                    for (int i = 0; i < entries.Count; i++)
                    {
                        if (entries[i].Intersect(box, out entity))
                        {
                            return(true);
                        }
                    }
                }
                entity = 0;
                return(false);
            }
            public bool Intersect(LineTestData intersectData, out EntityID entity)
            {
                if (AABox.Intersect(volume, intersectData.TestBounds))
                {
                    for (int i = 0; i < children.Count; i++)
                    {
                        if (children[i].Intersect(intersectData, out entity))
                        {
                            return(true);
                        }
                    }

                    for (int i = 0; i < entries.Count; i++)
                    {
                        if (entries[i].Intersect(intersectData, out entity))
                        {
                            return(true);
                        }
                    }
                }
                entity = 0;
                return(false);
            }
 public bool Intersect(AABox box, out EntityID entity)
 {
     entity = this.entity;
     return(AABox.Intersect(this.box, box));
 }
 public bool Intersect(AABox box) => AABox.Intersect(this.box, box);