public RayCastHit <T> BoundingPrimativeCast <T>(BoundingBox myTestBox) //TODO: parallel
    {
        RayCastHit <T> myRayCast = new RayCastHit <T>();

        foreach (var A in myViewedTree)
        {
            myRayCast.MergeWith(A.BoundingPrimativeCast <T>(myTestBox));
        }
        return(myRayCast);
    }
    public RayCastHit <T> Raycast <T>(Ray aRay)
    {
        RayCastHit <T> myRayCast = new RayCastHit <T>();

        foreach (var A in myViewedTree)
        {
            myRayCast.MergeWith(A.Raycast <T>(aRay));
        }
        return(myRayCast);
    }