QuadTree.GetQuadTreeItemFor C# (CSharp) Method

GetQuadTreeItemFor() public method

public GetQuadTreeItemFor ( Vector3 vec, Vector3 size, int maxDepth ) : List
vec Vector3
size Vector3
maxDepth int
return List
    public List<QuadTreeItem> GetQuadTreeItemFor(Vector3 vec, Vector3 size, int maxDepth)
    {
        var result = new List<QuadTreeItem>();

            Vector3 leftFront 	= new Vector3(vec.x - size.x/2.0f, vec.y, vec.z - size.z/2.0f);
            Vector3 rightFront 	= new Vector3(vec.x + size.x/2.0f, vec.y, vec.z - size.z/2.0f);

            Vector3 leftBack 	= new Vector3(vec.x - size.x/2.0f, vec.y, vec.z + size.z/2.0f);
            Vector3 rightBack 	= new Vector3(vec.x + size.x/2.0f, vec.y, vec.z + size.z/2.0f);

            result.Add(GetQuadTreeItemFor(leftFront, 	maxDepth));
            result.Add(GetQuadTreeItemFor(rightFront, 	maxDepth));
            result.Add(GetQuadTreeItemFor(leftBack, 	maxDepth));
            result.Add(GetQuadTreeItemFor(rightBack, 	maxDepth));

            return result;
    }

Same methods

QuadTree::GetQuadTreeItemFor ( Vector3 vec, int maxDepth ) : QuadTreeItem

Usage Example

Example #1
0
    List <GameObject> GetGameObjectsOnTheWay(Vector3 start, Vector3 end)
    {
        List <GameObject> result = new List <GameObject>();

        QuadTree qt = GameObject.Find("QuadTreeGenerator").GetComponent <QuadTree>();

        float dx = end.x - start.x;
        float dy = end.y - start.y;

        float lastX = start.x, lastY = y1;

        for (float x = start.x; x < end.x; x++)
        {
            float y = y1 + (dy) * (x - x1) / (dx);

            if (Mathf.Abs(lastX - x) > 1 || Mathf.Abs(lastY - y) > 1)
            {
                QuadTreeItem qti = qt.GetQuadTreeItemFor(new Vector3(x, 0.0f, y), 1);

                result.AddRange(qti.GameObjects);

                lastX = x;
                lastY = y;
            }
        }

        return(result);
    }
All Usage Examples Of QuadTree::GetQuadTreeItemFor